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简介(案例)相关推荐

  1. ThreadLocal 简介 案例 源码分析 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  2. spring boot集成swagger,自定义注解,拦截器,xss过滤,异步调用,定时任务案例...

    本文介绍spring boot集成swagger,自定义注解,拦截器,xss过滤,异步调用,定时任务案例 集成swagger--对于做前后端分离的项目,后端只需要提供接口访问,swagger提供了接口 ...

  3. ECshop在文章列表页调用文章简介

    1.打开includes/lib_article.php文件: 找到:大约21行-82行代码,替换为一下 /** * 获得文章分类下的文章列表 * * @access public * @param ...

  4. sqlplus中调用shell_(转)shell 调用sqlplus各种情况示例

    一.最简单的shell里调用sqlplus. $ vi test1.sh #!/bin/bash sqlplus -S /nolog > result.log < set heading ...

  5. shell 调用 sqlplus 各种情况示例

    一.最简单的shell里调用sqlplus. $ vi test1.sh #!/bin/bash sqlplus -S /nolog > result.log <<EOF set h ...

  6. dedecms首页怎么调用公司简介的内容

    DeDeCMS功能虽然强大,但还是有些细节上的功能没有实现,正如本文描述的问题一样,DEDECMS要在网站首页调用公司简介的内容,而且还要截取前多少个字符数的时候,DEDECMS标签中没有能实现这样的 ...

  7. [20170617]vim中调用sqlplus.txt

    [20170617]vim中调用sqlplus.txt --//以前写过一篇emacs下调用sqlplus的文章,一直想学emacs,受限制自己掌握vim,对学习它没有兴趣,原链接如下: --//ht ...

  8. php调用sqlldr失败,php system()命令调用sqlplus导致php挂起

    我有一个简单的PHP脚本,它调用sqlplus sqlldr文件并将数据转储到oracle中的表中 . 我把问题缩小到我认为是我的PHP脚本挂起的原因...这是:当我从php CLI运行时,系统命令不 ...

  9. 快递查询接口的调用与解析案例

    GoTrace简介 gotrace网站[http://www.gotrace.cn],专业快递查询跟踪.于2013年10月正式发布上线,是一个集全世界100多个国家的国际挂号.国际快递.国际包裹等跟踪 ...

最新文章

  1. DeepMind发布最新原始音频波形深度生成模型WaveNet,将为TTS带来无数可能
  2. 不需要任何依赖的图片加载错误处理的工具类load-image.js
  3. 关于随机验证码的一些小见解。
  4. java word转html 报错 org/apache/poi/xwpf/usermodel/IRunBody
  5. 形式多样!APP引导页设计灵感
  6. 数据结构上机实践第七周项目3 - 负数把正数赶出队列
  7. CAP:Alantany 谈 CAP
  8. 解决方案PPT设计:如何作出标准通用型的目录页?
  9. linux下计算md5值,Linux下使用md5sum计算和检验MD5码
  10. 畅购9-Spring Security Oauth2 JWT
  11. Java小白之编写:计算个税的程序
  12. 压缩包文件的密码如何破解
  13. 网络流媒体--RTP和RTCP协议
  14. 国内外Unity视频学习网站大全
  15. AlexNet网络结构学习
  16. Linux系统和乌班图Ubuntu是什么关系?
  17. 爱情保险是什么,真的有爱情保险吗
  18. 我的世界服务器自定义武器插件,我的世界想买啥就买啥 自定义商店服务器插件...
  19. 单代号网络图计算例题_阀门上面的代号表示什么,看完就懂了~~
  20. 项目中调取高德地图天气接口

热门文章

  1. mac修改php配置文件,MAC下通过改apache配置文件切换php多版本的方法
  2. python中logging模块详解_python logging日志模块详解
  3. DIY一套10倍\20倍\30倍光学变焦高清航拍方案(变焦云台相机方案)
  4. initrd.img处理
  5. 网易博客技巧(表格的高级样式)
  6. Redis实现计数器---接口防刷---升级版(Redis+Lua)
  7. DRP:基本环境安装中遇到那些事儿
  8. SCPPO(八):登录实现逻辑
  9. 活动回顾 | 智慧城市的发展趋势与挑战
  10. 无需写代码!谷歌推出机器学习模型分析神器,代号What-If