首页 > 解决方案 > 无法创建目录'/home//.ssh'。从 oracle 作业运行时

问题描述

我有一个简单的文件传输 bash 脚本。当此脚本直接从 solaris 数据库服务器运行时,它成功执行并将文件传输到远程服务器。但是,当同一脚本通过 Oracle 作业运行时,它会失败并显示以下错误消息。

Oracle 创建程序代码

  dbms_scheduler.create_program
                  (
                  program_name=>'USER.PROG_DEVCODE',
                  program_action=> '/u12/dw/sftp_to_remote.sh',
                  program_type=>'EXECUTABLE',
                  number_of_arguments=>1, 
                  comments => 'push files',
                  enabled=>FALSE
                  ) ;

  dbms_scheduler.enable 'DW_USER_REPORT.PROG_PUSH_FILE_TO_DEVCODE');

Oracle 创建工作计划

declare

  p_job_name varchar2(500) := 'USER.JOB_PROG_DEVCODE';
  p_command varchar2(500) := 'PROG_DEVCODE';
--  p_args := ''
  p_type varchar2(500) := 'PROGRAM';
  p_wait_result number := 1;

begin


  DBMS_SCHEDULER.CREATE_JOB (
        p_job_name --               IN VARCHAR2,
      , p_command --program_name            IN VARCHAR2,
      , start_date => NULL
      , repeat_interval =>
      , end_date => NULL
      , job_class => 'DEFAULT_JOB_CLASS'
      , enabled => FALSE
      , auto_drop => TRUE
      , comments => NULL
      , job_style => 'REGULAR'
    );

    DBMS_SCHEDULER.set_attribute(
      p_job_name
    , 'credential_name'
    , 'USER.ORACLE_OS_CREDENTIAL'
  );

  DBMS_SCHEDULER.enable(
      p_job_name
  );

end;

标签: bashoracleshell

解决方案


推荐阅读