求助:关于LINUX SHELL接受存储过程OUT参数
时间:2011-11-30
来源:互联网
有个存储过程 chk 只返回一个NUMBER类型参数
但是我在写SHELL的时候 怎么接受这个存储过程的参数啊
MY.SH
#! /bin/bash
tb_name=$1
sqlplus -S gbdb/gbdb@orcl_63 <<EOF
-- 函数
create or replace function chk_f
return number is
v_cnt number;
begin
select count(*) into v_cnt from $tb_name;
return v_cnt;
end ;
/
-- 过程
create or replace procedure chk_p(
cnt out number
)is
begin
select count(*) into cnt from $tb_name;
end ;
/
exit;
EOF
请问关于函数和过程 应该怎么去接返回的参数
但是我在写SHELL的时候 怎么接受这个存储过程的参数啊
MY.SH
#! /bin/bash
tb_name=$1
sqlplus -S gbdb/gbdb@orcl_63 <<EOF
-- 函数
create or replace function chk_f
return number is
v_cnt number;
begin
select count(*) into v_cnt from $tb_name;
return v_cnt;
end ;
/
-- 过程
create or replace procedure chk_p(
cnt out number
)is
begin
select count(*) into cnt from $tb_name;
end ;
/
exit;
EOF
请问关于函数和过程 应该怎么去接返回的参数
作者: allrun1982 发布时间: 2011-11-30
函数的:
#下面的代码是对于从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
#下面的代码是对于从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
作者: yixilan 发布时间: 2011-11-30
存储过程就麻烦多了,以存储过程 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'之间。
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'之间。
作者: yixilan 发布时间: 2011-11-30
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28