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

Administration Oracle Discussion :

Exporter Des Donnees De Tables Oracle Vers Excel ?


Sujet :

Administration Oracle

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 132
    Points : 69
    Points
    69
    Par défaut Exporter Des Donnees De Tables Oracle Vers Excel ?
    Bonjour,

    Je travaille sur une base ORACLE 10g.
    Je souhaite exporter des données venant des tables de cette base vers un fichier Excel.
    Pourriez-vous SVP m'indiquer comment faire ?

    Je vous remercie par avance

  2. #2
    Membre éprouvé Avatar de Yorglaa
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    845
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2004
    Messages : 845
    Points : 931
    Points
    931
    Par défaut
    Salut,
    commence par faire une recherche sur ce même forum...

    cette question a déjà été abordée maintes fois !
    Il est plus facile de voir les signes avant-coureurs après coup que l'inverse !

    Yorglaa

  3. #3
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut Csv
    un petit bout de code en PL/SQL que je me suis amusé à écrire pour produire un fichier au format CSV

    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
     
    create or replace procedure CSV(query varchar2) is
      curid NUMBER; 
      desctab DBMS_SQL.DESC_TAB; 
      colcnt NUMBER; 
      namevar VARCHAR2(4000); 
    begin
      curid := dbms_sql.open_cursor;
      dbms_sql.parse(curid, query, dbms_sql.NATIVE);
      DBMS_SQL.DESCRIBE_COLUMNS(curid, colcnt, desctab);
      FOR i IN 1 .. colcnt LOOP
        DBMS_SQL.DEFINE_COLUMN(curid, i, namevar,4000);
      END LOOP;
      if DBMS_SQL.execute(curid) = 0 THEN
        FOR i IN 1 .. colcnt LOOP
          if (i>1) then
            dbms_output.put(';');
          end if;
          dbms_output.put(desctab(i).col_name);
        END LOOP;
        dbms_output.new_line;
        WHILE DBMS_SQL.FETCH_ROWS(curid) > 0 LOOP
          FOR i IN 1 .. colcnt LOOP
            if (i>1) then
              dbms_output.put(';');
            end if;
            DBMS_SQL.COLUMN_VALUE(curid, i, namevar);
            if (namevar is not null) 
            then
              dbms_output.put(namevar);
            end if;
          END LOOP;
          dbms_output.new_line;
        END LOOP;
      END IF;
    end;
    /
     
    execute csv('select * from emp');
     
    EMPNO;ENAME;JOB;MGR;HIREDATE;SAL;COMM;DEPTNO
    7369;SMITH;CLERK;7902;17-DEC-80;800;;20
    7499;ALLEN;SALESMAN;7698;20-FEB-81;1600;300;30
    7521;WARD;SALESMAN;7698;22-FEB-81;1250;500;30
    7566;JONES;MANAGER;7839;02-APR-81;2975;;20
    7654;MARTIN;SALESMAN;7698;28-SEP-81;1250;1400;30
    7698;BLAKE;MANAGER;7839;01-MAY-81;2850;;30
    7782;CLARK;MANAGER;7839;09-JUN-81;2450;;10
    7788;SCOTT;ANALYST;7566;19-APR-87;3000;;20
    7839;KING;PRESIDENT;;17-NOV-81;5000;;10
    7844;TURNER;SALESMAN;7698;08-SEP-81;1500;0;30
    7876;ADAMS;CLERK;7788;23-MAY-87;1100;;20
    7900;JAMES;CLERK;7698;03-DEC-81;950;;30
    7902;FORD;ANALYST;7566;03-DEC-81;3000;;20
    7934;MILLER;CLERK;7782;23-JAN-82;1300;;10

  4. #4
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    si tu as une version récente d'Excel, tu peux importer du XML. C'est plus stable.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    set echo off lin 9999 pages 0 long 999999 longc 999999 feedb 9999 head off trims on
    spool EMP.xml
    prompt <?xml version="1.0"?>
    prompt <root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    select * from table(xmlsequence(cursor(select * from emp)));
    prompt </root>
    spool off
    C'est tout simple, non?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 132
    Points : 69
    Points
    69
    Par défaut Exporter des données d'ORACLE vers EXCEL
    Bonjour,

    Merci à tous pour vos réponses. Je vais tester toutes vos solutions.

    Bonne journée

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 3
    Points : 3
    Points
    3
    Par défaut ou se trouve le fichier csv créé
    Citation Envoyé par laurentschneider
    un petit bout de code en PL/SQL que je me suis amusé à écrire pour produire un fichier au format CSV

    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
     
    create or replace procedure CSV(query varchar2) is
      curid NUMBER; 
      desctab DBMS_SQL.DESC_TAB; 
      colcnt NUMBER; 
      namevar VARCHAR2(4000); 
    begin
      curid := dbms_sql.open_cursor;
      dbms_sql.parse(curid, query, dbms_sql.NATIVE);
      DBMS_SQL.DESCRIBE_COLUMNS(curid, colcnt, desctab);
      FOR i IN 1 .. colcnt LOOP
        DBMS_SQL.DEFINE_COLUMN(curid, i, namevar,4000);
      END LOOP;
      if DBMS_SQL.execute(curid) = 0 THEN
        FOR i IN 1 .. colcnt LOOP
          if (i>1) then
            dbms_output.put(';');
          end if;
          dbms_output.put(desctab(i).col_name);
        END LOOP;
        dbms_output.new_line;
        WHILE DBMS_SQL.FETCH_ROWS(curid) > 0 LOOP
          FOR i IN 1 .. colcnt LOOP
            if (i>1) then
              dbms_output.put(';');
            end if;
            DBMS_SQL.COLUMN_VALUE(curid, i, namevar);
            if (namevar is not null) 
            then
              dbms_output.put(namevar);
            end if;
          END LOOP;
          dbms_output.new_line;
        END LOOP;
      END IF;
    end;
    /
     
    execute csv('select * from emp');
     
    EMPNO;ENAME;JOB;MGR;HIREDATE;SAL;COMM;DEPTNO
    7369;SMITH;CLERK;7902;17-DEC-80;800;;20
    7499;ALLEN;SALESMAN;7698;20-FEB-81;1600;300;30
    7521;WARD;SALESMAN;7698;22-FEB-81;1250;500;30
    7566;JONES;MANAGER;7839;02-APR-81;2975;;20
    7654;MARTIN;SALESMAN;7698;28-SEP-81;1250;1400;30
    7698;BLAKE;MANAGER;7839;01-MAY-81;2850;;30
    7782;CLARK;MANAGER;7839;09-JUN-81;2450;;10
    7788;SCOTT;ANALYST;7566;19-APR-87;3000;;20
    7839;KING;PRESIDENT;;17-NOV-81;5000;;10
    7844;TURNER;SALESMAN;7698;08-SEP-81;1500;0;30
    7876;ADAMS;CLERK;7788;23-MAY-87;1100;;20
    7900;JAMES;CLERK;7698;03-DEC-81;950;;30
    7902;FORD;ANALYST;7566;03-DEC-81;3000;;20
    7934;MILLER;CLERK;7782;23-JAN-82;1300;;10
    Bonjour,

    Après avoir créée la procedure csv , et après avoir executé la procedure avec une requête comme argument, j'ai ça comme message: "Procédure PL/SQL terminée avec succès." Où est mon fichier? Comment faire pour y accéder? Je suis débutant et je ne trouve pas dans le code que vous avez écrit la destination ou le nom du fichier de sortie.

    ps:J'utilise une base de données oracle. Ma procédure a bien été stockée dans la base.

    Merci d'avance.

  7. #7
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    set serverout on size unlimited

  8. #8
    Membre régulier
    Inscrit en
    Mai 2004
    Messages
    189
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 189
    Points : 103
    Points
    103
    Par défaut fichier de sortie
    Bonjour
    ou est le fichier de sortie quel emplacement ?
    J'aimerez chosir mon nom de fichier et mon emplacement

    merci

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 207
    Points : 237
    Points
    237
    Par défaut
    Bonjour,

    Si il s'agit d'un export ponctuel, vous pouvez également utiliser (SQL DEVELOPER) produit oracle gratuit disponible sur le site d'oracle , qui permet de faire des exports.
    Laurent

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 175
    Points : 180
    Points
    180
    Par défaut
    depuis excel, il y a également la possibilité d'importer des données externes via un connecteur ODBC

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par couak Voir le message
    depuis excel, il y a également la possibilité d'importer des données externes via un connecteur ODBC
    Y a t-il un moyen d'importer les données dans le sens inverse, via une procédure pl/sql ???
    Merci

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/05/2011, 20h15
  2. [AC-2007] Exporter des données d'une requete vers Excel
    Par theBinette dans le forum VBA Access
    Réponses: 3
    Dernier message: 20/10/2010, 17h00
  3. Exportation en masse de tables sql vers Excel
    Par Vladek dans le forum Développement
    Réponses: 5
    Dernier message: 12/08/2010, 10h19
  4. Réponses: 7
    Dernier message: 05/05/2010, 18h48
  5. Réponses: 21
    Dernier message: 03/03/2010, 19h09

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