2012-01-16 18 views
0

私はいくつかのアイデアのためにこれを投げたいと思っていました。私は、挿入/更新ステートメントを生成するプログラムを書いている、私は挿入/更新するクエリの結果から来るテーブルをしたい。だから、のようなもの(構文を許してください):Oracleの挿入/更新文の表を選択しますか?

INSERT INTO (SELECT TBL_NAME FROM MYTABLES WHERE A=B) VALUES ('A', 'B', 'C'); 

私は、Oracleでこれをしなければならないが、私は彼らの宣言文または構文であまり慣れていないんです。私は最良の方法は、SELECTの結果である変数を宣言することですが、その変数をINSERTのテーブル名として使用できるかどうかを推測していますか?

また、コードをSQLに保存したいと考えています。

ありがとうございます。

+0

私はあなたが何をしようとして理解していません。 'insert'ステートメントは行をフェッチせず、行を挿入します。 –

+2

彼は名前をサブクエリから決定するテーブルに値を挿入しようとしています。 – bhamby

答えて

4

あなたはDynamic SQLを調べたいと思うかもしれませんが、答えが見つかるかもしれません(少なくともまともな出発点です)。

+0

はい、これには動的SQLが必要です。表名を決定するための照会は、最初に通常のインライン照会として実行する必要があり、最初の照会から取得した表名を組み込んだINSERT文をストリングとして構築する必要があります。 –

0

どのようにこのような何かについて:

SELECT 'INSERT INTO ' || TBL_NAME || ' VALUES (''A'', ''B'', ''C'');' cmd 
FROM MYTABLES WHERE A=B 
; 

を実行し、この選択し、その後、(挿入文である)の選択の結果を実行します。 "コミット"することを忘れないでください。

よろしく、 ロジャー すべてのビューは私です...

関連する問題