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

shell脚本调用存储过程

发布时间: 2022-12-14 12:28:21

❶ 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'之间。

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

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

❸ 如何使用shell并行调用存储过程

1.把存储过程的调用封装成shell脚本(sp.sh)
2.并行执行这个脚本
第一种方法:循环执行多次,每次都在后台执行(sp.sh &)
第二种方法:使用xargs -p参数
第三种方法:make -j参数支持同时执行多个目标任务

❹ linux定时任务调用shell时脚本中的存储过程不执行

1、被执行的脚本没有执行权限,这种情况 直接授权
chmod 755 xxx.sh
2、被执行的脚本编码有问题,这种情况直接转码

dos2unix xxx.sh
我们也可下载一个windows版的dos2unix,转完码后再上传到Linux服务器
补充:linux定时任务
每天早上6点
0 6 * * * echo "Good morning." >> /tmp/test.txt //注意单纯echo,从屏幕上看不到任何输出,因为cron把任何输出都email到root的信箱了。
每两个小时
0 */2 * * * echo "Have a break now." >> /tmp/test.txt
晚上11点到早上8点之间每两个小时和早上八点
0 23-7/2,8 * * * echo "Have a good dream" >> /tmp/test.txt
每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点
0 11 4 * 1-3 command line
1月1日早上4点
0 4 1 1 * command line SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root //如果出现错误,或者有数据输出,数据作为邮件发给这个帐号 HOME=/
每小时执行/etc/cron.hourly内的脚本
01 * * * * root run-parts /etc/cron.hourly
每天执行/etc/cron.daily内的脚本
02 4 * * * root run-parts /etc/cron.daily
每星期执行/etc/cron.weekly内的脚本
22 4 * * 0 root run-parts /etc/cron.weekly
crontab权限问题到/var/adm/cron/下一看,文件cron.allow和cron.deny是否存在
用法如下:1、如果两个文件都不存在,则只有root用户才能使用crontab命令。
2、如果cron.allow存在但cron.deny不存在,则只有列在cron.allow文件里的用户才能使用crontab命令,如果root用户也不在里面,则root用户也不能使用crontab。
3、如果cron.allow不存在, cron.deny存在,则只有列在cron.deny文件里面的用户不能使用crontab命令,其它用户都能使用。
4、如果两个文件都存在,则列在cron.allow文件中而且没有列在cron.deny中的用户可以使用crontab,如果两个文件中都有同一个用户,
以cron.allow文件里面是否有该用户为准,如果cron.allow中有该用户,则可以使用crontab命令

❺ shell调用Oracle存储过程问题

以下为proc.sh文件内容:
sqlplus user/password <<!
exec proc_name;
exit
!

其中proc_name是存储过程的名字
user/password是存储过程所在用户的用户名和密码

❻ shell调用oracle存储过程

#!/bin/sh
sqlplusabc/passwd<<EOF
setlinesize500;
setpagesize10000;
spooloutput.txt
calla1();
calla2();
calla3();
commit;
spooloff
quit;
EOF

大概就是这个方式。

需要修改一下oracle用户密码,如果存储过程有参数还需要修改调用的地方。

❼ shell下调用oracle存储过程,怎么将存储过程的输出参数传递给shell中的变量啊

那一就要写一个shell
脚本了
echo
-ne
"\e[40;33;lm
请如数
参数
:\e[0m"
read
X
su
-
oracle
sqlplus
用户名/
密码
start
存储过程名
参数

❽ shell脚本里怎样调用plsql存储过程

对于存储我是不很了解,但是可以通过这种方式来调用oracle的sqlplus。

#catsql.sh

#!/bin/bash

su-oracle-c'

sqlplus-S/assysdba<<EOF

selectstatusfromv$instance;

exit

EOF

'

#bashsql.sh
STATUS
------------------------
OPEN

❾ linux下shell调用oracle存储过程的问题

被锁定的话,你可以是做不了的。等待也是没用的啊,只要被锁了,永远你也做不了。除非解锁了。应该先去检查为何被锁吧。 调用存储过程,返回结果可以有,得看你的存储过程怎么写了,可以在存储过程里增加返回值的。

❿ 能在shell脚本中调起sybase iq的存储过程吗请给出实例。谢谢。

dbisql -c "连接串" sql文件
将你的存储过程或者sql语句写到sql文件中去。 通过上面的命令进行调用。

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