我在运行查询时收到“ORA-21560:参数 3 为空、无效或超出范围”错误:
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 位置或大小参数的值超出范围 1 到 (4GB - 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>