“ AS”有什么区别?和“ IS”在Oracle存储过程中?
-
04-07-2019 - |
题
我看到Oracle程序有时用“AS”编写,有时用“IS”编写。关键词。
CREATE OR REPLACE Procedure TESTUSER.KILLINSTANCE (INSTANCEID integer) **AS**
...
VS
CREATE OR REPLACE Procedure TESTUSER.KILLINSTANCE (INSTANCEID integer) **IS**
...
两者之间有什么区别吗?
编辑:显然,两者之间没有功能差异,但有些人遵循惯例使用“AS”。当SP是包装的一部分并且“IS”是包装的一部分时。什么时候不是。或者反过来说。 MEH。
解决方案
无论如何。它们是提供的同义词,使您的代码更具可读性:
功能f IS ...
按选择创建视图...
其他提示
一个小的差异......
它们是包和过程的同义词,但不是游标的同义词:
这有效......
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)
);
您可以使用 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”。当期待以下之一时:对象不透明
使用AS关键字代替IS关键字来创建 独立程序。
并考虑以前的答案,
我想
AS
适用于独立(任何块,子程序,包)实体
和
IS
用于嵌入(在块,子程序或包中)实体。
。
使用 AS 关键字代替 IS 关键字来创建独立功能。
[独立存储函数是存储在数据库中的函数(返回单个值的子程序)。 注意:使用CREATE FUNCTION语句创建的独立存储函数与您在PL / SQL块或包中声明和定义的函数不同。 ]
有关详细说明,请阅读本文 ...
不隶属于 StackOverflow