Skip to Main Content

Oracle Database Discussions

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

How can I troubleshoot an Oracle DBMS_SCHEDULER.CREATE_JOB problem?

aceincApr 4 2019 — edited Apr 4 2019

I am trying to execute an external command procedure from Oracle. What I have so far is;

Oracle Procedure;

    CREATE OR REPLACE PROCEDURE DO_HOST_COMMAND

    (

      HOST_COMMAND IN VARCHAR2

    , ARGUMENT_LIST IN VARCHAR2

    , ARGUMENT_COUNT IN NUMBER

    , DELIMITER IN VARCHAR2

    ) AS

      JOB_ID VARCHAR2(100) := 'myjob_'||TO_CHAR(SYSTIMESTAMP,'YYYYMMDDHH24MISSFF6');

      CURRENT_ARGUMENT_COUNT NUMBER;

      CURRENT_ARGUMENT VARCHAR2(32767);

    BEGIN

     

      DBMS_SCHEDULER.CREATE_JOB (JOB_NAME    => JOB_ID,

                                  JOB_TYPE    => 'executable',

                                  JOB_ACTION  => 'c:\windows\system32\cmd.exe',

                                  NUMBER_OF_ARGUMENTS => ARGUMENT_COUNT + 1,

                                  AUTO_DROP   => TRUE);

      DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE (JOB_ID, 1, HOST_COMMAND);

      FOR CURRENT_ARGUMENT_COUNT IN 1..ARGUMENT_COUNT

      LOOP

        CURRENT_ARGUMENT := GET_DELIMITED_ELEMENT(ARGUMENT_LIST,DELIMITER,CURRENT_ARGUMENT_COUNT);

        DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE (JOB_ID, CURRENT_ARGUMENT_COUNT + 1, CURRENT_ARGUMENT);

      END LOOP;

      DBMS_SCHEDULER.RUN_JOB (JOB_ID);

   

    END DO_HOST_COMMAND;

Windows command procedure;

    c:

    cd \Temp

    echo in test.cmd > test.log

    copy %1  %2

SQL command to run this;

    exec do_host_command('c:\temp\test.cmd','test1.txt|test2.txt',2,'|');

The result is;

    PL/SQL procedure successfully completed.

However nothing occurs. When I run;

    select * from user_scheduler_job_run_details where trunc(log_date) = trunc(sysdate);

It says the job succeeded. I looked in the alert log and the traces files and can find nothing. I have changed the permissions of the c:\temp folder to everyone full access.

Not sure where to look to find the problem. What additional troubleshooting should I do?

This is running in Oracle 12c R2 on Windows 2016.

This post has been answered by aceinc on Apr 4 2019
Jump to Answer
Comments
Post Details
Added on Apr 4 2019
4 comments
381 views