Πώς φορτώνουμε αρχεία (csv, txt) σε βάση δεδομένων της Oracle
- Πώς ενεργοποιούμε το Unified Auditing σε Oracle Database - 7 Οκτώβριος 2024
- Τι είναι η PostgreSQL και πως κάνουμε μία πλήρης εγκατάσταση - 2 Σεπτέμβριος 2024
- Πώς ρυθμίζουμε το replication του GoldenGate ώστε να διαβάζει από το Standby του Oracle Data Guard - 2 Αύγουστος 2024
Είναι εφικτό να εισάγουμε αρχεία όπως csv και txt σε έναν πίνακα βάσης δεδομένων της Oracle. Υπάρχουν δύο παρόμοιοι τρόποι. Mε χρήση SQL*Loader ή με χρήση External Table. Ο τρόπος λειτουργία τους μοιάζει, όμως ανάλογα τη περίπτωση είναι καταλληλότερη η χρήση της μίας μεθόδου.
SQL*Loader
Με τον SQL*Loader θα πρέπει να έχουμε φτιάξει τον πίνακα πριν την εισαγωγή του αρχείου. Μέσω ενός control file ορίζουμε τις παραμέτρους όπως το path του αρχείου και το delimiter που χρησιμοποιεί.
Πότε προβλέπεται η χρήση του SQL*Loader
Η χρήση του είναι η βέλτιστη όταν θέλουμε να φορτώσουμε δεδομένα απομακρυσμένα, είτε σε ενδιάμεσο πίνακα που περιέχει indexing και τέλος όταν δεν χρειάζεται να τροποποιήσουμε τα δεδομένα κατά την εισαγωγή.
Το παράδειγμα με χρήση του SQL*Loader
Θα πρέπει να δημιουργήσουμε τον πίνακα.
create table import(id integer, name varchar2(100));
Table created.
Φτιάχνουμε το control file με τις παραμέτρους για το φόρτωμα με όνομα dokimi.ctl.
load data infile '/home/oracle/test.csv' append into table sys.import fields terminated by ";" -- delimiter ( id, name )
Για να πραγματοποιηθεί η εκτέλεση καλούμε τον sqlldr σαν χρήστης που έχει δικαίωμα αναφέροντας το path που βρίσκεται το control file που φτιάξαμε.
sqlldr "'sys/Passw0rd1 as SYSDBA'" control=/home/oracle/dokimi.ctl
External Table
Με την χρήση External Table θα πρέπει να φτιάξουμε ένα λογικό directory με την τοποθεσία που θα βρίσκεται το αρχείο και θα πρέπει να φτιάξουμε τον πίνακα ως organization external.
Πότε προβλέπεται η χρήση του External Table
Η χρήση External Table είναι η βέλτιστη όταν θέλουμε να εισάγουμε τα δεδομένα παράλληλα και όταν θέλουμε να μορφοποιήσουμε τα δεδομένα καθώς τα εισάγουμε.
Το παράδειγμα με χρήση του External Table
Φτιάχνουμε ένα λογικό directory.
SQL> create directory imp3 as '/home/oracle';
Directory created.
Εκτελούμε create table statement με την επιλογή organization external και τις παραμέτρους του αρχείου.
CREATE TABLE import2( id integer, name VARCHAR2(100)) ORGANIZATION EXTERNAL (TYPE ORACLE_LOADER DEFAULT DIRECTORY imp3 ACCESS PARAMETERS (FIELDS TERMINATED BY ';') LOCATION ('test.csv'))parallel 5;