Oracle存储过程中的“AS”和“IS”有什么区别?
我看到Oracle程序有时用“AS”写,有时用“IS”关键字写。
CREATE OR REPLACE Procedure TESTUSER.KILLINSTANCE (INSTANCEID integer) **AS** ...
与
CREATE OR REPLACE Procedure TESTUSER.KILLINSTANCE (INSTANCEID integer) **IS** ...
两者有什么区别?
编辑:显然,两者之间没有function差异,但有些人遵循约定,当SP是包的一部分时使用“AS”,当不是的时候使用“是”。 或者相反。 咩。
无论如何。 它们是提供的同义词,使您的代码更具可读性:
functionf …
CREATE VIEW v AS SELECT …
一个小小的区别…
它们是包和程序的同义词,但不适用于游标:
这工作…
cursor test_cursor is select * from emp;
…但是这不:
cursor test_cursor as select * from emp;
“IS”和“AS”在创build过程和包时不作为游标,表或视图的同义词。
这是另外一个区别(无论如何都是10g)
给定一个松散的对象types:
CREATE TYPE someRecordType AS OBJECT ( SomeCol VARCHAR2(12 BYTE) );
您可以使用AS
或IS
创build一个loose
表格types的此对象types
CREATE OR REPLACE TYPE someTableType IS {or AS} TABLE OF someRecordType;
但是,如果在包中创build相同的表types,则必须使用IS
:
CREATE OR REPLACE PACKAGE SomePackage IS TYPE packageTableType IS TABLE OF someRecordType; END SomePackage;
在包中使用AS
产生以下错误:
错误(2,30):PLS-00103:遇到下列其中一项时遇到符号“TABLE”:object opaque