ORACLE 将SQL的执行脚本返回值传给SHELL

简介:
  遇到了一个这样的需求:
     
用SHELL脚本去调用ORACLE中一个PACKAGE的FUNCTION,根据FUNCTION的返回值,SHELL需要判断接下来的操作。

      其实调用一个过程或者函数还是比较简单的,但是捕捉各异的返回值进行判断就稍有不同了。后来我们的原型脚本:

sqlplus -S "gsdb/gsdbpass" << ! > /dev/null
variable dd number
whenever sqlerror exit sql.sqlcode
begin
:dd := gsdb.pkg_cpms.dbcheck_1('123','67');
  raise_application_error(-20224-:dd,'some errors!'); 
end;
/
exit;
!
export test=$?
echo $test
    
      注意:脚本中"$?"可能会因为不同的UNIX或LINUX版本不同而稍有差别。或是$status或是$dd
      注意关键的地方:
To return a status code of over 0 (which usually indicates no error) up to 255, you can use the "raise_application_error" function, passing -20224-status to it, along with the "whenever sqlerror" directive, to return the code back to the UNIX shell.
    

     好的,我们可以轻松的将SQL脚本执行的返回值让SHELL得到了,但是不要忘记范围:0--255,虽然我们不会用那么多返回值。不难看出ORACLE还有多少这样的小秘密呢 -:)

本文转自Be the miracle!博客51CTO博客,原文链接http://blog.51cto.com/miracle/70570如需转载请自行联系原作者


Larry.Yue

相关文章
|
8天前
|
关系型数据库 MySQL Shell
备份 MySQL 的 shell 脚本(mysqldump版本)
【4月更文挑战第28天】
21 0
|
18小时前
|
存储 Shell C语言
shell脚本 编程 变量 基本入门(详解)
shell脚本 编程 变量 基本入门(详解)
|
1天前
|
Shell Linux 编译器
C语言,Linux,静态库编写方法,makefile与shell脚本的关系。
总结:C语言在Linux上编写静态库时,通常会使用Makefile来管理编译和链接过程,以及Shell脚本来自动化构建任务。Makefile包含了编译规则和链接信息,而Shell脚本可以调用Makefile以及其他构建工具来构建项目。这种组合可以大大简化编译和构建过程,使代码更易于维护和分发。
8 3
|
6天前
|
弹性计算 运维 监控
|
6天前
|
存储 弹性计算 运维
自动化收集员工信息的Shell脚本
【4月更文挑战第30天】
10 0
|
7天前
|
弹性计算 运维 Shell
使用shell 脚本打印图形3
【4月更文挑战第29天】
18 0
|
7天前
|
存储 弹性计算 运维
使用shell 脚本打印图形2
【4月更文挑战第29天】
17 0
|
7天前
|
弹性计算 运维 Shell
使用shell 脚本打印图形1
【4月更文挑战第29天】
18 0
|
7天前
|
存储 弹性计算 运维
调整虚拟机内存参数的shell 脚本
【4月更文挑战第29天】
15 0
|
7天前
|
弹性计算 运维 Shell
一键申请多个证书 shell 脚本
【4月更文挑战第29天】
15 1

推荐镜像

更多