Pas prévu dans le standard SQL !
MySQL :
LOAD DATA [LOCAL] INFILELOCAL indique que le fichier vient du client (sinon, il doit être sur le serveur).LOAD DATA [LOCAL] INFILE 'chemin/fichier.csv'
INTO TABLE nomTableCible
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(column1, column2, column3);PostgreSQL :
COPY COPY nomTableCible (col1, col2, col3)
FROM '/chemin/fichier.csv'
DELIMITER ','
CSV HEADER;\copy possibilité d'agir sur un fichier présent sur le client.Oracle : pas de solution simple...
CREATE TABLE nomTableExterne (
id NUMBER,
nom VARCHAR2(50),
email VARCHAR2(100)
)
ORGANIZATION EXTERNAL (
TYPE ORACLE_LOADER
DEFAULT DIRECTORY data_dir -- data_dir doit être créé au préalable
ACCESS PARAMETERS (
RECORDS DELIMITED BY NEWLINE
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
)
LOCATION ('fichier.csv')
)
REJECT LIMIT UNLIMITED;READ ON DIRECTORY data_dir
-- création de data_dir dans l'environnement Oracle
CREATE DIRECTORY data_dir AS '/chemin/vers/fichiers';CREATE ANY DIRECTORY
-- transfert des données
INSERT INTO nomTableCible SELECT * FROM nomTableExterne;