テーブルのBLOBフィールドを読み取り、別のプロシージャのテンプレートとして使用されるRTFドキュメントを書き込むプロシージャを開発しようとしていますが、プロシージャがselectステートメントを起動すると、ORA-06502エラーが発生します。 。
ドキュメントを読んだ後のこのエラーは、フィールド間の非互換性(数値または値のエラー文字列)が原因で発生します
しかし、私はインターネットのいたるところにこの例を見てきました、そして私はそれを引き起こしているものの考えを使い果たしています。
私の手順のソースコードは次のとおりです。
PROCEDURE p_transfer_db_client(pcPath IN VARCHAR2,
pnSequence IN NUMBER) IS
v_src_blob BLOB;
v_file UTL_FILE.FILE_TYPE;
v_offset INTEGER := 1;
v_amount BINARY_INTEGER := 32766;
v_binary_buffer RAW(32767);
BEGIN
SELECT model
INTO v_src_blob
FROM models
wHERE id = pnSequence;
v_file := UTL_FILE.FOPEN(pcPath, 'model.rtf', 'wb', v_amount);
LOOP
BEGIN
DBMS_LOB.READ(v_src_blob, v_amount, v_offset, v_binary_buffer);
UTL_FILE.PUT_RAW(v_file, v_binary_buffer);
v_offset := v_offset + v_amount;
EXCEPTION
WHEN NO_DATA_FOUND THEN
EXIT;
END;
END LOOP;
UTL_FILE.FFLUSH(v_file);
UTL_FILE.FCLOSE(v_file);
END p_transfer_db_client;