Níže je uveden krok za krokem příklad exportu dat do souboru CSV v Oracle pomocí PL SQL procedury. V tomto příkladu se exportují data z některých polí Emp tabulky schématu Scott do souboru CSV pomocí balíčku Oracle UTL_FILE. Chcete-li exportovat data z tabulky databáze Oracle do souboru CSV, postupujte podle níže uvedených kroků. 1. Vytvořte adresářový objekt, do kterého zapíšete soubor CSV.
-- pro systémy Windows vytvořte následovně změňte složku zvýrazněnou vaším adresářemCREATE OR REPLACE DIRECTORY CSVDIR AS 'd:\temp'
/
-- pro systémy Unix/Linux vytvořte následovněCREATE OR REPLACE DIRECTORY CSVDIR AS '/temp/'
/
Poznámka:Změňte umístění složky na umístění vašeho adresáře, např. c:\abc nebo /abc/. 2. Vytvořte proceduru databáze ve schématu Scott nebo pokud vytváříte v jiném schématu, ujistěte se, že máte tabulku Emp v tomto schématu, jinak musíte změnit kurzor a odkazy na pole pro jakoukoli jinou tabulku.
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. Nyní spusťte postup následovně:
BEGIN
export_to_csv;
END;
Nyní můžete zkontrolovat svůj adresář, který jste zadali v příkazu Create Directory, že soubor empdata.csv musí existovat s daty tabulky. Vytvořil jsem nástroj, který generuje postup online, zkuste to: - Vygenerujte online proceduru PL/SQL pro export dat z tabulky