首页 > 代码库 > SHELL调用存储过程
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;
/
!`