Comment charger un CSV dans Oracle avec SQL Loader. ?
Les Données délimitées sont séparés par des chaînes de caractères appelée délimiteurs.
Certains champs, notamment les champs de texte, peuvent être ENCLOSED par des " ".
Des champs peuvent contenir des espaces en début et à la fin.
On peut mettre les données à charger directement dans le Fichier de contrôle après la Clause BEGINDATA.
CREATE TABLE SCOTT.EMP ( EMPNO NUMBER(4) NULL, ENAME VARCHAR2(10 BYTE) NULL, JOB VARCHAR2(9 BYTE) NULL, MGR NUMBER(4) NULL, HIREDATE DATE NULL, SAL NUMBER(7,2) NULL, COMM NUMBER(7,2) NULL, DEPTNO NUMBER(2) NULL ) TABLESPACE USERS; |
OPTIONS (DIRECT=TRUE)
LOAD DATA
INFILE *
BADFILE 'dba-ora.bad'
DISCARDFILE 'dba-ora.dsc'
TRUNCATE INTO TABLE SCOTT."EMP"
WHEN (deptno = '30')
FIELDS terminated by ";" Optionally enclosed by '"'
(
empno INTEGER EXTERNAL,
ename CHAR "UPPER(:ename)",
job CHAR "RTRIM(:job)",
mgr INTEGER EXTERNAL NULLIF (mgr="NULL"),
hiredate DATE "MM/DD/YYYY HH24:MI:SS",
sal DECIMAL EXTERNAL,
comm DECIMAL EXTERNAL NULLIF (comm="NULL"),
deptno INTEGER EXTERNAL OPTIONALLY ENCLOSED BY "'"
)
BEGINDATA
7369;smith;CLERK ;7902;;800,50;;30
7499;"Allen";"SALESMAN ";NULL;"02/20/1981 00:00:00";1600;300;'30'
7521;"WARD";"SALESMAN";7698;"02/22/1981 00:00:00";1250;500,56;30
7566;"JONES";"MANAGER ";7839;"04/02/1981 00:00:00";2975;NULL;'30'
7654;"MARTIN";"SALESMAN";7698;"09/28/1981 00:00:00";1250;1400;30
|
ici le fichier de contrôle dba-ora.ctl est dans le dossier C:\SQLLOADER
C:\SQLLOADER>SQLLDR scott/tiger CONTROL=dba-ora.ctl SQL*Loader: Release 10.2.0.1.0 - Production on Dim. Août 14 03:46:10 2011 Copyright (c) 1982, 2005, Oracle. All rights reserved. Chargement terminé - calcul enregistrement(s) logique(s) 5. C:\SQLLOADER> |
C:\SQLLOADER>SQLPLUS scott/tiger SQL*Plus: Release 10.2.0.1.0 - Production on Dim. Août 14 03:56:32 2011 Copyright (c) 1982, 2005, Oracle. All rights reserved. Connecté à : Oracle Database 10g Release 10.2.0.1.0 - Production SQL> SET LINESIZE 140 SQL> SELECT * FROM emp; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ---------- ---------- --------- ---------- ---------- ---------- ---------- ---------- 7369 SMITH CLERK 7902 800,5 30 7499 ALLEN SALESMAN 20/02/1981 1600 300 30 7521 WARD SALESMAN 7698 22/02/1981 1250 500,56 30 7566 JONES MANAGER 7839 02/04/1981 2975 30 7654 MARTIN SALESMAN 7698 28/09/1981 1250 1400 30 SQL> |
C:\SQLLOADER>TYPE dba-ora.log SQL*Loader: Release 10.2.0.1.0 - Production on Dim. Ao¹t 14 03:46:10 2011 Copyright (c) 1982, 2005, Oracle. All rights reserved. Fichier de contrôle : dba-ora.ctl Fichier de données : dba-ora.ctl Fichier BAD : dba-ora.bad Fichier DISCARD : dba-ora.dsc (Allouer tous les rebuts) Nombre à charger : ALL Nombre à sauter: 0 Erreurs permises: 50 Continuation : aucune spécification Chemin utilisé: Direct Table SCOTT."EMP", chargé quand DEPTNO = 0X3330(caractère '30') Option d'insertion en vigueur pour cette table : TRUNCATE ............ ........ .... Table SCOTT."EMP" : Chargement réussi de 5 Lignes. Nombre total d'enregistrements logiques lus : 5 Nombre total d'enregistrements logiques rejetés : 0 Nombre total d'enregistrements logiques mis au rebut : 0 C:\SQLLOADER> |
| Liens en rapport avec l'article et qui sont susceptibles de vous intéresser |
|
•
Description SQL Loader • Oracle SQL LOADER / SQLLDR Load Data |