【问题标题】:is versus as pl/sql [duplicate]与作为 pl/sql [重复]
【发布时间】:2023-03-04 08:44:01
【问题描述】:

我认为 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”的其他上下文吗?

谢谢。

【问题讨论】:

    标签: oracle plsql semantics


    【解决方案1】:

    举例(并非所有都是 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 在AS 所在的位置并不总是被允许:)

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

    参考资料:

    Oracle SQL Reference 11gR1

    Oracle PL/SQL Reference 11gR1

    【讨论】:

    • +1 表示令人困惑的解释 ;-)
    • 或者正如比尔克林顿曾经观察到的那样,“这取决于‘是’这个词的含义”:youtube.com/watch?v=j4XT-l-_3y0
    • '因此,在 IS 所在的地方并不总是允许 AS,在 AS 所在的地方也不总是允许 IS' +1 精彩句子:)
    猜你喜欢
    • 2021-02-18
    • 1970-01-01
    • 2015-02-02
    • 1970-01-01
    • 1970-01-01
    • 2011-11-08
    • 1970-01-01
    • 1970-01-01
    • 2017-02-14
    相关资源
    最近更新 更多