Περισσότερα
Καλύτερος τρόπος για να κάνετε εισαγωγή πολλαπλών σειρών στην Oracle;
Ψάχνω για έναν καλό τρόπο να εκτελώ εισαγωγές πολλαπλών σειρών σε μια βάση δεδομένων Oracle 9. Το παρακάτω λειτουργεί στη MySQL, αλλά δεν φαίνεται να υποστηρίζεται στην 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
Αυτό λειτουργεί στην Oracle:
Αυτό που πρέπει να θυμάστε εδώ είναι να χρησιμοποιείτε τη δήλωση
from dual
.(πηγή)
Χρησιμοποιήστε το SQL*Loader. Χρειάζεται μια μικρή ρύθμιση, αλλά αν αυτό δεν είναι μια εφάπαξ, αξίζει τον κόπο.
Δημιουργία πίνακα
Δημιουργία CSV
Δημιουργία αρχείου ελέγχου φορτωτή
*Εκτέλεση της εντολής SQLLoader**
Επιβεβαιώστε την εισαγωγή
Το SQL*Loader έχει πολλές επιλογές και μπορεί να δεχτεί σχεδόν οποιοδήποτε αρχείο κειμένου ως είσοδο. Μπορείτε ακόμη και να ενσωματώσετε τα δεδομένα στο αρχείο ελέγχου σας, αν θέλετε.
Εδώ είναι μια σελίδα με μερικές περισσότερες λεπτομέρειες -> SQL*Loader
Εάν έχετε ήδη τις τιμές που θέλετε να εισαγάγετε σε έναν άλλο πίνακα, τότε μπορείτε να κάνετε Εισαγωγή από μια δήλωση select.
Διαφορετικά, μπορείτε να απαριθμήσετε μια δέσμη δηλώσεων εισαγωγής μίας γραμμής και να υποβάλετε πολλά ερωτήματα μαζικά για να εξοικονομήσετε χρόνο για κάτι που λειτουργεί τόσο στην Oracle όσο και στη MySQL.
Η λύση @Espo'είναι επίσης μια καλή λύση που θα λειτουργήσει τόσο στην Oracle όσο και στη MySQL, αν τα δεδομένα σας δεν είναι ήδη σε πίνακα.