Altro
Il modo migliore per fare l'inserimento di più righe in Oracle?
Sto cercando un buon modo per eseguire inserimenti di più righe in un database Oracle 9. Il seguente funziona in MySQL ma non sembra essere supportato in Oracle.
INSERT INTO TMP_DIM_EXCH_RT
(EXCH_WH_KEY,
EXCH_NAT_KEY,
EXCH_DATE, EXCH_RATE,
FROM_CURCY_CD,
TO_CURCY_CD,
EXCH_EFF_DATE,
EXCH_EFF_END_DATE,
EXCH_LAST_UPDATED_DATE)
VALUES
(1, 1, '28-AUG-2008', 109.49, 'USD', 'JPY', '28-AUG-2008', '28-AUG-2008', '28-AUG-2008'),
(2, 1, '28-AUG-2008', .54, 'USD', 'GBP', '28-AUG-2008', '28-AUG-2008', '28-AUG-2008'),
(3, 1, '28-AUG-2008', 1.05, 'USD', 'CAD', '28-AUG-2008', '28-AUG-2008', '28-AUG-2008'),
(4, 1, '28-AUG-2008', .68, 'USD', 'EUR', '28-AUG-2008', '28-AUG-2008', '28-AUG-2008'),
(5, 1, '28-AUG-2008', 1.16, 'USD', 'AUD', '28-AUG-2008', '28-AUG-2008', '28-AUG-2008'),
(6, 1, '28-AUG-2008', 7.81, 'USD', 'HKD', '28-AUG-2008', '28-AUG-2008', '28-AUG-2008');
242
3
Questo funziona in Oracle:
La cosa da ricordare qui è di usare l'istruzione
from dual
.(fonte)
Usate SQL*Loader. Ci vuole un po' di impostazione, ma se questo non è un caso isolato, ne vale la pena.
Creare una tabella
Crea CSV
Creare il file di controllo del caricatore
*Esegui il comando SQLLoader**
Conferma l'inserimento
SQL*Loader ha molte opzioni e può prendere praticamente qualsiasi file di testo come input. Puoi anche inlineare i dati nel tuo file di controllo, se vuoi.
Ecco una pagina con qualche dettaglio in più -> SQL*Loader
Se avete già i valori che volete inserire in un'altra tabella, allora potete inserire da una dichiarazione di selezione.
Altrimenti, puoi elencare un mucchio di istruzioni di inserimento a riga singola e inviare diverse query in blocco per risparmiare il tempo per qualcosa che funziona sia in Oracle che in MySQL.
@Espo'soluzione è anche una buona soluzione che funzionerà sia in Oracle che in MySQL se i tuoi dati non sono già in una tabella.