与pl / sql相对

时间:2010-05-18 06:59:05

标签: oracle plsql semantics

我认为oracle对于函数和过程都对待“is”和“as”。我尝试使用“pl / sql is vs as”进行谷歌搜索,并得到以下链接,表示两者都是相同的。

IS vs AS keywords for PL/SQL Oracle Function or Procedure Creation

但我发现http://www.adp-gmbh.ch/ora/plsql/coll/declaration.html#index_by似乎表明存在差异。有人(列出/指向我链接)其他使用“is / as”的上下文会产生什么影响吗?

感谢。

1 个答案:

答案 0 :(得分:6)

通过示例(并非所有都是PL / SQL):

[CREATE] PROCEDURE x IS|AS ...
[CREATE] FUNCTION x IS|AS ...
CREATE PACKAGE [BODY] x IS|AS ...
CREATE TYPE [BODY] x IS|AS ...

CURSOR x IS ...
TYPE x IS ...
SUBTYPE x IS ...

CREATE TABLE x AS subquery
SELECT x AS "y" FROM z AS "w"
WITH x AS (SELECT ...

因此,AS并非始终允许IS,而IS的{​​{1}}并非总是允许AS。)

我认为,只是这种语言的一个怪癖。通常,我认为IS更常见,除了AS是唯一的选项(如上面的SQL示例中所示)。 Oracle文档中的大多数示例似乎都使用IS,而我个人认为这是我的偏好,因为在我看来它更符合语义。

参考文献:

Oracle SQL Reference 11gR1

Oracle PL/SQL Reference 11gR1