Im Folgenden finden Sie ein Schritt-für-Schritt-Beispiel zum Exportieren von Daten in eine CSV-Datei in Oracle mithilfe des PL SQL-Verfahrens. In diesem Beispiel werden Daten aus einigen Feldern der Emp-Tabelle des Scott-Schemas exportiert in eine CSV-Datei mit dem Oracle-Paket UTL_FILE. Führen Sie die folgenden Schritte aus, um Daten aus der Oracle-Datenbanktabelle in eine CSV-Datei zu exportieren. 1. Erstellen Sie ein Verzeichnisobjekt, in das Sie eine CSV-Datei schreiben.
-- für Windows-Systeme erstellen Sie wie folgt den Ordner, der mit Ihrem Verzeichnis markiert istCREATE OR REPLACE DIRECTORY CSVDIR AS 'd:\temp'
/
-- für Unix/Linux-Systeme wie folgt erstellenCREATE OR REPLACE DIRECTORY CSVDIR AS '/temp/'
/
Hinweis:Ändern Sie den Speicherort des Ordners in Ihren Verzeichnisspeicherort, z. B. c:\abc oder /abc/. 2. Erstellen Sie eine Datenbankprozedur im Scott-Schema oder wenn Sie in einem anderen Schema erstellen, stellen Sie sicher, dass Sie die Emp-Tabelle in diesem Schema haben, andernfalls müssen Sie den Cursor und die Feldreferenzen für jede andere Tabelle ändern.
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. Führen Sie nun die Prozedur wie folgt aus:
BEGIN
export_to_csv;
END;
Sie können jetzt überprüfen, ob Ihr Verzeichnis, das Sie im Befehl „Verzeichnis erstellen“ angegeben haben, die Datei empdata.csv enthält muss mit den Tabellendaten vorhanden sein. Ich habe ein Dienstprogramm erstellt, das die Prozedur online generiert, versuchen Sie es: - Generieren Sie eine PL/SQL-Prozedur online, um Daten aus einer Tabelle zu exportieren