遇到了一个这样的需求:

用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还有多少这样的小秘密呢 -:)

ORACLE 将SQL的执行脚本返回值传给SHELL相关推荐

  1. Oracle 查看sql语句执行计划方法

    注意这篇文章只介绍查看sql语句执行计划的方法, 并不是说明如何看懂执行计划. 一般来讲, 直接在sqlplus 执行 set autotrace on; 就可以了 其前提是登陆用户必须有视图  v_ ...

  2. oracle的sql执行计划语句,最权威Oracle获取SQL语句执行计划大全

    该文档为根据相关资料整理.总结而成,主要讲解Oracle数据库中,获取SQL语句执行计划的最权威.最正确的方法.步骤,此外,还详细说明了每种方法中可选项的意义及使用方法,以方便大家和自己日常工作中查阅 ...

  3. oracle数据库sql的执行过程,Oracle体系结构之SQL语句的执行过程

    一般来说,数据库处理SQL都会经过三个过程:解析(parse).执行(exec).返回结果(fetch) 1.解析 当用户发起一个SQL语句时,Oracle通过Server Process 接收SQL ...

  4. 查找100 sql oracle,Oracle中SQL语句执行效率的查找与解决

    一.识别占用资源较多的语句的方法(4种方法) 1.测试组和最终用户反馈的与反应缓慢有关的问题. 2.利用V_$SQLAREA视图提供了执行的细节.(执行.读取磁盘和读取缓冲区的次数) • 数据列 EX ...

  5. oracle查看语句执行历史,AWT查看oracle历史sql语句执行

    进入到$ORACLE_HOME/rdbms/admin目录下. 然后sqlplus "/as sysdba"登陆到数据库 执行@awrrpt.sql; [oracle@appdb2 ...

  6. Oracle数据库可重复执行脚本整理方法

    使用说明 此模板适用于已经建好的数据库和表想导出重复执行的情况 导出的时候建议不要使用Navicat工具,这样会导出很多无用的代码 此模板包括序列.表结构.触发器.注释 使用时替换标明eam_role ...

  7. oracle和mysql文件怎么打开_Oracle vs Mysql--架构、sql查询执行流程及SQL解析顺序区别说明-sql文件怎么打开...

    概述 之前分享的主要是Oracle上的一些内容,那么mysql又有哪些地方不一样呢?下面从MySQL总体架构.sql查询执行流程和语句执行顺序来看一下.. 01 架构总览 下面看一下mysql的架构图 ...

  8. Oracle SQL语句执行步骤

    Oracle中SQL语句执行过程中,Oracle内部解析原理如下: 1.当一用户第一次提交一个SQL表达式时,Oracle会将这SQL进行Hard parse,这过程有点像程序编译,检查语法.表名.字 ...

  9. oracle中子查询的执行顺序是,Oracle sql语句执行顺序

    sql语法的分析是从右到左 一.sql语句的执行步骤: 1)语法分析,分析语句的语法是否符合规范,衡量语句中各表达式的意义. 2)语义分析,检查语句中涉及的所有数据库对象是否存在,且用户有相应的权限. ...

最新文章

  1. list控件响应鼠标键的单双击
  2. Linux设备文件简介。
  3. 115页Slides带你领略深度生成模型全貌(附PPT)
  4. python 零基础学习之路-01 计算机硬件
  5. 计算机视觉--Python实现人体姿态估计
  6. Javascript的变量作用域居然可以跨越多个函数!
  7. LeetCode 2150. 找出数组中的所有孤独数字(哈希)
  8. IDEA:将web工程部署到tomcat
  9. window计算的chk在linux下可以读,Linux系统命令从入门到完全忘记(四)
  10. The X protocol C-language Binding (XCB) is a replacement for Xlib
  11. linux主机设备acl,linux上的终端类型、ACL、PAM模块
  12. 零代码实现接口自动化测试-RF框架实践
  13. 第六章-网络可靠性设计
  14. java中草药美白淡斑紧肤膏_美白淡斑中药面膜配方 中药美白祛斑配方_怎样用中药偏方祛斑_自制中药美白祛斑法_养生频道_快速问医生...
  15. AD中使用Net Label时,编译时为什么总是Floating。出现的原因。
  16. [转]齐善鸿:职业心智训练与管理教育
  17. 怎样把多个TXT文件合成为一个TXT文件
  18. Tkinter 1. 基本介绍
  19. USTCOJ1240 黑屋 位运算
  20. 【一起入门MachineLearning】中科院机器学习第3课-朴素贝叶斯分类器

热门文章

  1. oracle 容器切换,oracle12c 多租户管理四(容器连接切换)
  2. 小数乘分数怎么算过程_GMAT分数到底怎么算?我该做对多少题GMAT才能达到700+?...
  3. 很慢怎么办_手机信号满格,网速却很慢怎么办?3招教你一键恢复网络
  4. java面试题十八 switch一个考题
  5. java面试题九 数组初始化
  6. 河北地质大学硕士专业介绍:计算机类
  7. React学习:路由定义及传参、数据复用-学习笔记
  8. python函数式编程之functools、itertools、operator详解
  9. Django非常简单的安装方法
  10. 匀光匀色--直方图匹配算法实现与应用