当前位置: 首页 > 知识库问答 >
问题:

ORA-22992/ORA-06502+ORA-06512错误

单凯捷
2023-03-14
SELECT DISTINCT 
    P.SKU, SUBSTR(X.ATTRIBUTENAME, 14, 3) ATTRIBUTECODE, X.ATTRIBUTEVALUE
FROM 
    PRODUCT@ISPSTAG2 P,
    XMLTABLE('/attrs/attr'
    PASSING XMLTYPE(REGEXP_REPLACE(P.ATTRIBUTES_DE_AT, '<attr name="longDescription">.*?<\/attr>'))
    COLUMNS ATTRIBUTENAME VARCHAR2(50) PATH '@name',
            ATTRIBUTEVALUE VARCHAR2(4000) PATH '/string'
) X
WHERE X.ATTRIBUTENAME LIKE 'Z_CA%'
AND DN(DOMAINID) = 'AT'
AND SKU NOT LIKE 'OFF_%' AND SKU NOT LIKE 'PDT%'
AND ATTRIBUTES_DE_AT IS NOT NULL;

我做了一些研究,有一个建议可以使用双重

SELECT DISTINCT P.SKU, SUBSTR(X.ATTRIBUTENAME, 14, 3) ATTRIBUTECODE, X.ATTRIBUTEVALUE
FROM PRODUCT@ISPSTAG2 P,
XMLTABLE('/attrs/attr'
    PASSING XMLTYPE(REGEXP_REPLACE(P.ATTRIBUTES_DE_AT, '<attr name="longDescription">.*?<\/attr>'))
    COLUMNS ATTRIBUTENAME VARCHAR2(50) PATH '@name',
            ATTRIBUTEVALUE VARCHAR2(4000) PATH '/string'
) X
WHERE X.ATTRIBUTENAME LIKE 'Z_CA%'
AND DN(DOMAINID) = 'AT'
AND SKU NOT LIKE 'OFF_%' AND SKU NOT LIKE 'PDT%'
AND (SELECT ATTRIBUTES_DE_AT FROM DUAL) IS NOT NULL;

但是现在我得到了ORA-06502/ORA-06512错误:

ORA-06502:PL/SQL:erreur numérique ou erreur sur une valeur
ORA-06512:àsys.xmltype“,ligne 272
ORA-06512:àligne 1
06502。00000-“PL/SQL:数值或值错误%s”
*原因:出现算术、数值、字符串、转换或约束错误。例如,如果试图将值NULL赋给声明为NOT NULL的变量,或者试图将大于99的整数赋给声明为NUMBER(2)的变量,则会发生此错误。
*操作:更改数据、操作方式或声明方式,以便值不违反约束。

有什么想法吗?谢谢你。

共有1个答案

终育
2023-03-14

如果忘记在XMLType中使用(SELECT ATTRIBUTES_DE_AT FROM DUAL)子查询...

SELECT DISTINCT P.SKU, SUBSTR(X.ATTRIBUTENAME, 14, 3) ATTRIBUTECODE, X.ATTRIBUTEVALUE
FROM PRODUCT@ISPSTAG2 P,
XMLTABLE('/attrs/attr'
    PASSING XMLTYPE(REGEXP_REPLACE(**(SELECT ATTRIBUTES_DE_AT FROM DUAL)**, '<attr name="longDescription">.*?<\/attr>'))
    COLUMNS ATTRIBUTENAME VARCHAR2(50) PATH '@name',
            ATTRIBUTEVALUE VARCHAR2(4000) PATH '/string'
) X
WHERE X.ATTRIBUTENAME LIKE 'Z_CA%'
AND DN(DOMAINID) = 'AT'
AND SKU NOT LIKE 'OFF_%' AND SKU NOT LIKE 'PDT%'
AND (SELECT ATTRIBUTES_DE_AT FROM DUAL) IS NOT NULL;

我不明白的是,当不使用is NOT NULL筛选器中的子查询时,我会出现ORA-22992错误(使用远程LOB),那么为什么不使用dual子查询(相同的远程LOB)会出现不同的错误呢?

不管怎样,为了你的时间/帮助:)

 类似资料:
  • 问题内容: 1.在将row_val变量char值’Good’更新到表中时,得到无效的标识符错误2.在插入数字时,它工作正常,但字符串却出现错误3。 错误 ORA-00904:“良好”:标识符无效ORA-06512:在第43行ORA-06512:在“ SYS.DBMS_SQL”在第1721行 我想将此’good,son,r ,, happy’字符串中的每个单词插入一行中的单独列中 问题答案: 字符串

  • ODI-1228:Task START_JC(过程)在目标ORACLE连接OJC上失败。 由:java.sql.sqlexception:ORA-06502:PL/SQL:numeric or value错误:NULL索引表键值 ORA-06512:at“OJC.JC_master”,第129行 ORA-06512:at“OJC.JC_master”,第689行 ORA-06512:at“OJC.

  • 问题内容: 我创建了一个触发器,如下所示: 我正在尝试在Trigger_1中插入一行 它给了我错误: 谁能帮忙吗? 问题答案: 只需删除 从触发代码。在正在进行的事务中触发执行,因此您无法进行单独的提交。提交事务后,您在trigger_2中的插入也将提交。

  • 我用clobs和VARCHAR2做了一点实验。问题是,我们在数据库表中有很多XML,我希望尽快下载XML。由于我需要使用C#DevArt组件,我尝试了各种方法,发现clobs(它们涉及每行到数据库的一次往返)比VARCHAR2慢得多。 现在有人知道为什么查询在所有情况下都不起作用了吗。或者有没有人建议如何编写一个查询来查找clob是否可以作为VARCHAR2检索?

  • 你好,我有一个简单的过程,编译好,但在我初始化变量后,错误是这样的。 该表是这样创建的 该过程如下所示: ORA-06502:PL/SQL:数值或值错误 ORA-06512:at“doma.quera_pomocky”,第9行 ORA-06512:at第1行 06502。00000-“PL/SQL:数值或值错误%s” *原因:出现算术、数值、字符串、转换或约束错误。例如,如果尝试将值NULL赋给声

  • 我实现了一个返回clob数据类型的函数,我希望在DBMS输出中打印结果。不幸的是,我得到了ORA-06502:PL/SQL:numeric或value错误,我认为这是由于dbms_output的大小造成的。 这是密码。 这里有一些东西可以帮助您理解这个问题 1)添加了以下内容来设置缓冲区的大小不受限制,但不起作用… 3)我可以通过执行以下操作来解决这个问题,但我认为这不是一个好的解决方案,因为它执