クエリの実行時に「ORA-21560:引数3がnull、無効、または範囲外です」というエラーが発生します。
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がnull、無効、または範囲外です」
*原因:引数はnull以外の有効な値を予期していますが、渡された引数の値はnull、無効、または範囲外です。例としては、LOB / FILEの位置引数またはサイズ引数の値が1〜(4GB -1)の範囲外である場合や、ファイルを開くために無効なオープンモードが使用されている場合などがあります。
*アクション:プログラムをチェックし、ルーチンの呼び出し元を修正して、ヌル、無効、または範囲外の引数値を渡さないようにしてください。
「数量」を「数量」に変更しようとしましたが(一重引用符を2つのアポストロフィに変更)、同じエラーが発生しました。
BLOBの内容は次のとおりです。
<?xml version="1.0" encoding="utf-8"?>
<booked-order>
<ads>
<online-content>
<name>quantity</name>
<value>19872</value>
</online-content>
</ads>
</booked-order>