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