设为首页 - 加入收藏 PHP编程网 - PHP站长网 (http://www.52php.cn)- 电商,百科,编程,业界,移动互联,5G,云计算,站长网!
热搜: 专业 娱乐 服务 applewat
当前位置: 首页 > 站长百科 > 正文

Oracle SQL Query在12C但不在11g中工作

发布时间:2021-01-24 08:36 所属栏目:[站长百科] 来源:网络整理
导读:我有一个Oracle SQL查询在12C中工作正常,但在11g中没有.我在下面给出了一个类似的例子.请解释这是否是12C中修复的错误/增强功能. CREATE TABLE MSI_OWNER.VINOTH_TEST1( COL1 VARCHAR2(100 BYTE),SAL NUMBER,YEAR NUMBER)Insert into MSI_OWNER.VINOTH_TES

我有一个Oracle SQL查询在12C中工作正常,但在11g中没有.我在下面给出了一个类似的例子.请解释这是否是12C中修复的错误/增强功能.

CREATE TABLE MSI_OWNER.VINOTH_TEST1
(
  COL1  VARCHAR2(100 BYTE),SAL   NUMBER,YEAR  NUMBER
)

Insert into MSI_OWNER.VINOTH_TEST1   (COL1,SAL,YEAR) Values   ('Vinoth',100,1);
Insert into MSI_OWNER.VINOTH_TEST1   (COL1,2);
COMMIT;

  SELECT col1,(SELECT MAX (its)
            FROM (SELECT MAX (year) its
                    FROM vinoth_test1 x
                   WHERE x.col1 = a.col1))
            max_year,sal
    FROM vinoth_test1 a
GROUP BY col1,sal

请注意,我已经写了一个不同的逻辑来解决这个问题,但我想知道这是11g中的错误还是12C中的增强.

Error in 11g: ORA-00904: "A"."COL1": invalid identifier

解决方法

Oracle文档始终明确表示只允许一个级别的关联(尽管没有明确的原因,并且它违反了SQL标准).

正如其中一位大师Solomon Yakobson在OTN上多次解释,在每个新版本中,在子版本1中(如10.1,11.1),更深层次的关联工作正常,就像OP注意到的那样.它曾经在子版本2(10.2,11.2)中被“修复”(灵活性被收回). 12.1具有相同的“增强”(所有级别的相关性),12.2没有把它拿走 – 尽管文档STILL表示相关性不允许超过一个级别.特别是因为当我们使用WITH子句编写查询时不存在这样的限制,因此Oracle继续使用该限制是没有意义的.

https://docs.oracle.com/database/122/SQLRF/Using-Subqueries.htm#SQLRF52357

当嵌套子查询引用一个表中的一个列时,Oracle执行一个相关子查询,该表引用一个父语句,该语句高于子查询一级[…]

【免责声明】本站内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

推荐文章
热点阅读