我看到Oracle程序有时用"AS"编写,有时用"IS"关键字编写.
CREATE OR REPLACE Procedure TESTUSER.KILLINSTANCE (INSTANCEID integer) **AS** ...
与
CREATE OR REPLACE Procedure TESTUSER.KILLINSTANCE (INSTANCEID integer) **IS** ...
这两者有什么区别吗?
无论如何.它们是提供的同义词,使您的代码更具可读性:
功能f是......
根据选择创建视图...
一个小的差异......
它们是包和过程的同义词,但不是游标的同义词:
这有效......
cursor test_cursor is select * from emp;
......但这不是:
cursor test_cursor as select * from emp;
"IS"和"AS"在创建过程和包时充当同义词,但不是游标,表或视图的同义词.
这是另一个区别(10g,无论如何)
给定一个松散的对象类型:
CREATE TYPE someRecordType AS OBJECT ( SomeCol VARCHAR2(12 BYTE) );
您可以loose
使用AS
或创建此对象类型的表类型IS
CREATE OR REPLACE TYPE someTableType IS {or AS} TABLE OF someRecordType;
但是,如果在包中创建相同的表类型,则必须使用IS
:
CREATE OR REPLACE PACKAGE SomePackage IS TYPE packageTableType IS TABLE OF someRecordType; END SomePackage;
使用AS
在包装产生以下错误:
错误(2,30):PLS-00103:遇到以下其中一项时遇到符号"TABLE":对象不透明