Chapitre 5 - Déplacement Des Données
Chapitre 5 - Déplacement Des Données
Chapitre 5 - Déplacement Des Données
Ines BAKLOUTI
[email protected]
Plan
2 SQL*Loader
Log File
Bad File
Discard File
Control File
2/27
Introduction
Oracle Data Pump
SQL*Loader
Introduction
Il existe plusieurs méthodes pour charger des données dans les tables
d’une base de données Oracle :
SQL*Loader
Utilitaire d’export / import ORACLE DATA PUMP
3/27
Introduction
EXPDP / IMPDP
Oracle Data Pump
Package DBMS DATAPUMP
SQL*Loader
Plan
2 SQL*Loader
Log File
Bad File
Discard File
Control File
4/27
Introduction
EXPDP / IMPDP
Oracle Data Pump
Package DBMS DATAPUMP
SQL*Loader
5/27
Introduction
EXPDP / IMPDP
Oracle Data Pump
Package DBMS DATAPUMP
SQL*Loader
Notez Bien
Avant de pouvoir utiliser Data Pump, vous devez créer un Directory
Oracle où vous allez stocker vos exports.
6/27
Introduction
EXPDP / IMPDP
Oracle Data Pump
Package DBMS DATAPUMP
SQL*Loader
7/27
Introduction
EXPDP / IMPDP
Oracle Data Pump
Package DBMS DATAPUMP
SQL*Loader
8/27
Introduction
EXPDP / IMPDP
Oracle Data Pump
Package DBMS DATAPUMP
SQL*Loader
Privilèges nécessaires
9/27
Introduction
EXPDP / IMPDP
Oracle Data Pump
Package DBMS DATAPUMP
SQL*Loader
10/27
Introduction
EXPDP / IMPDP
Oracle Data Pump
Package DBMS DATAPUMP
SQL*Loader
11/27
Introduction
EXPDP / IMPDP
Oracle Data Pump
Package DBMS DATAPUMP
SQL*Loader
EXPDP / IMPDP
Exemple
2 Création d’un répertoire pour stocker les fichiers d’export et les fichiers log : DIRECTORY oracle
SQL> connect sys/sys as sysdba
SQL> create or replace directory DATAPUMP as ’C :\oraclexe’ ;
SQL> grant read, write on directory DATAPUMP to exp imp ;
12/27
Introduction
EXPDP / IMPDP
Oracle Data Pump
Package DBMS DATAPUMP
SQL*Loader
13/27
Introduction
EXPDP / IMPDP
Oracle Data Pump
Package DBMS DATAPUMP
SQL*Loader
14/27
Introduction
EXPDP / IMPDP
Oracle Data Pump
Package DBMS DATAPUMP
SQL*Loader
1. Programmer l’export :
SET SERVEROUTPUT ON SIZE 1000000
DECLARE
p dph NUMBER ;
BEGIN
p dph := DBMS DATAPUMP.open(operation=>’EXPORT’, job mode=>’TABLE’,
job name=>’DVP EXPORT’) ;
DBMS DATAPUMP.add file(handle=>p dph, filename=>’dvp.dmp’, directory=> ’DATAPUMP’,
filetype=>1) ;
DBMS DATAPUMP.add file(handle=>p dph, filename=>’tab dvp.log’, directory=>
’DATAPUMP’, filetype=>3) ;
DBMS DATAPUMP.metadata filter(handle =>p dph, name=>’SCHEMA EXPR’, value =>’IN
(”DVP”)’) ;
DBMS DATAPUMP.start job(p dph) ;
DBMS DATAPUMP.detach(p dph) ;
dbms output.put line(’Export terminé ’) ;
EXCEPTION
WHEN OTHERS THEN
dbms output.put line(’erreur :’||sqlerrm||’ Job-ID :’||p dph) ;
END ;
/
Export terminé
Procédure PL/SQL terminée avec succès
15/27
Introduction
EXPDP / IMPDP
Oracle Data Pump
Package DBMS DATAPUMP
SQL*Loader
2. Programmer l’import :
SET SERVEROUTPUT ON SIZE 1000000
DECLARE p dph NUMBER ;
BEGIN
p dph :=DBMS DATAPUMP.open(operation=>’IMPORT’, job mode=>’TABLE’,
job name=>’EMP IMPORT2’) ;
DBMS DATAPUMP.add file(handle=>p dph, filename=>’dvp.dmp’, directory =>’DATAPUMP’,
filetype=>1) ;
DBMS DATAPUMP.add file(handle=>p dph, filename=>’dvp imp.log’, directory =>
’DATAPUMP’, filetype=>3) ;
DBMS DATAPUMP.set parameter(handle=> p dph, name=>’TABLE EXISTS ACTION’,
value=>’REPLACE’) ;
DBMS DATAPUMP.start job(p dph) ;
DBMS DATAPUMP.detach(p dph) ;
dbms output.put line(’Import terminé ’) ;
EXCEPTION WHEN OTHERS THEN
dbms output.put line(’erreur :’||sqlerrm||’ Job-ID :’||p dph) ;
END ;
/
Import terminé
Procédure PL/SQL terminée avec succès.
16/27
Log File
Introduction
Bad File
Oracle Data Pump
Discard File
SQL*Loader
Control File
Plan
2 SQL*Loader
Log File
Bad File
Discard File
Control File
17/27
Log File
Introduction
Bad File
Oracle Data Pump
Discard File
SQL*Loader
Control File
SQL*Loader
L’utilitaire SQL*Loader charge les données de fichiers externes dans des tables d’une base de
données Oracle
Cet utilitaire dispose d’un puissant moteur d’analyse (parse) des données, qui ne limite que
très peu le format des données du fichier
18/27
Log File
Introduction
Bad File
Oracle Data Pump
Discard File
SQL*Loader
Control File
Log File
19/27
Log File
Introduction
Bad File
Oracle Data Pump
Discard File
SQL*Loader
Control File
Bad File
20/27
Log File
Introduction
Bad File
Oracle Data Pump
Discard File
SQL*Loader
Control File
Discard File
21/27
Log File
Introduction
Bad File
Oracle Data Pump
Discard File
SQL*Loader
Control File
Control File
22/27
Log File
Introduction
Bad File
Oracle Data Pump
Discard File
SQL*Loader
Control File
Control File
Exemple 1
Control File
Exemple 2 : charger des données à taille fixe
Exemple 1 : Exemple 2 :
Soit le fichier dept.txt Control file
contenant : load data
COSC COMPUTER SCIENCE infile * – les datas ne
ENGL ENGLISH LITERATURE proviennent pas d’un file
MATH MATHEMATICS append into table departments
POLY POLITICAL SCIENCE – insérer en fin de table
Control File ( dept position (01 :04) char(4),
load data deptname position (05 :25)
infile ’c :\dept.txt‘ char(20) )
append into table departments begindata
– insérer en fin de table COSC COMPUTER SCIENCE
( dept position (01 :04) char(4), ENGL ENGLISH LITERATURE
deptname position (05 :25) MATH MATHEMATICS
char(20) ) POLY POLITICAL SCIENCE
24/27
Log File
Introduction
Bad File
Oracle Data Pump
Discard File
SQL*Loader
Control File
Control File
Exemple 3 : convertir les données au moment du chargement
25/27
Log File
Introduction
Bad File
Oracle Data Pump
Discard File
SQL*Loader
Control File
Control File
Exemple 4 : chargement sélectif des données
26/27
Log File
Introduction
Bad File
Oracle Data Pump
Discard File
SQL*Loader
Control File
Control File
Exemple 5 : chargement dans plusieurs tables
LOAD DATA
INFILE ’C :\emp.dat’
27/27