导致ORA-00913的ROW_NUM函数:值太多错误?甲骨文

tomaytotomato

全部,

我试图将一个或多个祖父母表中的两个或多个记录配对,以便可以使用一个孙子项开始查找其子项记录。

所以结构就像

  • S_ASSET x 1条记录
  • S_ASSET_X x 2个子记录
  • CX_ASSET_XM x 1个子记录

因此基数是一个祖父母可以拥有2个孙记录

此CX_ASSET_XM表将保存有关孙资产的TCP / IP调用的信息。这些呼叫不同步。因此,一个孙资产可以在今天拨打电话,但另一资产从昨天开始就没有拨打过。

在我的查询中,我找到了今天(sysdate)创建的所有孙子记录,然后向上遍历该关系以找到“祖父母”,然后向下遍历以在“孙子元组”中找到另一个双胞胎。

我的查询的问题是它返回一对配对进行的每个TCP / IP调用,但是我只希望分析每个孙子的最新回调

这是一个例子

在此处输入图片说明

因此,为了尽量减少我的结果集,我尝试使用ROW_NUM函数仅获取所需的结果,这是每个大子记录的最新回调日期。

询问

SELECT cb.ssid, cb.created_by, cb.callback_date, cb.callback_num,
       asset.desc_text, asset.prom_integ_id, asset.integration_id
       --Traversing Up to find the Grandparent record of
FROM   SIEBEL.CX_ASSET_XM cb
       JOIN SIEBEL.S_ASSET_X assetx ON cb.SSID = assetx.attrib_37
       JOIN SIEBEL.S_ASSET asset ON assetx.par_row_id = asset.row_id
WHERE  asset.prom_integ_id IN
--Traversing Down to find the other pair
(   SELECT asset.prom_integ_id,
           ROW_NUMBER() OVER (PARTITION BY cb.ssid
                                  ORDER BY cb.callback_date DESC)
    FROM   SIEBEL.CX_ASSET_XM cb
           JOIN SIEBEL.S_ASSET_X assetx ON cb.ssid = assetx.attrib_37
           JOIN SIEBEL.S_ASSET asset ON assetx.par_row_id = asset.row_id
);

错误

ORA-00913: too many values
00913. 00000 -  "too many values"
*Cause:    
*Action:
Error at Line: 7 Column: 36

我在此查询结构中正确使用了ROW_NUM和PARTITION吗?

谢谢

ORACLE DB版本为10g企业版10.2.0.3.0-64位

普热米斯劳·克鲁格(Przemyslaw Kruglej)

问题是,您使用IN运算符,在这种情况下,该运算符希望可以使用一组值,但是子查询返回两列,而不是一列:

WHERE asset.prom_integ_id IN
--Traversing Down to find the other pair
(   SELECT asset.prom_integ_id, ROW_NUMBER() OVER (PARTITION BY cb.ssid ORDER BY cb.callback_date DESC)

应该:

WHERE asset.prom_integ_id IN
--Traversing Down to find the other pair
(   SELECT asset.prom_integ_id

而且,从那开始,我想应该更早地访问从ROW_NUMBER返回的值,因此它看起来像这样:

SELECT cb.ssid, cb.created_by, cb.callback_date, cb.callback_num, asset.desc_text, asset.prom_integ_id, asset.integration_id
--Traversing Up to find the Grandparent record of
FROM SIEBEL.CX_ASSET_XM cb
    JOIN SIEBEL.S_ASSET_X assetx
      ON cb.SSID = assetx.attrib_37
    JOIN SIEBEL.S_ASSET asset
      ON assetx.par_row_id = asset.row_id
WHERE asset.prom_integ_id IN
--Traversing Down to find the other pair
(   SELECT prom_integ_id
    FROM (
SELECT asset.prom_integ_id, ROW_NUMBER() OVER (PARTITION BY cb.ssid ORDER BY cb.callback_date DESC) row_n
    FROM SIEBEL.CX_ASSET_XM cb
    JOIN SIEBEL.S_ASSET_X assetx
      ON cb.ssid = assetx.attrib_37
    JOIN SIEBEL.S_ASSET asset
      ON assetx.par_row_id = asset.row_id
) where row_n = 1
);

我不确定这是否是您想要的-您可以检查吗?

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

ORA-00913: 值太多

来自分类Dev

BUG:ORA_00913 Oracle错误-值太多

来自分类Dev

第 10 行:错误:ORA-00907 缺少右括号 | 甲骨文 11g

来自分类Dev

Oracle嵌套选择返回ORA-00913“值太多”

来自分类Dev

oracle:为什么'as'关键字导致错误ora-00933?

来自分类Dev

创建表时,Oracle会导致Oracle“ ORA-00907:缺少右括号”错误吗?

来自分类Dev

Oracle OCCI setDataBuffer 导致 ORA-01406:提取的列值被截断

来自分类Dev

甲骨文上的JPA @Query select抛出ORA-01722:字符串上的数字无效

来自分类Dev

Oracle SQL Developer案例表达式嵌套查询导致“ ORA-00937:不是单个组组函数”错误

来自分类Dev

重复数据的删除逻辑抛出ORA-00913:值太多

来自分类Dev

在OCI中使用PL / SQL变量会导致“ ORA-01008:并非所有变量都已绑定”错误

来自分类Dev

2020-02-29减一年导致错误ORA-01839:日期对指定的月份无效

来自分类Dev

在OCI中使用PL / SQL变量会导致“ ORA-01008:并非所有变量都已绑定”错误

来自分类Dev

选择默认字符串值时,C#左联接linq导致ORA-12704

来自分类Dev

ORA-02070:数据库[MySQL]在这种情况下不支持子查询。-甲骨文

来自分类Dev

ORA-01843:不是有效的月份-但是什么月份格式?甲骨文11g

来自分类Dev

ORA-02070:数据库[MySQL]在这种情况下不支持子查询。-甲骨文

来自分类Dev

在Oracle 11g2 XE中编译PL / SQL函数有时会导致ORA-00600:内部错误

来自分类Dev

ORA-00913:使用情况时值太多

来自分类Dev

尝试运行一个简单的动态脚手架 Grails 应用程序会导致 ORA-00904 错误

来自分类Dev

甲骨文

来自分类Dev

甲骨文每月

来自分类Dev

甲骨文的时差

来自分类Dev

甲骨文查询

来自分类Dev

甲骨文:Listagg

来自分类Dev

甲骨文| SUBSTR函数不起作用

来自分类Dev

density_RANK()函数,如何解决?甲骨文

来自分类Dev

甲骨文的Java教程 - 在回答问题的可能的错误

来自分类Dev

Rails的连接甲骨文引发错误

Related 相关文章

  1. 1

    ORA-00913: 值太多

  2. 2

    BUG:ORA_00913 Oracle错误-值太多

  3. 3

    第 10 行:错误:ORA-00907 缺少右括号 | 甲骨文 11g

  4. 4

    Oracle嵌套选择返回ORA-00913“值太多”

  5. 5

    oracle:为什么'as'关键字导致错误ora-00933?

  6. 6

    创建表时,Oracle会导致Oracle“ ORA-00907:缺少右括号”错误吗?

  7. 7

    Oracle OCCI setDataBuffer 导致 ORA-01406:提取的列值被截断

  8. 8

    甲骨文上的JPA @Query select抛出ORA-01722:字符串上的数字无效

  9. 9

    Oracle SQL Developer案例表达式嵌套查询导致“ ORA-00937:不是单个组组函数”错误

  10. 10

    重复数据的删除逻辑抛出ORA-00913:值太多

  11. 11

    在OCI中使用PL / SQL变量会导致“ ORA-01008:并非所有变量都已绑定”错误

  12. 12

    2020-02-29减一年导致错误ORA-01839:日期对指定的月份无效

  13. 13

    在OCI中使用PL / SQL变量会导致“ ORA-01008:并非所有变量都已绑定”错误

  14. 14

    选择默认字符串值时,C#左联接linq导致ORA-12704

  15. 15

    ORA-02070:数据库[MySQL]在这种情况下不支持子查询。-甲骨文

  16. 16

    ORA-01843:不是有效的月份-但是什么月份格式?甲骨文11g

  17. 17

    ORA-02070:数据库[MySQL]在这种情况下不支持子查询。-甲骨文

  18. 18

    在Oracle 11g2 XE中编译PL / SQL函数有时会导致ORA-00600:内部错误

  19. 19

    ORA-00913:使用情况时值太多

  20. 20

    尝试运行一个简单的动态脚手架 Grails 应用程序会导致 ORA-00904 错误

  21. 21

    甲骨文

  22. 22

    甲骨文每月

  23. 23

    甲骨文的时差

  24. 24

    甲骨文查询

  25. 25

    甲骨文:Listagg

  26. 26

    甲骨文| SUBSTR函数不起作用

  27. 27

    density_RANK()函数,如何解决?甲骨文

  28. 28

    甲骨文的Java教程 - 在回答问题的可能的错误

  29. 29

    Rails的连接甲骨文引发错误

热门标签

归档