但行好事
莫论前程❤

Shell脚本(14)– 调用sqlplus的几种方式

参数说明

sqlplus -S /nolog
# 以安静模式登录(不显示sqlplus的版本、帮助、提示、命令信息),通常用来获取查询结果并赋值给变量。

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

实战:

#!/bin/bash
sqlplus -S scott/scott <<EOF > sqlplus.log
    set heading off;
    set pagesize 0;
    set feedback off;
    set verify off;
    set echo off;
    select sysdate from dual;
    quit
EOF

一、最简单的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
# (注意:等号两侧不能有空格.)

方法二:

  • 注意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="$?"
# (注意:结尾出的EOF后面不能有任何字符)

三、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

四、为了安全要求每次执行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
赞(0) 打赏
未经允许不得转载:刘鹏博客 » Shell脚本(14)– 调用sqlplus的几种方式
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏