Précédent   Forum des professionnels en informatique > Bases de données > Oracle
Oracle Forum Oracle : le serveur, les outils, ... Voir F.A.Q Oracle Tutoriels Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/01/2007, 14h07   #1
Invité de passage
 
Inscription : octobre 2004
Messages : 15
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 15
Points : 2
Points : 2
Par défaut export table oracle

Bonjour,

Je souhaite exporter des table oracle en format .txt pour alimenter une base mysql

Je ne connais que l'utilitaire EXP

Merci de me répondre
velo83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2007, 15h52   #2
Membre éclairé
 
Inscription : septembre 2003
Messages : 432
Détails du profil
Informations forums :
Inscription : septembre 2003
Messages : 432
Points : 326
Points : 326
Toutes les réponses à tes questions sont ici
sygale est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2007, 16h46   #3
Membre expérimenté

 
Inscription : décembre 2003
Messages : 480
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 480
Points : 539
Points : 539
pas vraiment ...

exp ne permet pas de décharger des données dans un fichier plat !!!

il n'y d'ailleurs pas d'utilitaire oracle qui fasse cela .

tu dois créer une petite procédure via le package UTL_FILE. ce pakage permet d'écrire dans un fichier plat à partir de PL/SQL --> vi un curseur tu lis les records de ta table et via UTL_FILE.PUT_LINE, tu écris rows dans un fichier .

fais une recherche sur ce package, tu trouveras certainement un exemple ; sinon, on en créera un ensemble (mais pour l'instant, je n'en ai malheureusement pas le temps)

bonne chance

marc
__________________

*** OPN Exadata Specialist ***
*** OCE Performance Tuning 11g ***
*** OCE Rac 10g ***
*** OCP DBA 9i-10g-11g ***
Marc Musette est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2007, 16h54   #4
Expert Confirmé
 
Inscription : février 2006
Messages : 3 433
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 3 433
Points : 3 462
Points : 3 462
Voir aussi http://www.developpez.net/forums/sho...ht=excel+spool
__________________
P. Forstmann

AskTom Forums OTN doc 8, 9, 10 et 11
pifor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2007, 17h10   #5
Invité de passage
 
Inscription : octobre 2004
Messages : 15
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 15
Points : 2
Points : 2
Par défaut Merci

Merci pour vos infos.
J'ai extrait les tables via Sqlplus
Je vous remercie, je vais étudier la méthode plus pro énoncée par Marc Musette.

Encore merci
velo83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2007, 18h47   #6
Membre éclairé
 
Inscription : septembre 2003
Messages : 432
Détails du profil
Informations forums :
Inscription : septembre 2003
Messages : 432
Points : 326
Points : 326
Citation:
Envoyé par Marc Musette
pas vraiment ...
Tu as parfaitement raison j'ai fait une lecture trop rapide et je me suis trompé sorry

Pour un export avec utl_file, voici un petit bout de code en exemple :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
spool exp_utl
 
prompt 'export blabla'
 
SET serveroutput ON
 
DECLARE 
   -- Declaration des variables
   err_num           number;
   err_msg           varchar2(200);
 
	wobs              varchar2(200);           -- Observation
   wout              utl_file.file_type;      -- type de fichier genere
   wrep_fic          varchar2(255)   := NULL; -- repertoire d'ecriture
   wnom_fic          varchar2(255)   := NULL; -- fichier d'ecriture
   wligne            varchar2(250);           -- ligne à insérer dans le fichier
 
   cursor c_lst IS 
      SELECT champs1, chamsp2 FROM matable;
 
 BEGIN
 
   --Definition des parametres du fichier   
   wobs := 'Rech rep';
   wrep_fic := '/doss1/doss2';
   wnom_fic := 'Lst_exp_utl.csv';
 
   wobs := 'Ouverture du fichier.doc';
   wout := utl_file.fopen(wrep_fic, wnom_fic, 'w');
 
   wobs := 'Ligne d''entête';
   wligne := 'champs 1'||';'||'champs 2';
   utl_file.put_line(wout,wligne);   
 
   wobs := 'Ecriture des lignes dans fichier';
   FOR r_lt IN c_lst loop
 
 
      wobs := 'Build ligne';
      wligne := r_lt.champs1||';'||champs2;
 
      wobs := 'Ecriture de la ligne dans fichier';
      utl_file.put_line(wout,wligne);
 
   end loop;
 
   wobs := 'Fermeture du fichier';
 
   utl_file.fclose(wout);
   dbms_output.put_line('nb acteur csv = '||to_char(wcnt_act));
 
 
 
EXCEPTION
 
   when utl_file.invalid_operation then
      dbms_output.put_line('obs : ' ||wobs);
      utl_file.fclose(wout);
 
      err_num := SQLCODE;
      err_msg := SUBSTR(SQLERRM, 1, 60);
 
      -- si le fichier est ouvert, on le ferme
 
      IF utl_file.is_open(wout) = TRUE then
            utl_file.fclose(wout) ;
      end IF ;
 
      raise_application_error(-20001,'ERREUR:'|| err_msg);
 
   when utl_file.invalid_filehandle then
      dbms_output.put_line('obs : ' ||wobs);
      utl_file.fclose(wout);
 
      err_num := SQLCODE;
      err_msg := SUBSTR(SQLERRM, 1, 60);
 
      -- si le fichier est ouvert, on le ferme
 
      IF utl_file.is_open(wout) = TRUE then
            utl_file.fclose(wout) ;
      end IF ;
 
      raise_application_error(-20001,'ERREUR:'|| err_msg);
 
   when utl_file.write_error then
      dbms_output.put_line('obs : ' ||wobs);
      utl_file.fclose(wout);
 
      err_num := SQLCODE;
      err_msg := SUBSTR(SQLERRM, 1, 60);
 
      -- si le fichier est ouvert, on le ferme
 
      IF utl_file.is_open(wout) = TRUE then
            utl_file.fclose(wout) ;
      end IF ;
 
      raise_application_error(-20001,'ERREUR:'|| err_msg);
 
   when others then
      dbms_output.put_line('obs : ' ||wobs);
      err_num := SQLCODE;
      err_msg := SUBSTR(SQLERRM, 1, 60);
 
      -- si le fichier est ouvert, on le ferme
 
      IF utl_file.is_open(wout) = TRUE then
            utl_file.fclose(wout) ;
      end IF ;
 
      raise_application_error(-20001,'ERREUR:'|| err_msg);
 
END;
/
SHOW err
 
spool off
sygale est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h23.


 
 
 
 
Partenaires

Hébergement Web