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