linux怎么直接运行sqlplus,Unix/Linux中shell调用sqlplus的方式

Unix/Linux下,shell脚本调用sqlplus的几种方式介绍:

一、最简单的shell调用sqlplus

#!/bin/bash

sqlplus -S /nolog > sqlplus.log <

conn scott/scott

select sysdate from dual;

quit

EOF

二、sqlplus返回执行结果给shell

方法一:

#!/bin/bash

biz_date=`sqlplus -S scott/scott <

set heading off

set pagesize 0;

set feedback off;

set verify off;

set echo off;

select sysdate from dual;

exit

EOF`

echo $biz_date

(注意:等号两侧不能有空格.)

[oracle@toughhou shell]$ vi sqlplus.sh

21-NOV-13

方法二:

注意sqlplus段使用 col .. new_value .. 定义了变量并带参数exit, 然后自动赋给了shell的$?

#!/bin/bash

sqlplus -S scott/scott <

set heading off

set pagesize 0;

set feedback off;

set verify off;

set echo off;

col biz_date new_value v_biz_date

select sysdate biz_date from dual;

exit v_biz_date

EOF

biz_date="$?"

[oracle@toughhou shell]$ vi sqlplus.sh

sqlplus.sh: line 11: warning: here-document at line 1 delimited by end-of-file (wanted `EOF')

21-NOV-13

这里出warning是因为EOF后面有空格。(注意:结尾出的EOF后面不能有任何字符)

去掉空格后结果如下:

[oracle@toughhou shell]$ vi sqlplus.sh

22-NOV-13

三、shell程序传递参数给sqlplus

sqlplus里可以直接使用, 赋变量的等号两侧不能有空格不能有空格.

接收到的变量不能加引号。“select sysdate from $tb;"不能写成"select sysdate from '$tb';"

#!/bin/bash

tb=dual

sqlplus -S scott/scott <

set heading off

set pagesize 0;

set feedback off;

set verify off;

set echo off;

select sysdate from $tb;

exit

EOF

[oracle@toughhou shell]$ sh sqlplus.sh

22-NOV-13

四、为了安全要求每次执行shell都手工输入密码

#!/bin/bash

echo -n "Enter db password for scott: "

read pwd

sqlplus -S scott/$pwd <

set heading off

set pagesize 0;

set feedback off;

set verify off;

set echo off;

select sysdate from dual;

exit

EOF

[oracle@toughhou shell]$ sh sqlplus.sh

Enter db password for scott: scott

22-NOV-13

五、为了安全从文件读取密码

对密码文件设置权限, 只有用户自己才能读写.

[oracle@toughhou shell]$ echo scott > scott.pwd

[oracle@toughhou shell]$ chmod 500 soctt.pwd

[oracle@toughhou shell]$ chmod 500 scott.pwd

[oracle@toughhou shell]$ ls -l scott.pwd

-r-x------ 1 oracle oinstall 6 Nov 22 00:17 scott.pwd

#!/bin/bash

pwd=`cat scott.pwd`

sqlplus -S scott/$pwd <

set heading off

set pagesize 0;

set feedback off;

set verify off;

set echo off;

select sysdate from dual;

exit

EOF

linux中shell变量&dollar;&num;&comma;&dollar;&commat;&comma;&dollar;0&comma;&dollar;1&comma;&dollar;2的含义

linux中shell变量$#,$@,$0,$1,$2的含义解释: 变量说明: $$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID $? 最后运行 ...

Linux中Shell

Linux中Shell Shell是什么 ​ Shell是一个命令行解释器,为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,可以用Shell来启动.挂起.停止.编写一些程序. S ...

linux中Shell标准输出错误 &gt&semi;&sol;dev&sol;null 2&gt&semi;&amp&semi;1 分析【转】

Shell中可能经常能看到:>/dev/null  2>&1 eg:sudo kill -9 `ps -elf |grep -v grep|grep $1|awk '{print ...

&lbrack;转&rsqb;unix&sol;linux中的dup&lpar;&rpar;系统调用

[转]unix/linux中的dup()系统调用    在linux纷繁复杂的内核代码中,sys_dup()的代码也许称得上是最简单的之一了,但是就是这么一个简单的系统调用,却成就了unix/linu ...

linux中shell变量&dollar;&num;&comma;&dollar;&commat;&comma;&dollar;0&comma;&dollar;1&comma;&dollar;2的含义解释

linux中shell变量$#,$@,$0,$1,$2的含义解释: 变量说明: $$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID $? 最后运行 ...

ASP&period;net 中手工调用WS&lpar;POST方式&rpar;

ASP.net 中手工调用WS(POST方式)核心代码:string strUrl="http://localhost:21695/service1.asmx/getmythmod&quot ...

Linux中shell变量&dollar;0&comma;&dollar;&quest;等含义

linux中shell变量$#,$@,$0,$1,$2的基本含义: 变量说明: $$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID $? 最后运行 ...

随机推荐

php获取实时汇率数据

支付时常常会用到支付汇率,但汇率数据是实时的,没办法首先设定好,为避免亏损,只能做到实时的了,先推荐个php函数,能实时获取汇率数据.需要curl模块支持. function getExchangeR ...

Android学习笔记

1.问题:Error when loading the SDK:发现了以元素 'd:skin' 开头的无效内容 方法:删除了android-wear        用sdk\tools\lib下的de ...

Delphi xe5 手机开发经验&lpar;新手级别&rpar;

Delphi xe5 手机开发经验(新手级别) http://diybbs.zol.com.cn/1/34037_699.html http://www.delphitop.com/html/jiqi ...

LNMP下防跨站、跨目录安全设置,仅支持PHP 5&period;3&period;3以上版本

PHP 5.3.3以上的版本,可以修改/usr/local/php/etc/php.ini在末尾里加入: [HOST=www.vpser.net] open_basedir=/home/wwwroot ...

关于jQuery,&dollar;&lpar;&quot&semi;&colon;button&quot&semi;&rpar; 中的冒号是什么意思?

$(":button") 表示匹配所有的按钮.$("input:checked")表示匹配所有选中的被选中元素(复选框.单选框等,不包括select中的opti ...

Logger之Logger&period;getLogger&lpar;CLass&rpar;

之前一直在使用System.out.println()来调试.但是用这种方式开发项目部署到生产环境,会因为众多的控制台输出降低应用的性能.这时候Log4J就成为可平衡开发和部署应用的利器了. 在项目中 ...

PHP 反射应用之一(插件框架)

http://www.zui88.com/blog/view-205.html 反射,非常有用的一套东西,用来在运行时,分析代码,分析类的属性,方法,参数,实例化类,调用类的方法等等,从而实现框架,实 ...

Eclipse运行Java简单实例

运行eclipse前首先配置好JDK环境变量等  双击这句话可跳转配置环境变量详细步骤 运行eclipse软件 1.File菜单-New - project 2.Java Project - Next ...

读《图解HTTP》有感-(确保WEB安全的HTTPS)

写在前面 该章节分析当前使用的HTTP协议中存在的安全性问题,以及采用HTTPS协议来规避这些可能存在的缺陷 正文 1.HTTP的缺点 1.1.由于HTTP不具备加密功能,所以在通信链路上,报文是以明 ...

Chapter 5 Blood Type——8

He chuckled. "What are your plans?" 他窃笑道.“那你的计划是什么?” I blushed. I had been vacillating dur ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值