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;
/
!`
author:大地爱老虎油
blogs:http://www.cnblogs.com/oracle-dba/
motto :相信天道酬勤,相信自己;
你越优秀,世界越公平;
在DBA的道路上,孤独的前行着。
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步