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;
    /
    !`

  • 相关阅读:
    List<T>Find方法,FindAll方法,Contains方法,Equals方法
    C#SerialPort如何读取串口数据并显示在TextBox上
    49、css属性相关
    40、协程
    45、mysql 储存过程
    37、进程之间的通信
    38、线程及其方法
    39、多线程和线程池
    33、验证客户端的合法性、socketserver模块
    32、黏包的解决方式、struct模块
  • 原文地址:https://www.cnblogs.com/oracle-dba/p/3735069.html
Copyright © 2011-2022 走看看