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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM