2016-05-25 9 views
0

Oracleに挿入メソッドについて質問があります。私は自分のテーブルに挿入しなければならないIDの数を保持するコールドフュージョンでリストを作成しています。これらのIDはすべて、テーブルに挿入され、すべてのIDが同じ値になります。だから私の質問は、ColdFusionを使っているのでcfloopを使わなければならないのでしょうか、単にインサートメソッドでリストの値を出力するために単にポンド記号を使うことができますか?私は今これをテストすることができません、私はすべてを確認している私の挿入メソッドを実行する前に確認したいと思います。ここに私のコードは次のとおりです。ORACLE ColdFusionにリストを使用して複数の行を挿入しますか?

<cfset myList = "57,688,456,2,55,88,98,144,77"> 

<cfquery name="InsertRec" database="test"> 
    Insert Into TEST_TABLE (ID, STATUS) 
    Values('#myList#','Busy') 
</cfquery> 

または私はこのようなものを使用することができます。

<cfquery name="InsertRec" database="test"> 
    Insert Into TEST_TABLE (ID, STATUS) 
    Values 
    <cfloop list="#myList#" index="a"> 
     (
     <cfqueryparam cf_sql_type="cf_sql_integer" value="#a#">, 
     'Busy' 
     ) 
    </cfloop> 
</cfquery> 

私はOracleは、複数行の挿入を扱うことができる場合は、この方法または私はの内のcfloop使用する必要がわかりません私のcfquery。オラクルで何が最高で効率的であるかを知っている人は、私に知らせてください。ありがとうございました。

+0

myListのidが別のテーブルのものであると仮定すると、より簡単なオプションは[INSERT/SELECT]を使うことです(http://stackoverflow.com/questions/19591652/coldfusion-how-to-insert-a-list静的 - 外部キー - イン - ワン挿入/ 19592264#19592264)。これは重複した質問のように思われるので、投票を閉じる。 – Leigh

答えて

0

これを試してください。

insert into test_table 
(id, status) 
select 0, '' 
from dual 
where 1 = 2 
<cfloop list = "#myList#" index = "listItem"> 

union 
select <cfqueryparam cfsqltype="cf_sql_integer" value="#listItem#"> 
, 'Busy' 
from dual 
</cfloop> 

もちろん、そのリストがどこに由来するかによって、より良い方法があるかもしれません。

+0

私は 'Select 0、' 'dualから1 = 2'を使用する必要があるのはなぜですか?なぜ私のcfloopの内部を選択するのですか? –

+0

「union」という言葉を付け加えた方が意味がありますか? –

+0

はい、あなたは何をしていたのか分かりました。ありがとうございました。 –

関連する問題