Shell_Shell调用SQLPlus简介(案例)
2014-06-20 Created By BaoXinjian
一、摘要
如果在Oracle EBS中开发Unix Shell,必定会涉及到在Shell中调用PLSQL,在Shell调用PLSQL一般是通过SQLPlus这个工具
关于SQLPlus需明白SQLPlus的登录方式和常用命令,具体的在另文介绍SQLPlus的用法
1. SQLPlus的登录方式
sqlplus [ [<option>] [<logon>] [<start>] ]
<option> 为: [-C <version>] [-L] [-M "<options>"] [-R <level>] [-S]
- -C <version> 将受影响的命令的兼容性设置为<version> 指定的版本。该版本具有"x.y[.z]" 格式。例如, -C 10.2.0
- -L 只尝试登录一次, 而不是在出错时再次提示。
- -M "<options>" 设置输出的自动 HTML 标记。选项 的格式为:HTML [ON|OFF] [HEAD text] [BODY text] [TABLE text] [ENTMAP {ON|OFF}] [SPOOL {ON|OFF}] [PRE[FORMAT] {ON|OFF}]
- -R <level> 设置受限模式, 以禁用与文件系统交互的,SQL*Plus 命令。级别可以是 1, 2 或 3。最高限制级别为 -R 3, 该级别禁用与文件系统交互的所有用户命令。
- -S 设置无提示模式, 该模式隐藏, 命令的 SQL*Plus 标帜, 提示和回显的显示。
2. 登录SQLPlus的基本命令
- SQL> show all --查看所有68个系统变量值
- SQL> show user --显示当前连接用户
- SQL> show error --显示错误
- SQL> set heading off --禁止输出列标题,默认值为ON
- SQL> set feedback off --禁止显示最后一行的计数反馈信息,默认值为"对6个或更多的记录,回送ON"
- SQL> set timing on --默认为OFF,设置查询耗时,可用来估计SQL语句的执行时间,测试性能
- SQL> set sqlprompt "SQL> " --设置默认提示符,默认值就是"SQL> "
- SQL> set linesize 1000 --设置屏幕显示行宽,默认100
- SQL> set autocommit ON --设置是否自动提交,默认为OFF
- SQL> set pause on --默认为OFF,设置暂停,会使屏幕显示停止,等待按下ENTER键,再显示下一页
- SQL> set arraysize 1 --默认为15
- SQL> set long 1000 --默认为80
3. SQLPlus语法
语法结构与PLSQL基本一致,略过
二、案例
1. 最简单Shell调用SQLPlus的方法
Step1. 代码
1 #!/bin/bash 2 sqlplus -S /nolog > result.log <<EOF 3 set heading off feedback off pagesize 0 verify off echo off 4 conn apps/apps 5 insert into bxj_sqlplus_test values (sysdate, 'bxjsqlplus1.sh', null); 6 exit 7 EOF
Step2. 执行
>. ./bxjshellsql1.sh
Step3. 结果
2.1 把SQLPlus中的值传递给Shell方法一
Step1. 代码
1 #!/bin/bash 2 VALUE=`sqlplus -S /nolog <<EOF 3 set heading off feedback off pagesize 0 verify off echo off numwidth 4 4 conn apps/apps 5 select count(*) from bxj_sqlplus_test; 6 exit 7 EOF` 8 if [ "$VALUE" -gt 0 ]; then 9 echo "The number of rows is $VALUE." 10 exit 0 11 else 12 echo "There is no row in the table." 13 fi
Step2. 执行
>. ./bxjshellsql2.sh
Step3. 结果
2.2 把SQL Plus中的值传递给Shell方法二
Step1. 代码
1 #!/bin/bash 2 sqlplus -S /nolog > result.log <<EOF 3 set heading off feedback off pagesize 0 verify off echo off numwidth 4 4 conn apps/apps 5 col coun new_value v_coun 6 select count(*) coun from bxj_sqlplus_test; 7 exit v_coun 8 EOF 9 VALUE="$?" 10 echo "The number of rows is $VALUE."
Step2. 执行
>. ./bxjshellsql3.sh
Step3. 结果
3. 把Shell中的值传递给SQLPlus
Step1. 代码
1 #!/bin/bash 2 COMMENTS="$1" 3 sqlplus -S apps/apps <<EOF 4 insert into bxj_sqlplus_test values (sysdate, 'bxjsqlplus4.sh', '$COMMENTS'); 5 exit 6 EOF
Step2. 执行
>. ./bxjshellsql4.sh
Step3. 结果
、
Thanks and Regards
参考: 网络资料http://www.blogjava.net/xzclog/archive/2010/04/01/317151.html
Shell_Shell调用SQLPlus简介(案例)相关推荐
- ThreadLocal 简介 案例 源码分析 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- spring boot集成swagger,自定义注解,拦截器,xss过滤,异步调用,定时任务案例...
本文介绍spring boot集成swagger,自定义注解,拦截器,xss过滤,异步调用,定时任务案例 集成swagger--对于做前后端分离的项目,后端只需要提供接口访问,swagger提供了接口 ...
- ECshop在文章列表页调用文章简介
1.打开includes/lib_article.php文件: 找到:大约21行-82行代码,替换为一下 /** * 获得文章分类下的文章列表 * * @access public * @param ...
- sqlplus中调用shell_(转)shell 调用sqlplus各种情况示例
一.最简单的shell里调用sqlplus. $ vi test1.sh #!/bin/bash sqlplus -S /nolog > result.log < set heading ...
- shell 调用 sqlplus 各种情况示例
一.最简单的shell里调用sqlplus. $ vi test1.sh #!/bin/bash sqlplus -S /nolog > result.log <<EOF set h ...
- dedecms首页怎么调用公司简介的内容
DeDeCMS功能虽然强大,但还是有些细节上的功能没有实现,正如本文描述的问题一样,DEDECMS要在网站首页调用公司简介的内容,而且还要截取前多少个字符数的时候,DEDECMS标签中没有能实现这样的 ...
- [20170617]vim中调用sqlplus.txt
[20170617]vim中调用sqlplus.txt --//以前写过一篇emacs下调用sqlplus的文章,一直想学emacs,受限制自己掌握vim,对学习它没有兴趣,原链接如下: --//ht ...
- php调用sqlldr失败,php system()命令调用sqlplus导致php挂起
我有一个简单的PHP脚本,它调用sqlplus sqlldr文件并将数据转储到oracle中的表中 . 我把问题缩小到我认为是我的PHP脚本挂起的原因...这是:当我从php CLI运行时,系统命令不 ...
- 快递查询接口的调用与解析案例
GoTrace简介 gotrace网站[http://www.gotrace.cn],专业快递查询跟踪.于2013年10月正式发布上线,是一个集全世界100多个国家的国际挂号.国际快递.国际包裹等跟踪 ...
最新文章
- DeepMind发布最新原始音频波形深度生成模型WaveNet,将为TTS带来无数可能
- 不需要任何依赖的图片加载错误处理的工具类load-image.js
- 关于随机验证码的一些小见解。
- java word转html 报错 org/apache/poi/xwpf/usermodel/IRunBody
- 形式多样!APP引导页设计灵感
- 数据结构上机实践第七周项目3 - 负数把正数赶出队列
- CAP:Alantany 谈 CAP
- 解决方案PPT设计:如何作出标准通用型的目录页?
- linux下计算md5值,Linux下使用md5sum计算和检验MD5码
- 畅购9-Spring Security Oauth2 JWT
- Java小白之编写:计算个税的程序
- 压缩包文件的密码如何破解
- 网络流媒体--RTP和RTCP协议
- 国内外Unity视频学习网站大全
- AlexNet网络结构学习
- Linux系统和乌班图Ubuntu是什么关系?
- 爱情保险是什么,真的有爱情保险吗
- 我的世界服务器自定义武器插件,我的世界想买啥就买啥 自定义商店服务器插件...
- 单代号网络图计算例题_阀门上面的代号表示什么,看完就懂了~~
- 项目中调取高德地图天气接口
热门文章
- mac修改php配置文件,MAC下通过改apache配置文件切换php多版本的方法
- python中logging模块详解_python logging日志模块详解
- DIY一套10倍\20倍\30倍光学变焦高清航拍方案(变焦云台相机方案)
- initrd.img处理
- 网易博客技巧(表格的高级样式)
- Redis实现计数器---接口防刷---升级版(Redis+Lua)
- DRP:基本环境安装中遇到那些事儿
- SCPPO(八):登录实现逻辑
- 活动回顾 | 智慧城市的发展趋势与挑战
- 无需写代码!谷歌推出机器学习模型分析神器,代号What-If