我看到Oracle程序有时用“AS”编写,有时用“IS”关键字编写 .
CREATE OR REPLACE Procedure TESTUSER.KILLINSTANCE (INSTANCEID integer) **AS**
...
与
CREATE OR REPLACE Procedure TESTUSER.KILLINSTANCE (INSTANCEID integer) **IS**
...
这两者有什么区别吗?
编辑:显然,两者之间没有功能差异,但是当SP是包的一部分时,有些人遵循惯例使用"AS",而当它不是时,有些人遵循"IS" . 或者反过来说 . 咩 .
6 回答
“IS”和“AS”在创建过程和包时充当同义词,但不是游标,表或视图的同义词 .
无论如何 . 它们是提供的同义词,使您的代码更具可读性:
功能f是......
根据选择创建视图...
一个小的差异......
它们是包和过程的同义词,但不是游标的同义词:
这有效......
......但这不是:
这是另一个区别(10g,无论如何)
给定一个松散的对象类型:
您可以使用
AS
或IS
创建此对象类型的loose
表类型但是,如果在包中创建相同的表类型,则必须使用
IS
:在包中使用
AS
会产生以下错误:根据TutorialsPoint
并考虑以前的答案,
我猜
AS
适用于独立(在任何块,子程序,包)之外的实体和
IS
用于嵌入(在块,子程序或包中)实体 ..
使用 AS 关键字代替 IS 关键字来创建 standalone function .
[A standalone 存储函数是存储在数据库中的函数( a subprogram that returns a single value ) . 注意:使用CREATE FUNCTION语句创建的独立存储函数是来自您在PL / SQL块或包中声明和定义的函数的 different . ]
有关更多说明,read this ...