当前位置:  开发笔记 > 编程语言 > 正文

Oracle存储过程中"AS"和"IS"之间有什么区别?

如何解决《Oracle存储过程中"AS"和"IS"之间有什么区别?》经验,为你挑选了4个好方法。

我看到Oracle程序有时用"AS"编写,有时用"IS"关键字编写.

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

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

这两者有什么区别吗?


编辑:显然,两者之间没有功能差异,但有些人遵循惯例,当SP是包的一部分时使用"AS",而当它不是时,则使用"IS".或者反过来说.咩.



1> Tony Andrews..:

无论如何.它们是提供的同义词,使您的代码更具可读性:

功能f是......

根据选择创建视图...



2> Nick Pierpoi..:

一个小的差异......

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

这有效......

cursor test_cursor
is
select * from emp;

......但这不是:

cursor test_cursor
as
select * from emp;


Dileep Krishnamurthy的答案完成了这一点

3> 小智..:

"IS"和"AS"在创建过程和包时充当同义词,但不是游标,表或视图的同义词.



4> StuartLC..:

这是另一个区别(10g,无论如何)

给定一个松散的对象类型:

CREATE TYPE someRecordType AS OBJECT
(
   SomeCol VARCHAR2(12 BYTE)
);

您可以loose使用AS或创建此对象类型的表类型IS

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

推荐阅读
ifx0448363
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有