Vous trouverez ci-dessous un exemple étape par étape pour exporter des données dans un fichier CSV dans Oracle à l'aide de la procédure PL SQL. Dans cet exemple, les données sont exportées à partir de certains champs de la table Emp du schéma Scott dans un fichier CSV à l'aide du package Oracle UTL_FILE.Suivez les étapes ci-dessous pour exporter les données de la table de la base de données Oracle vers un fichier CSV. 1. Créez un objet de répertoire dans lequel vous écrirez un fichier CSV.
-- pour les systèmes Windows, créez comme suit, modifiez le dossier en surbrillance avec votre répertoire CREATE OR REPLACE DIRECTORY CSVDIR AS 'd:\temp'
/
-- pour les systèmes Unix/Linux, créez comme suitCREATE OR REPLACE DIRECTORY CSVDIR AS '/temp/'
/
Remarque :remplacez l'emplacement du dossier par l'emplacement de votre répertoire, par exemple, c:\abc ou /abc/. 2. Créez une procédure de base de données dans le schéma Scott ou si vous créez dans un autre schéma, assurez-vous d'avoir la table Emp dans ce schéma, sinon vous devez modifier le curseur et les références de champ pour toute autre table.
CREATE OR REPLACE PROCEDURE export_to_csv
IS
v_file UTL_FILE.file_type;
v_string VARCHAR2 (4000);
CURSOR c_emp
IS
SELECT empno,
ename,
deptno,
sal,
comm
FROM emp;
BEGIN
v_file :=
UTL_FILE.fopen ('CSVDIR',
'empdata.csv',
'w',
1000);
-- if you do not want heading then remove below two lines
v_string := 'Emp Code, Emp Name, Dept, Salary, Commission';
UTL_FILE.put_line (v_file, v_string);
FOR cur IN c_emp
LOOP
v_string :=
cur.empno
|| ','
|| cur.ename
|| ','
|| cur.deptno
|| ','
|| cur.sal
|| ','
|| cur.comm;
UTL_FILE.put_line (v_file, v_string);
END LOOP;
UTL_FILE.fclose (v_file);
EXCEPTION
WHEN OTHERS
THEN
IF UTL_FILE.is_open (v_file)
THEN
UTL_FILE.fclose (v_file);
END IF;
END;
3. Exécutez maintenant la procédure comme suit :
BEGIN
export_to_csv;
END;
Vous pouvez maintenant vérifier votre répertoire que vous avez spécifié dans la commande Créer un répertoire que le fichier empdata.csv doit exister avec les données de la table. J'ai créé un utilitaire qui génère la procédure en ligne essayez-le : - Générer une procédure PL/SQL en ligne pour exporter des données depuis une table