演示: 在bash中执行一个存储过程和一个普通的SQL语句

0. 前提条件:

数据库:Oracle10g

表:oracle自带的emp表,默认有数据如下:

1. 在bash中执行oracle存储过程

首先,在oracle中建立一个存储过程Proc_SelEName

CREATE OR REPLACE Procedure Proc_SelEName
(inempno number,outname out varchar2
)
as
beginselect ename into outname from emp where empno=inempno;
end;

接着,建立bash脚本:mysh.sh

#!/bin/bashsql_str=`
sqlplus -S scott/scott@ORCLtxk <<EOF--set linesize 800;--set long 2048576;--set serveroutput on;var oi_return varchar2(20);call  Proc_SelEName($1,:oi_return);select :oi_return from dual;
exit
EOF`echo "$sql_str"

最后,执行脚本,检测结果:

[zcm@bash #23]$./mysh.sh 7369Call completed.:OI_RETURN
--------------------------------------------------------------------------------
SMITH
[zcm@bash #24]$

2. 在bash中执行普通的SQL查询语句

只需要修改下上面的bash脚本就可以了,修改如下:

#!/bin/bashsql_str=`
sqlplus -S scott/scott@ORCLtxk <<EOFselect empno,ename from emp t where rownum<3;
exit
EOF`echo "$sql_str"

最后运行bash脚本:

[zcm@bash #24]$./mysh.shEMPNO ENAME
---------- ----------7369 SMITH7499 ALLEN
[zcm@bash #25]$

结论:在bash中执行oracle存储过程及sql语句非常方便,返回的结果就像是在终端下执行的结果--普通的文本。再对返回的结果进行适当的处理就可以得到比较实用的数据了!

Bash中执行存储过程或普通的SQL命令相关推荐

  1. Oracle数据库PL/SQL中执行存储过程

    有时生产线上问题,或者调试需要手动在pl/sql中执行存储过程,但一般不建议这么做(影响线上交易). 一.直接测试执行 在pl/sql中找到对应需要测试的存储过程,左边菜单栏:Procedures下. ...

  2. redis 启动无输出_Git Bash 中执行交互式命令无响应

    众所周知的原因,Windows下的命令行工具CMD非常难用,所以大家一般用Git Bash作为替代品,但是有时候在其中执行一些命令会出现无响应(无输出结果.无报错信息)的现象,本文将给出该现象的原因及 ...

  3. C#保留2位小数几种场景总结 游标遍历所有数据库循环执行修改数据库的sql命令 原生js轮盘抽奖实例分析(幸运大转盘抽奖) javascript中的typeof和类型判断...

    C#保留2位小数几种场景总结 场景1: C#保留2位小数,.ToString("f2")确实可以,但是如果这个数字本来就小数点后面三位比如1.253,那么转化之后就会变成1.25. ...

  4. Oracle中执行存储过程call和exec区别

    在sqlplus中这两种方法都可以使用: exec pro_name(参数1..); call pro_name(参数1..); 区别:  1. 但是exec是sqlplus命令,只能在sqlplus ...

  5. oracle执行存储过程06576,Oracle中执行存储过程call和exec区别

    在sqlplus中这两种方法都可以使用: exec pro_name(参数1..); call pro_name(参数1..); 区别: 1. 但是exec是sqlplus命令,只能在sqlplus中 ...

  6. 游标遍历所有数据库循环执行修改数据库的sql命令

    游标遍历所有数据库循环执行修改数据库的sql命令 MSSQL数据库服务器上有很多类似的数据库,需要将这些数据库统一修改其中的某些表或者某些命令,那么就会想到用游标来遍历. 先来说思路: 1,首先需要查 ...

  7. sql定位过程报错_如何得到plsql中执行时报错的SQL的位置行号

    如何得到 PL/SQL 中执行时报错的 SQL 的位 置行号 一.引言 在进行 PL/SQL 开发的时候经常会写以下代码, declare n1 varchar(10); n2 varchar(10) ...

  8. 在Hive中执行DDL之类的SQL语句时遇到的一个问题

    在Hive中执行DDL之类的SQL语句时遇到的一个问题 作者:天齐 遇到的问题如下: hive> create table ehr_base(id string); FAILED: Execut ...

  9. 在windows上的git bash中安装tree 和 linux tree命令使用

    在windows上的git bash中安装tree 和 linux tree命令使用 文章目录: 1 在windows上的git bash中安装tree 1.1 下载windows版本的tree 1. ...

最新文章

  1. java中解决Launch configuration TimezoneDump references non-existing project问题
  2. 函数的作用域(嵌套函数的运行)
  3. 滚动条全局样式修改与局部修改
  4. Jquery中将数组转换成Json
  5. osgEarth用户手册
  6. mysql 基础操作一
  7. 小白设计模式:装饰者模式
  8. 经典机器学习系列(二)【线性判别分析LDA】
  9. 自定义elementUI select下拉框样式
  10. eclipse配色方案
  11. react 首页加载loading
  12. unity 陶瓷质感_Unity2D:简单自动瓷砖(Tile)的实现
  13. mysql数据库合库数据库合并心得
  14. POI 导出Excel
  15. 计算机组成原理页表长度,清华计算机组成原理习题课课件习题课1-7.ppt
  16. 网页访问时页面错误代码含义
  17. 【CSS】CSS选择器优先级及!important属性
  18. [转]: 探索中国独立博客的发展
  19. SeleniumLibrary4.5.0 关键字详解(四)
  20. 【C语言】八道经典指针笔试题(详解)

热门文章

  1. 验证视图状态 MAC 失败
  2. Unicode简介【转】
  3. leetcode 137. 只出现一次的数字 II(位运算)
  4. 数据挖掘—BP神经网络(Java实现)
  5. 创建hugo博客_如何创建您的第一个Hugo博客:实用指南
  6. python 使用c模块_您可能没有使用(但应该使用)的很棒的Python模块
  7. 印刷点阵字体_印刷术如何确定可读性:衬线与无衬线,以及如何组合字体。
  8. 微信支付商业版 结算周期_了解商业周期
  9. webstorm 代码提示
  10. 【MySQL】Java对SQL时间类型的操作(获得当前、昨天、前年。。时间)