Πώς φορτώνουμε αρχεία (csv, txt) σε βάση δεδομένων της Oracle

Πώς φορτώνουμε αρχεία (csv, txt) σε βάση δεδομένων της Oracle
Πώς φορτώνουμε αρχεία (csv, txt) σε βάση δεδομένων της Oracle

Είναι εφικτό να εισάγουμε αρχεία όπως 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;

Πηγές:

Μοιράσου το

Αφήστε μία απάντηση