Iamは、テーブルに挿入するためのexecute_immediateステートメントで使用する文字列を作成しようとしています。使用される列の1つはBLOB型です。'||'を使用しているIam 列を追加してSQLを構築する演算子。BLOB型は'||'では機能しないようです。サンプルコード(オリジナルではない)とエラーを参照してください
宣言する FIRST_NAME varchar2(10); PICTUREブロブ; --blobタイプ TEMP_STR varchar2(2000); 始める FIRST_NAME:='アルン'; --BLOBが作成されます DBMS_LOB.CREATETEMPORARY(PICTURE、true);-- next line works insert into BLOB_TEST (PERSON_NAME,PHOTO) values (FIRST_NAME,PICTURE); -- creating the string TEMP_STR := 'insert into BLOB_TEST values (''' || first_name||''''||','||PICTURE||')'; -- just to view the string DBMS_OUTPUT.PUT_LINE(TEMP_STR); /* code to be done */ -- execute immediate(temp_str); end;
エラー
エラーレポート: ORA-06550:行9、列17: PLS-00306:'||'の呼び出しで引数の数またはタイプが間違っています ORA-06550:行9、列5: PL / SQL:ステートメントは無視されます 06550. 00000-「行%s、列%s:\ n%s」 *原因:通常、PL/SQLコンパイルエラー。 *アクション:
My table BLOB_TEST is create table BLOB_TEST ( PERSON_NAME varchar2(20), PHOTO blob );
助けてください。私が欲しいのは、BLOB値をテーブルに挿入するために挿入ステートメントを動的に実行するオプションです。