zoukankan      html  css  js  c++  java
  • SHELL调用存储过程

    1、测试用例

    #!/bin/sh
    #日期变量可设成传入参数
    #exec_date=`date +"%Y%m%d"`

    # -S 设置无提示模式, 该模式隐藏命令的 SQL*Plus 标帜, 提示和回显的显示
    sqlplus -S "scott/oracle" <<! >/dev/null
    declare
    --声明变量
    i_current_date date;
    v_output varchar2(20):='OK';
    v_descmg  varchar2(20):='OK';
    begin
    --日期赋值
    i_current_date :=to_date('2014-05-18','yyyy-mm-dd');
    --执行过程
        pkg_sql_proc.remove_data(i_acctdt=> i_current_date,
                                                          o_output => v_output,
                                                         o_descmg => v_descmg);
    end;
    /
    exit;
    !

    2、将变量进程参数化

    #!/bin/sh
    #日期变量可设成传入参数或者使用如下方式
    exec_date=`date +"%Y%m%d"`
    #数据库用户变量也可以传入
    dbuser=scott
    dbpasswd=oracle
    #过程名称初始化
    proc_name="pkg_sql_proc.remove_data"
    #sqlplus声明
    sql_stmt=`sqlplus -S "$dbuser/$dbpasswd" <<!
    --修改session日期格式
    alter session set nls_date_format='yyyy-mm-dd';
    declare
        v_output varchar2(20):='OK';
        v_descmg  varchar2(20):='OK';
    begin
        --日期转换
        i_current_date :=to_date($exec_date,'yyyymmdd');
        $proc_name(i_current_date, v_output, v_descmg);
    end;
    /
    !`

  • 相关阅读:
    微信红包开发
    第一次开博客,留此纪念
    数据结构--树(遍历,红黑,B树)
    c++之vector
    动态规划求解最长公共子序列问题
    c++之map
    k-折交叉验证(k-fold crossValidation)
    prim算法
    快速排序算法
    浙大机试题目
  • 原文地址:https://www.cnblogs.com/oracle-dba/p/3735069.html
Copyright © 2011-2022 走看看