zoukankan      html  css  js  c++  java
  • 简化job创建的两种方式

    1.传递参数方式

    1.1.创建sh脚本

    vi execute_oracle_procedure.sh

    source ~/.bash_profile
    date
    $ORACLE_HOME/bin/sqlplus -S monkey/monkey << eof
    begin
     $1;
     COMMIT;
    end;
     /
    exit;
    eof
    date
    

    1.2.crontab写入排程

    crontab -e

    */5 * * * * sh /Data/scripts/execute_oracle_procedure.sh monkey.test_procedure01 >> /Data/scripts/log/execute_oracle_procedure.log 2>&1;
    

    2.自动生成SH脚本

    2.1.使用存储过程生成sh脚本

    /* Formatted on 2021/3/23 上午 11:00:43 (QP5 v5.163.1008.3004) */
    DECLARE
       v_string     VARCHAR2 (4000);
       v_name       VARCHAR2 (200);
       v_count      NUMBER;
       v_filename   VARCHAR2 (200);
       v_dir        VARCHAR2 (200);
    -----Note:plase replace v_dir v_string with right string
    BEGIN
       v_dir := '/Data/scripts/';
       v_string := 'MONKEY.SP01 ,
    MONKEY.SP02 ,';
    
       WHILE INSTR (v_string, ',') > 0
       LOOP
          v_count := INSTR (v_string, ',');
          v_name := TRIM (CHR (10) FROM TRIM (SUBSTR (v_string, 1, v_count - 1)));
          v_filename := v_dir || REPLACE (v_name, '.', '_') || '.sh';
          DBMS_OUTPUT.put_line (
             'touch ' || v_dir || REPLACE (v_name, '.', '_') || '.sh');
          DBMS_OUTPUT.put_line (
             'echo ''' || 'source ~/.bash_profile'' >> ' || v_filename);
          DBMS_OUTPUT.put_line ('echo ''' || 'date'' >> ' || v_filename);
          DBMS_OUTPUT.put_line (
                'echo '''
             || '$ORACLE_HOME/bin/sqlplus -S monkey/monkey. <<EOFarch1'' >> '
             || v_filename);
          DBMS_OUTPUT.put_line ('echo ''' || 'begin'' >> ' || v_filename);
          DBMS_OUTPUT.put_line ('echo ''' || v_name || ';'' >> ' || v_filename);
          DBMS_OUTPUT.put_line ('echo ''' || ' COMMIT;'' >> ' || v_filename);
          DBMS_OUTPUT.put_line ('echo ''' || 'end;'' >> ' || v_filename);
          DBMS_OUTPUT.put_line ('echo ''' || ' /'' >> ' || v_filename);
          DBMS_OUTPUT.put_line ('echo ''' || 'exit;'' >> ' || v_filename);
          DBMS_OUTPUT.put_line ('echo ''' || 'EOFarch1'' >> ' || v_filename);
          DBMS_OUTPUT.put_line ('echo ''' || 'date'' >> ' || v_filename);
          v_string := SUBSTR (v_string, v_count + 1);
       END LOOP;
    END;
    /
    

    2.2.执行2.1生成的脚本

    进入系统,执行2.1步生成的sh脚本,就会在对应的目录下生成对应存储过程的sh文件

    2.3.crontab写入排程

    3.脚本改进

    vi execute_oracle_procedure.sh

    source ~/.bash_profile
    $ORACLE_HOME/bin/sqlplus -S monkey/monkey << eof >>/Data/scripts/log/${1//./_}.log
    set heading off;
    select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
    begin
     $1;
     COMMIT;
    end;
    /
    select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
    exit;
    eof
    

    crontab -e

    */5 * * * * sh /Data/scripts/execute_oracle_procedure.sh monkey.test_procedure01
    

    以上会自动在/Data/scripts/log里面生成对应procedure的日志。

  • 相关阅读:
    第八章 线性时间排序
    第七章 快速排序
    第六章 堆排序
    第四章 分治策略
    第二章 算法基础
    第一章 算法在计算中的作用
    opencv —— cornerSubPix 亚像素级角点检测
    opencv —— Shi-Tomasi 角点检测
    .NET List<T>Conat vs AddRange
    自定义组装json对象
  • 原文地址:https://www.cnblogs.com/monkey6/p/14569005.html
Copyright © 2011-2022 走看看