Linux下用SHELL脚本执行带输入输出参数的ORACLE存储过程并得到结果

2014-11-24 17:28:54 · 作者: · 浏览: 4

存储过程 myproc(in_num in number,out_num out number)


sql脚本模板mysql.sql
{
var nret number;
execute :nret := 0;--初始化


call myproc(in_code,:nret)--执行存储过程,in_code会被替换掉
/
select 'retcode[' || :nret || ']retcode' from dual--显示结果
/
quit;


}


SHELL脚本mysh.sh
{
#./mysh.sh 123
cd /home/myshell


sed "s/in_code/$1/" mysql.sql > mysql01.sql
#根据sql脚本模板生成实际脚本


sqlplus usr/pwd@db.my result$1.txt
#执行sql脚本并把结果输入result$1.txt


echo ok!


}


在Linux下执行./mysh.sh 123,生成result123.txt,myproc输出参数在'retcode['和']retcode'之间。