es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo crear un trabajo de exportación de tablas en Oracle 12c.

Quiero crear un trabajo de exportación de tabla, pero no entiendo por qué no está funcionando.

Mi tabla se llama Department.

create table department (id number, name varchar2(200));

Quiero exportar un archivo csv diariamente a las 9:00 pm. Necesito crearlo.

Solo sé:
0. crear un directorio
1. crear un PROCEDURE
2. crear un DBMS_SCHEDULER.CREATE_PROGRAM
3. crear un DBMS_SCHEDULER.CREATE_SCHEDULE
4. crear un DBMS_SCHEDULER.CREATE_JOB
5. ejecutar el trabajo

Gracias.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para crear un trabajo de exportación de tabla para la tabla Department, siga los siguientes pasos:

    1. Crear un directorio: Necesita crear un objeto de directorio en su base de datos para especificar la ruta de archivo para el archivo CSV generado. Puede utilizar el siguiente comando para crear un objeto de directorio en Oracle:
      CREATE DIRECTORY my_dir AS '/home/oracle/csv_files';
      

      Este comando crea un directorio llamado my_dir en el directorio /home/oracle/csv_files del servidor de la base de datos.

    2. Crear un PROCEDURE: Necesita crear un procedimiento PL/SQL que utilizará el procedimiento EXPORT_TABLE del paquete DBMS_DATAPUMP para generar el archivo CSV. El procedimiento debe incluir el siguiente código:

      CREATE OR REPLACE PROCEDURE export_department_csv
      AS
      BEGIN
       DBMS_DATAPUMP.EXPORT_TABLE(
         handle   => NULL,
         schema   => 'nombre_de_tu_esquema',
         table    => 'department',
         directory=> 'my_dir',
         filetype => DBMS_DATAPUMP.KU$_FILE_TYPE_CSV,
         parallel => 1,
         version  => 'COMPATIBLE',
         job_name => 'export_department_csv_job'
       );
      END;
      

      Este procedimiento exporta la tabla department a un archivo CSV en el directorio my_dir.

    3. Crear un DBMS_SCHEDULER.CREATE_PROGRAM: Necesita crear un objeto de programa en el planificador de la base de datos para definir el procedimiento PL/SQL como un programa. Utilice el siguiente comando para crear un objeto de programa:

      DBMS_SCHEDULER.CREATE_PROGRAM(
       program_name => 'export_department_csv_program',
       program_type => 'STORED_PROCEDURE',
       program_action => 'export_department_csv',
       number_of_arguments => 0,
       enabled => TRUE
      );
      

      Este comando crea un objeto de programa llamado export_department_csv_program que utiliza el procedimiento export_department_csv y lo habilita.

    4. Crear un DBMS_SCHEDULER.CREATE_SCHEDULE: Necesita crear un objeto de programación en el planificador de la base de datos para definir cuándo debe ejecutarse el trabajo. Utilice el siguiente comando para crear un objeto de programación:

      DBMS_SCHEDULER.CREATE_SCHEDULE(
       schedule_name => 'export_department_csv_schedule',
       start_date => SYSTIMESTAMP,
       repeat_interval => 'FREQ=DAILY;BYHOUR=21;'
      );
      

      Este comando crea un objeto de programación llamado export_department_csv_schedule que especifica un intervalo de repetición diario a las 9:00 PM.

    5. Crear un DBMS_SCHEDULER.CREATE_JOB: Necesita crear un objeto de trabajo en el planificador de la base de datos que utilice los objetos de programa y programación. Utilice el siguiente comando para crear un objeto de trabajo:

      DBMS_SCHEDULER.CREATE_JOB(
       job_name => 'export_department_csv_job',
       program_name => 'export_department_csv_program',
       schedule_name => 'export_department_csv_schedule',
       enabled => TRUE
      );
      

      Este comando crea un objeto de trabajo llamado export_department_csv_job que utiliza el programa export_department_csv_program y la programación export_department_csv_schedule.

    6. Ejecutar el trabajo: Una vez que haya creado el trabajo, se ejecutará automáticamente en el momento programado. También puede iniciar el trabajo manualmente utilizando el siguiente comando:

      DBMS_SCHEDULER.RUN_JOB('export_department_csv_job');
      

      Este comando inicia inmediatamente el trabajo export_department_csv_job.

    Si sigue los pasos anteriores, su trabajo de exportación de tabla debería crearse correctamente.

Comments are closed.