CLOB をテーブルから BLOB に変換して別のテーブルに変換しようとすると問題が発生します。基本的に、私は PLSQL 配列内でループしています。最初の呼び出しはDBMS_LOB.convertToBlob
常にうまくいきますが、次の反復ではORA-22275: invalid LOB locator specified
、ブロブをループ内またはループ外で初期化するかどうかに応じて、空のブロブが作成されるか、エラーが発生します。
だから、もしそうなら:
BEGIN
FOR i IN 1 .. rs.COUNT
LOOP
DBMS_LOB.createTemporary (v_blob, TRUE);
DBMS_LOB.convertToBlob (v_blob,
rs (i).v_clob,
DBMS_LOB.LOBMAXSIZE,
v_in,
v_out,
DBMS_LOB.DEFAULT_CSID,
v_lang,
v_warning);
[...]
DBMS_LOB.freeTemporary(v_blob);
最初のブロブは適切に変換されますが、他のブロブには空のブロブしか返されません。
私が行った場合:
BEGIN
DBMS_LOB.CREATETEMPORARY (v_blob, TRUE);
FOR i IN 1 .. rs.COUNT
LOOP
DBMS_LOB.convertToBlob(...);
最初のブロブもうまく変換しますがORA-22275: invalid LOB locator specified
、最初の反復後にエラーが発生します。
どうすればこれを回避できますか? これについての良い説明が見つからないようです。ご協力いただきありがとうございます!