社区
Oracle
帖子详情
shell中如何获取存储过程的输出参数给变量
DBA_大稚
2012-03-05 03:23:36
请教:
如何在shell脚本中调用存储过程,该存储过程既有输入参数(IN),也有输出参数(OUT)
我想要调用该存储过程,然后将输出参数赋值给shell中的变量,求指教!
希望能有完整点儿的脚本例子 谢谢!
...全文
340
3
打赏
收藏
shell中如何获取存储过程的输出参数给变量
请教: 如何在shell脚本中调用存储过程,该存储过程既有输入参数(IN),也有输出参数(OUT) 我想要调用该存储过程,然后将输出参数赋值给shell中的变量,求指教! 希望能有完整点儿的脚本例子 谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
iqlife
2012-03-06
打赏
举报
回复
参考
http://blog.csdn.net/java3344520/article/details/7205306
DBA_大稚
2012-03-06
打赏
举报
回复
函数只返回一个值 $output
但是存储过程可以输出多个参数,那应该怎么获取哪?
yixilan
2012-03-05
打赏
举报
回复
#下面的代码是对于从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 dual;
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 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 result$1.txt
#执行sql脚本并把结果输入result$1.txt
echo ok!
-------------
在LINUX下执行./mysh.sh 123,生成result123.txt,myproc输出参数在'retcode['和']retcode'之间。
shell
oracle
存储过程
返回值,
shell
中
获取
存储过程
返回值
由于最近的工作基本都是在与
shell
和
存储过程
打交道,任何任务的开始都是以
shell
脚本开始,之前的任务是通过
shell
并行执行,后续的任务依赖于并行的任务是否执行完毕,下一个
shell
如果
获取
并行任务是否结束成为了一个难题,最后采取如下方案:1、每一个并行执行的任务完成之后都写入对应数据的成功标志2、下一个任务
shell
脚本每隔一段时间执行一次,判断是否所有标志都为成功,如果成功,执行该shel...
shell
中
获取
存储过程
返回值
由于最近的工作基本都是在与
shell
和
存储过程
打交道,任何任务的开始都是以
shell
脚本开始,之前的任务是通过
shell
并行执行,后续的任务依赖于并行的任务是否执行完毕,下一个
shell
如果
获取
并行任务是否结束成为...
shell
调用oracle
存储过程
# 否则将
参数
赋给指定
变量
if [ $# -lt 5 ];then echo "[`date`][ERRO][数据装载脚本传入了错误的
参数
$*]" echo " 正确调用格式: exec_proc.ksh [
存储过程
名称] [数据库名称] [数据库用户] [数据库密码] [会计日期]" exit 1 else #
参数
处理 #
参数
1
存储过程
名称:
shell
脚本实现调用oracle数据库
存储过程
说明:ORACLE_HOME为oracle安装目录。link_db为oracle数据库信息,格式为用户/密码@ip地址:1521。
shell
脚本
中
调用 sp_test(date in varchar2,o_result out number )
存储过程
。总结:定义
存储过程
输出
参数
,并通过“:”使用定义的
参数
。定义
变量
var_save 保存执行结果。
第63讲:MySQL
存储过程
变量
传参的核心概念与案例
由于inout类型即可以传参输入,又可以传参
输出
,在调用
存储过程
,输入传参的内容时,无法直接填写
变量
值,因为
输出
传参不会识别
变量
值只会识别
变量
名,所以需要先将inout的
变量
通过自定义
变量
赋值,再调用
存储过程
时传入自定义的
变量
,最后再查询
变量
的新值。首先使用call调用
存储过程
,传入第一个
参数
username
变量
的值,然后定义一个zhiwu自定义
变量
,通过zhiwu这个自定义
变量
去接收第二个
参数
返回的
变量
值,最后查询我们自定义的zhiwu
变量
,就可以看到
存储过程
第二个
参数
返回的值。
Oracle
17,086
社区成员
55,238
社区内容
发帖
与我相关
我的任务
Oracle
Oracle开发相关技术讨论
复制链接
扫一扫
分享
社区描述
Oracle开发相关技术讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章