IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Oracle Discussion :

export table oracle


Sujet :

Oracle

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 19
    Points : 10
    Points
    10
    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

  2. #2
    Membre averti

    Inscrit en
    Septembre 2003
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 425
    Points : 398
    Points
    398
    Par défaut
    Toutes les réponses à tes questions sont ici

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2003
    Messages
    493
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 493
    Points : 605
    Points
    605
    Par défaut
    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

  4. #4
    Membre expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Points : 3 597
    Points
    3 597

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 19
    Points : 10
    Points
    10
    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

  6. #6
    Membre averti

    Inscrit en
    Septembre 2003
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 425
    Points : 398
    Points
    398
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

Discussions similaires

  1. Exporter une table oracle hibernate dans une autre
    Par pikameuh dans le forum Hibernate
    Réponses: 5
    Dernier message: 17/07/2014, 16h11
  2. Réponses: 1
    Dernier message: 08/03/2011, 00h13
  3. [PRO*C] export de rec de table oracle
    Par miltone dans le forum Interfaces de programmation
    Réponses: 7
    Dernier message: 04/12/2009, 00h07
  4. Oracle 10G : export table + sequence
    Par davy.g dans le forum Import/Export
    Réponses: 3
    Dernier message: 09/09/2009, 15h40
  5. Exporter Des Donnees De Tables Oracle Vers Excel ?
    Par Djene dans le forum Administration
    Réponses: 10
    Dernier message: 13/06/2009, 19h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo