Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como exportar dados para o arquivo CSV no Oracle usando o procedimento PL SQL

Abaixo está o exemplo passo a passo para exportar dados para o arquivo CSV no Oracle usando o procedimento PL SQL. Neste exemplo, os dados estão sendo exportados de alguns campos da tabela Emp do esquema Scott para um arquivo CSV usando o pacote UTL_FILE Oracle. Siga as etapas abaixo para exportar dados da tabela do banco de dados Oracle para um arquivo CSV.

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ório
CREATE 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