当前位置:首页 » 存储配置 » shell调用存储过程

shell调用存储过程

发布时间: 2025-10-04 00:04:47

A. oracle存储过程中调用一个shell脚本,用于进行一些操作,已经赋权限,但是执行不了

shell的环境变量问题,你在shell内部的变量是获取不到外部执行结果的。

B. shell中怎么获取存储过程的输出参数给变量

#下面的代码是对于从oracle的sqlplus返回变量值给shell的例子
output=`sqlplus -s unitele/lemontea << EOF
set heading off feedback off verify off
drop function test_get_param_value_p;
CREATE OR REPLACE function test_get_param_value_p
(
is_citycode in varchar2
)
return varchar2
is
on_value varchar2(100);
begin
on_value :='100000';
dbms_output.put_line(on_value);
dbms_output.put_line(is_citycode);
return on_value;
end;
/
select test_get_param_value_p('501') from al;
exit
EOF
`
echo "Oracle的输出变量值:"$output
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=
存储过程 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 al--显示结果
/
quit;
-------------
SHELL脚本mysh.sh,内容如下
-------------
#./mysh.sh 123
cd /home/myshell
sed "s/in_code/$1/" mysql.sql > mysql01.sql
#根据sql脚本模板生成实际脚本
sqlplus usr/pwd@db result$1.txt
#执行sql脚本并把结果输入result$1.txt
echo ok!
-------------
在LINUX下执行./mysh.sh 123,生成result123.txt,myproc输出参数在'retcode['和']retcode'之间。

热点内容
java返回this 发布:2025-10-20 08:28:16 浏览:718
制作脚本网站 发布:2025-10-20 08:17:34 浏览:983
python中的init方法 发布:2025-10-20 08:17:33 浏览:690
图案密码什么意思 发布:2025-10-20 08:16:56 浏览:844
怎么清理微信视频缓存 发布:2025-10-20 08:12:37 浏览:750
c语言编译器怎么看执行过程 发布:2025-10-20 08:00:32 浏览:1090
邮箱如何填写发信服务器 发布:2025-10-20 07:45:27 浏览:319
shell脚本入门案例 发布:2025-10-20 07:44:45 浏览:199
怎么上传照片浏览上传 发布:2025-10-20 07:44:03 浏览:887
python股票数据获取 发布:2025-10-20 07:39:44 浏览:846