sql >> Base de Datos >  >> RDS >> Oracle

Cómo exportar datos a un archivo CSV en Oracle utilizando el procedimiento PL SQL

A continuación se muestra el ejemplo paso a paso para exportar datos a un archivo CSV en Oracle utilizando el procedimiento PL SQL. En este ejemplo, los datos se exportan desde algunos campos de la tabla Emp del esquema Scott a un archivo CSV utilizando el paquete de Oracle UTL_FILE. Siga los pasos a continuación para exportar datos de la tabla de Oracle Database a un archivo CSV.

1. Cree un objeto de directorio en el que escribirá un archivo CSV.

-- para sistemas Windows, cree lo siguiente, cambie la carpeta resaltada con su directorio
CREATE OR REPLACE DIRECTORY CSVDIR AS 'd:\temp'
/
-- para sistemas Unix/Linux, cree de la siguiente manera
CREATE OR REPLACE DIRECTORY CSVDIR AS '/temp/'
/
Nota:Cambie la ubicación de la carpeta a la ubicación de su directorio, por ejemplo, c:\abc o /abc/.

2. Cree un procedimiento de base de datos en el esquema de Scott o, si está creando en otro esquema, asegúrese de tener la tabla Emp en ese esquema; de lo contrario, deberá cambiar el cursor y las referencias de campo para cualquier otra tabla.

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. Ahora ejecute el procedimiento de la siguiente manera:

BEGIN
   export_to_csv;
END;
Ahora puede verificar su directorio que especificó en el comando Crear directorio que el archivo empdata.csv debe existir con los datos de la tabla. He creado una utilidad que genera el trámite online pruébalo:
  • Generar procedimiento PL/SQL en línea para exportar datos de una tabla