1. Crea un oggetto Directory in cui scriverai un file CSV.
-- per i sistemi Windows crea come segue cambia la cartella evidenziata con la tua directoryCREATE OR REPLACE DIRECTORY CSVDIR AS 'd:\temp' /-- per i sistemi Unix/Linux creare come segue
CREATE OR REPLACE DIRECTORY CSVDIR AS '/temp/' /Nota:cambia la posizione della cartella nella posizione della tua directory, ad esempio c:\abc o /abc/.
2. Crea una procedura di database nello schema Scott o se stai creando in un altro schema, assicurati di avere la tabella Emp in quello schema, altrimenti devi cambiare il cursore e i riferimenti ai campi per qualsiasi altra tabella.
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. Ora esegui la procedura come segue:
BEGIN export_to_csv; END;Ora puoi controllare la tua directory che hai specificato nel comando Crea directory che il file empdata.csv deve esistere con i dati della tabella. Ho creato una utility che genera la procedura online provala:
- Genera procedura PL/SQL online per esportare dati da una tabella

-
Perché non riesco a forzare Oracle 11g a consumare più CPU per una singola query SQL
-
Risultati errati con Unisci join
-
ClusterControl CMON HA per l'elevata disponibilità di database distribuiti - Parte seconda (Configurazione dell'accesso alla GUI)
-
Suggerimenti per la tabella di Microsoft Access – Trucchi e linee guida Parte 5