“与”的区别是什么;作为「;及;是";在Oracle存储过程中?

“与”的区别是什么;作为「;及;是";在Oracle存储过程中?,oracle,stored-procedures,keyword,Oracle,Stored Procedures,Keyword,我看到Oracle过程有时用“AS”编写,有时用“IS”关键字编写 CREATE OR REPLACE Procedure TESTUSER.KILLINSTANCE (INSTANCEID integer) **AS** ... vs 这两者有什么区别吗 编辑:显然,两者之间没有功能上的区别,但有些人遵循一种惯例,即当SP是包的一部分时使用“AS”,当SP不是包的一部分时使用“is”。或者反过来。嗯。没什么。它们是同义词,用于提高代码的可读性: 函数f是 创建视图v作为选择…一个小差异 它

我看到Oracle过程有时用“AS”编写,有时用“IS”关键字编写

CREATE OR REPLACE Procedure TESTUSER.KILLINSTANCE (INSTANCEID integer) **AS**
...
vs

这两者有什么区别吗



编辑:显然,两者之间没有功能上的区别,但有些人遵循一种惯例,即当SP是包的一部分时使用“AS”,当SP不是包的一部分时使用“is”。或者反过来。嗯。

没什么。它们是同义词,用于提高代码的可读性:

函数f是


创建视图v作为选择…

一个小差异

它们是包和过程的同义词,但不是游标的同义词:

这很有效

cursor test_cursor
is
select * from emp;
。。。但这并不是:

cursor test_cursor
as
select * from emp;
这是另一个区别(无论如何,10g)

给定松散对象类型:

CREATE TYPE someRecordType AS OBJECT
(
   SomeCol VARCHAR2(12 BYTE)
);
您可以使用
AS
IS
创建此对象类型的
loose
表类型

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”:对象不透明

“IS”和“AS”在创建过程和包时充当同义词,但不用于游标、表或视图。

根据

使用AS关键字而不是is关键字来创建 独立程序

考虑到之前的答案

我想

作为
用于独立实体(任何块、子程序、包之外)

用于嵌入(在块、子程序或包中)实体


使用AS关键字而不是is关键字来创建独立函数

[A独立存储函数是存储在数据库中的函数(返回单个值的子程序)。 注意:使用create function语句创建的独立存储函数与在PL/SQL块或包中声明和定义的函数不同。


为了进一步解释,

第二个不总是简单地指向另一个实际实现该功能的过程吗?在我的测试中,这两个过程似乎都使用完全相同的主体。不知道如何指向另一个过程。迪利普·克里希那穆提的回答完成了这一点
CREATE OR REPLACE PACKAGE SomePackage IS
    TYPE packageTableType IS TABLE OF someRecordType;
END SomePackage;