Ish*_*eel 88 oracle stored-procedures keyword
我看到Oracle程序有时用"AS"编写,有时用"IS"关键字编写.
CREATE OR REPLACE Procedure TESTUSER.KILLINSTANCE (INSTANCEID integer) **AS**
...
Run Code Online (Sandbox Code Playgroud)
与
CREATE OR REPLACE Procedure TESTUSER.KILLINSTANCE (INSTANCEID integer) **IS**
...
Run Code Online (Sandbox Code Playgroud)
这两者有什么区别吗?
Nic*_*int 52
一个小的差异......
它们是包和过程的同义词,但不是游标的同义词:
这有效......
cursor test_cursor
is
select * from emp;
Run Code Online (Sandbox Code Playgroud)
......但这不是:
cursor test_cursor
as
select * from emp;
Run Code Online (Sandbox Code Playgroud)
Stu*_*tLC 11
这是另一个区别(10g,无论如何)
给定一个松散的对象类型:
CREATE TYPE someRecordType AS OBJECT
(
SomeCol VARCHAR2(12 BYTE)
);
Run Code Online (Sandbox Code Playgroud)
您可以loose使用AS或创建此对象类型的表类型IS
CREATE OR REPLACE TYPE someTableType
IS {or AS} TABLE OF someRecordType;
Run Code Online (Sandbox Code Playgroud)
但是,如果在包中创建相同的表类型,则必须使用IS:
CREATE OR REPLACE PACKAGE SomePackage IS
TYPE packageTableType IS TABLE OF someRecordType;
END SomePackage;
Run Code Online (Sandbox Code Playgroud)
使用AS在包装产生以下错误:
错误(2,30):PLS-00103:遇到以下其中一项时遇到符号"TABLE":对象不透明