extraction en fichier plat (csv) d'une base oracle sous unix
Bonjour,
Je ne sais pas si je me trouves dans la bonne section, mais je souhaiterais, grâce à un script PL/SQL exécuté via sqlplus, extraire toutes les données d'une table d'une base oracle10g ,situé sous unix, vers un fichier plat (csv) comportant le nom des colonnes aussi de la table.
Voici le code que j'utilise pour récupérer le nom des colonnes et les écrire dans mon fichier csv, dans le format que je souhaite
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
| SET VERIFY OFF
SET ECHO OFF
SET TERM OFF
SET FEED OFF
SET DEFINE $
DEFINE FIC_SORTIE='/apps/rep/rec/cft/recv/test.csv' --sera passé en paramètre
DEFINE WTABLE_NAME='TBL_AGENT' --sera passée en paramètre
SPOOL $FIC_SORTIE
SET TRIMS ON
SET SERVEROUTPUT ON SIZE 1000000
DECLARE
--curseur pour récupérer le nom des colonnes de la table passée en paramètre
CURSOR C_USER_TAB_COLUMNS IS
SELECT COLUMN_NAME
FROM USER_TAB_COLUMNS
WHERE TABLE_NAME = UPPER('$WTABLE_NAME')
ORDER BY COLUMN_ID;
VENRCOL USER_TAB_COLUMNS.COLUMN_NAME%TYPE;
VLIGNECOL VARCHAR2(32767);
VCPT NUMBER(5);
BEGIN
VCPT := 0;
OPEN C_USER_TAB_COLUMNS;
LOOP
FETCH C_USER_TAB_COLUMNS INTO VENRCOL;
EXIT WHEN C_USER_TAB_COLUMNS%NOTFOUND;
IF VCPT > 0 THEN
VLIGNECOL := VLIGNECOL || ',' ;
END IF;
VLIGNECOL := VLIGNECOL || VENRCOL;
VCPT := VCPT + 1 ;
END LOOP;
CLOSE C_USER_TAB_COLUMNS;
VLIGNECOL := VLIGNECOL || ';';
DBMS_OUTPUT.PUT_LINE(VLIGNECOL);
END;
/
SPOOL OFF
SET TRIMS OFF
EXIT |
J'ai maintenant un souci, pour pouvoir récupérer les données de cette table. Pouvez vous m'aider ?
D'avance merci beaucoup