1. Crie um objeto de diretório no qual você escreverá o arquivo CSV.
-- para sistemas Windows, crie da seguinte forma, altere a pasta destacada com seu diretórioCREATE OR REPLACE DIRECTORY CSVDIR AS 'd:\temp' /-- para sistemas Unix/Linux, crie da seguinte forma
CREATE OR REPLACE DIRECTORY CSVDIR AS '/temp/' /Observação:altere o local da pasta para o local do diretório, por exemplo, c:\abc ou /abc/.
2. Crie um procedimento de banco de dados no esquema Scott ou, se estiver criando em outro esquema, certifique-se de ter a tabela Emp nesse esquema, caso contrário, será necessário alterar o cursor e as referências de campo para qualquer outra tabela.
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. Agora execute o procedimento da seguinte forma:
BEGIN export_to_csv; END;Agora você pode verificar seu diretório especificado no comando Criar diretório que o arquivo empdata.csv deve existir com os dados da tabela. Criei um utilitário que gera o procedimento online, experimente:
- Gerar procedimento PL/SQL online para exportar dados de uma tabela

-
Tutoriais de banco de dados do SQL Server ( MSSQL DBA ) para administradores de banco de dados iniciantes
-
Gerenciando alta disponibilidade no PostgreSQL – Parte II:Gerenciador de replicação
-
Melhores abordagens para totais de corrida agrupados
-
Use mycli e aprenda MariaDB/MySQL confortavelmente em um terminal!