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
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
Salut,
commence par faire une recherche sur ce même forum...
cette question a déjà été abordée maintes fois !
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
si tu as une version récente d'Excel, tu peux importer du XML. C'est plus stable.
C'est tout simple, non?
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
Bonjour,
Merci à tous pour vos réponses. Je vais tester toutes vos solutions.
Bonne journée
Bonjour,Envoyé par laurentschneider
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.
set serverout on size unlimited
Bonjour
ou est le fichier de sortie quel emplacement ?
J'aimerez chosir mon nom de fichier et mon emplacement
merci
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
depuis excel, il y a également la possibilité d'importer des données externes via un connecteur ODBC
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager