2

私はPL SQLプロシージャを初めて使用します。ストアドプロシージャの実行セクション内にこのコード行があります。

EXECUTE IMMEDIATEここで質問があります。ここで DML ステートメントを使用する方法を教えてください。また、どのような場合に使用する必要がありますEXECUTE IMMEDIATEか?

v_update_query2 := 'INSERT INTO '||p_country||'.DETAILS ( ID, STATUS, DEST_SYSTEM, OUT_TIME ) VALUES ('''
    ||v_txn_id ||''','||'''T081'''||','||'''CLEARING'''||', SYSDATE)';



EXECUTE IMMEDIATE v_update_query1 ;
4

1 に答える 1

4

EXECUTE IMMEDIATEテーブル名、列名など、スキーマ オブジェクトへの変数参照を持つ唯一の方法です。

任意の文字列を作成し、その文字列を SQL ステートメントとして実行できます。
これがないと、プロシージャ変数は sql の値にのみ使用できます。select * from table where column = my_variable

あなたの例では、テーブル名p_country変数によって提供されています。これはスキーマ要素であるため、EXECUTE IMMEDIATE.

于 2011-07-24T05:54:59.330 に答える