一、最简单的shell里调用sqlplus.
$ vi test1.sh
#!/bin/bash
sqlplus -S /nolog > result.log < set heading off feedback off pagesize 0 verify off echo off
conn u_test/iamwangnc
select * from tab;
exit
EOF
$ chmod +x test1.sh
$ ./test1.sh
二、把sqlplus执行结果传递给shell方法一
注意sqlplus段使用老板键`了, 赋变量的等号两侧不能有空格.
$ vi test2.sh
#!/bin/bash
VALUE=`sqlplus -S /nolog < set heading off feedback off pagesize 0 verify off echo off numwidth 4
conn u_test/iamwangnc
select count(*) from tab;
exit
EOF`
if [ "$VALUE" -gt 0 ]; then
        echo "The number of rows is $VALUE."
        exit 0
else
        echo "There is no row in the table."
fi
$ chmod +x test2.sh
$ ./test2.sh
三、把sqlplus执行结果传递给shell方法二
注意sqlplus段使用 col .. new_value .. 定义了变量并带参数exit, 然后自动赋给了shell的$?
$ vi test3.sh
#!/bin/bash
sqlplus -S /nolog > result.log < set heading off feedback off pagesize 0 verify off echo off numwidth 4
conn u_test/iamwangnc
col coun new_value v_coun
select count(*) coun from tab;
exit v_coun
EOF
VALUE="$?"
echo "The number of rows is $VALUE."
$ chmod +x test3.sh
$ ./test3.sh
四、把shell程序参数传递给sqlplus
$1表示第一个参数, sqlplus里可以直接使用, 赋变量的等号两侧不能有空格不能有空格.
$ vi test4.sh
#!/bin/bash
NAME="$1"
sqlplus -S u_test/iamwangnc < select * from tab where tname = upper('$NAME');
exit
EOF
$ chmod +x test4.sh
$ ./test4.sh ttt
五、为了安全要求每次执行shell都手工输入密码
$ vi test5.sh
#!/bin/bash
echo -n "Enter password for u_test:"
read PASSWD
sqlplus -S /nolog < conn u_test/$PASSWD
select * from tab;
exit
EOF
$ chmod +x test5.sh
$ ./test5.sh
六、为了安全从文件读取密码
对密码文件设置权限, 只有用户自己才能读写.
$ echo 'iamwangnc' > u_test.txt
$ chmod g-rwx,o-rwx u_test.txt
$ vi test6.sh
#!/bin/bash
PASSWD=`cat u_test.txt`
sqlplus -S /nolog < conn u_test/$PASSWD
select * from tab;
exit
EOF
$ chmod +x test6.sh
$ ./test6.sh
--End--

shell调用各种sqlplus用法相关推荐

  1. linux here用法,linux shell的here document用法(cat EOF)

    什么是Here Document? Here Document 是在Linux Shell 中的一种特殊的重定向方式,它的基本的形式如下 cmd << delimiter Here Doc ...

  2. Shell函数的高级用法

    Shell函数的高级用法 一.函数的定义和使用 1.语法格式 2.如何调用函数 3.示例演示 4.小脚本(nginx守护进程) 二.向函数传递参数 1.Shell中传参 2.Shell中函数调用 3. ...

  3. shell 调用mysql 存储过程_shell调用mysql的存储过程以及SQL

    在华为的时候,还短暂接触和写过shell,调用oracle,后来转入java之后,比较少接触shell,一转眼回过头又要摸shell,去处理mysql,留一点笔记,以备后用. #!/bin/sh #t ...

  4. shell实例第22讲:shell中分隔符IFS用法

    shell中分隔符IFS用法 1.什么是IFS? IFS在shell中是分隔符的意思,即IFS这个变量中存放了分隔符. 2.IFS是全局变量还是局部变量? (1)linux中变量分两种:全局变量env ...

  5. shell调用python函数_shell调用python函数

    最近遇到一个需求,需要通过shell调用python中的一个函数,发现其实也挺简单的: python脚本如下: test.py: import ConfigParser config = Config ...

  6. VTK:演示调用数据的用法实战

    VTK:演示调用数据的用法实战 程序输出 程序完整源代码 程序输出 程序完整源代码 #include <vtkActor.h> #include <vtkAppendPolyData ...

  7. Linux Shell脚本入门教程系列之(九)Shell判断 if else 用法

    本文是Linux Shell脚本系列教程的第(九)篇,更多shell教程请看:Linux Shell脚本系列教程 判断语句是每个语言都必不可少的关键语法,Shell命令当然也不例外.继上一篇之后,今天 ...

  8. 【Linux】shell调用Java程序main方法通过crontab定时执行

    来源:https://blog.csdn.net/coolcooldool/article/details/51775105 最近一个项目需要写一个batch定时读取文件往数据库里插入记录,第一次写, ...

  9. linux 脚本map,shell中map的用法

    ##实例代码 #!/bin/bash cat ./switchsql.txt | while read line do tmp_partition_name=`echo $line | awk -F ...

最新文章

  1. 同一label显示不同字体
  2. struts2.0和struts1.x的区别
  3. linux定时任务之crontab
  4. 杭电1789贪心java实现
  5. SAP设置信贷控制范围有什么作用?
  6. 踩坑记录--mybatisplus模糊查询中文时 有数据但 like查不到
  7. 最小生成树计数(洛谷-P4208)
  8. 数据库 | MySQL安装与配置
  9. layuit 框架_Layui|经典模块化前端框架
  10. Android odex反编译为dex
  11. 利用Python进行数据分析--时间序列
  12. CF1047D Little C Loves 3 II
  13. DirectX修复工具V4.1公测!
  14. itunes下载的app在哪里及如何查看iTunes下载的软件
  15. USACO-Section 3.2 Feed Ratios(枚举)
  16. Python描述数据结构之链表实战篇
  17. 虚拟机服务器安装虚拟机的步骤
  18. 应广单片机adc_台湾应广单片机 单片机PMC131 带12位ADC、采用FPPATM技术
  19. Java IO流---字节流
  20. 什么蓝牙耳机最耐用?2022公认四款最耐用的蓝牙耳机

热门文章

  1. rabitMQ-centos7安装
  2. OAuth简介(包含简明使用教程)
  3. 泛型委托Action与ActionT
  4. [剑指offer] 矩阵覆盖
  5. 网络组Network Teaming
  6. TOYS-POJ2318
  7. C#去除字符串的最后一个字符
  8. 好久不见(致win7)
  9. Silverlight的报表查看器
  10. 从今天开始用上了液晶显示器,总算对得起自己的眼睛了。感谢!