2016-05-25 10 views
0

Ich habe eine Frage über die Einfügemethode in Oracle. Ich erstelle eine Liste in Cold Fusion, die eine Anzahl von IDs enthält, die ich in meine Tabelle einfügen muss. Alle diese IDs werden in die Tabelle mit einem weiteren Wert eingefügt, der für alle gleich ist. Also meine Frage ist, muss ich cfloop verwenden, da ich Coldfusion dafür verwende, oder ich einfach einfach Pfundsymbole verwenden kann, um meine Listenwerte in meiner Einfügemethode auszugeben? Ich kann das jetzt nicht testen und ich möchte sicher gehen, bevor ich meine Einfügemethode benutze, dass alles in Ordnung ist. Hier ist mein Code:Mehrere Zeilen mithilfe der Liste in ORACLE ColdFusion einfügen?

<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> 

Oder kann ich so etwas wie dieses:

<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> 

Ich bin nicht sicher, ob Oracle-Einsatz für mehrere Zeilen auf diese Weise handhaben kann oder muss ich verwenden cfloop innerhalb von meine cfquery. Wenn jemand weiß, was in Oracle am besten und effizientesten wäre, lassen Sie es mich wissen. Vielen Dank.

+0

Angenommen, die IDs in 'myList' stammen aus einer anderen Tabelle, ist die einfachere Option [INSERT/SELECT] (http://stackoverflow.com/questions/19591652/coldfusion-how-to-insert-a-list) -with-a-static-Fremdschlüssel-in-one-einfügen/19592264 # 19592264). Abstimmung zu schließen, da dies wie eine doppelte Frage erscheint. – Leigh

Antwort

0

Versuchen Sie dies.

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> 

Natürlich, je nachdem, woher diese Liste kam, könnte es bessere Wege geben.

+0

Warum muss ich 'Select 0,' von Dual verwenden, wo 1 = 2 '? Warum auch in meinem cfloop auswählen? –

+0

Macht es jetzt mehr Sinn, dass ich das Wort "union" hinzugefügt habe? –

+0

Ja, jetzt sehe ich was du getan hast. Vielen Dank. –

Verwandte Themen