首页 > 文章

Unix/Linux中shell调用sqlplus的方式

unix

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

一、最简单的shell调用sqlplus

#!/bin/bash
sqlplus -S /nolog > sqlplus.log <<EOF
conn scott/scott
select sysdate from dual;
quit
EOF

二、sqlplus返回执行结果给shell

方法一:

#!/bin/bash
biz_date=`sqlplus -S scott/scott <<EOF
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 <<EOF
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 <<EOF
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 <<EOF
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 <<EOF
set heading off
set pagesize 0;
set feedback off;
set verify off;
set echo off;
select sysdate from dual;
exit
EOF

  • 不合格品处理流程及处理方式
  • 传递信息的方式有哪些
  • 就读方式什么意思
  • 植物传播种子方式 都通过什么传播
  • 抖音最火的发红包方式,抖音怎么给对方发红包
  • 手递手方式什么意思
  • 家校联系的基本方式有哪些
  • 跳绳的正确方法与技巧:正确的跳绳方式是脚尖先落地还是怎样的
  • 称谓是什么意思:什么是称谓?称谓方式有哪几种
  • 考研成绩查询方式:考研成绩怎么查步骤
  • 本文地址:https://www.ytsfc.com/show-1-18118-0.html

    • 大结局为什么萧炎杀药老

      大结局为什么萧炎杀药老

      原著大结局为什么萧炎杀药老​1、原因就是萧炎自身的原因了。萧炎是远古八族之萧族的后人,萧炎手中的古玉是打开古帝遗迹的关键。收集古玉是药老他们一直的使命。所以,药老追...

    • 车标志识别图片大全  【图片】

      车标志识别图片大全 【图片】

      每一辆汽车都有自己的品牌标志,用于告诉大家它们的生产厂家。下面我们来认识一下一些比较常见的汽车标志,有不认识的小伙伴赶快记下来!中国汽车最著名的要属:奇瑞、吉利、长城、...

    • 达咩啥意思:达咩为什么不能随便说

      达咩啥意思:达咩为什么不能随便说

      哒咩什么意思达咩的意思是不行,不许,不可以的意思。达咩是日语的中文读音译字,是一句比较生活化的日常用语。日语常用语还有,晚安对长辈:お休みなさい(哦呀斯米那赛),再见:さようなら...

    • 水浒传人物介绍:水浒传15个人物介绍

      水浒传人物介绍:水浒传15个人物介绍

      水浒传15个人物介绍1, 及时雨,呼保义,宋江:及时雨:总在别人需要的时候出现 2,玉麒麟,卢俊义 ,麒麟是神兽,是百兽之长 富甲天下,仗义疏财3,智多星,吴用 智多星,聪明,智慧多多的上界星辰...

    评论底部pc
    评论底部 m

    豆豆的家

    http://www.ytsfc.com/

    '); })(); | 京ICP1234567-2号

    Powered By 电视大师网 XXX公司

    使用手机软件扫描微信二维码

    关注我们可获取更多热点资讯

    感谢小豆豆技术支持