我收到“ORA-21560:参数3是空的,无效的,或超出范围”的错误上运行查询:extractValue一起使用XPath的带引号的失败
SELECT extractvalue(xmltype(blob2clob(shblobdata.blobdata)),
'/booked-order/ads/online-content[name="quantity"]/value')
FROM shblobdata
WHERE id=...;
完整的错误是:
ORA-21560: argument 3 is null, invalid, or out of range
ORA-06512: at "SYS.DBMS_LOB", line 978
ORA-06512: at "MORAS.BLOB2CLOB", line 14
21560。 00000 - “参数%s为空,无效或超出范围”
*原因:参数期望有一个非空有效值,但传入的参数值为空,无效或超出范围。 实例包括当所述LOB/FILE位置或大小 参数通过(4GB - 1)具有范围为1以外的值,或者 当一个无效的开放模式用于打开一个文件,等等
*操作:检查你的程序,并纠正例程 的调用者不传递空值,无效值或超范围参数值。
我试图将“数量”更改为“数量”(更改单引号为两个撇号),但得到了相同的错误。
BLOB的内容是:
<?xml version="1.0" encoding="utf-8"?>
<booked-order>
<ads>
<online-content>
<name>quantity</name>
<value>19872</value>
</online-content>
</ads>
</booked-order>
你有'MORAS.BLOB2CLOB'的来源吗?看起来问题在于如何调用另一个函数,而不是BLOB中的数据;我认为它不如'extractvalue()',甚至是'xmltype()'。 – 2012-07-20 12:05:47