Bash中执行存储过程或普通的SQL命令
演示: 在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命令相关推荐
- Oracle数据库PL/SQL中执行存储过程
有时生产线上问题,或者调试需要手动在pl/sql中执行存储过程,但一般不建议这么做(影响线上交易). 一.直接测试执行 在pl/sql中找到对应需要测试的存储过程,左边菜单栏:Procedures下. ...
- redis 启动无输出_Git Bash 中执行交互式命令无响应
众所周知的原因,Windows下的命令行工具CMD非常难用,所以大家一般用Git Bash作为替代品,但是有时候在其中执行一些命令会出现无响应(无输出结果.无报错信息)的现象,本文将给出该现象的原因及 ...
- C#保留2位小数几种场景总结 游标遍历所有数据库循环执行修改数据库的sql命令 原生js轮盘抽奖实例分析(幸运大转盘抽奖) javascript中的typeof和类型判断...
C#保留2位小数几种场景总结 场景1: C#保留2位小数,.ToString("f2")确实可以,但是如果这个数字本来就小数点后面三位比如1.253,那么转化之后就会变成1.25. ...
- Oracle中执行存储过程call和exec区别
在sqlplus中这两种方法都可以使用: exec pro_name(参数1..); call pro_name(参数1..); 区别: 1. 但是exec是sqlplus命令,只能在sqlplus ...
- oracle执行存储过程06576,Oracle中执行存储过程call和exec区别
在sqlplus中这两种方法都可以使用: exec pro_name(参数1..); call pro_name(参数1..); 区别: 1. 但是exec是sqlplus命令,只能在sqlplus中 ...
- 游标遍历所有数据库循环执行修改数据库的sql命令
游标遍历所有数据库循环执行修改数据库的sql命令 MSSQL数据库服务器上有很多类似的数据库,需要将这些数据库统一修改其中的某些表或者某些命令,那么就会想到用游标来遍历. 先来说思路: 1,首先需要查 ...
- sql定位过程报错_如何得到plsql中执行时报错的SQL的位置行号
如何得到 PL/SQL 中执行时报错的 SQL 的位 置行号 一.引言 在进行 PL/SQL 开发的时候经常会写以下代码, declare n1 varchar(10); n2 varchar(10) ...
- 在Hive中执行DDL之类的SQL语句时遇到的一个问题
在Hive中执行DDL之类的SQL语句时遇到的一个问题 作者:天齐 遇到的问题如下: hive> create table ehr_base(id string); FAILED: Execut ...
- 在windows上的git bash中安装tree 和 linux tree命令使用
在windows上的git bash中安装tree 和 linux tree命令使用 文章目录: 1 在windows上的git bash中安装tree 1.1 下载windows版本的tree 1. ...
最新文章
- java中解决Launch configuration TimezoneDump references non-existing project问题
- 函数的作用域(嵌套函数的运行)
- 滚动条全局样式修改与局部修改
- Jquery中将数组转换成Json
- osgEarth用户手册
- mysql 基础操作一
- 小白设计模式:装饰者模式
- 经典机器学习系列(二)【线性判别分析LDA】
- 自定义elementUI select下拉框样式
- eclipse配色方案
- react 首页加载loading
- unity 陶瓷质感_Unity2D:简单自动瓷砖(Tile)的实现
- mysql数据库合库数据库合并心得
- POI 导出Excel
- 计算机组成原理页表长度,清华计算机组成原理习题课课件习题课1-7.ppt
- 网页访问时页面错误代码含义
- 【CSS】CSS选择器优先级及!important属性
- [转]: 探索中国独立博客的发展
- SeleniumLibrary4.5.0 关键字详解(四)
- 【C语言】八道经典指针笔试题(详解)