1. 首页
  2. IT资讯

shell 调用 sqlplus 各种情况示例

shell 调用 sqlplus 各种情况示例

测试平台:RHEL4.5一、最简单的shell里调用sqlplus.$ vi test1.sh#!/bin/bashsqlplus -S /nolog > result.log <set heading off feedback off pagesize 0 verify off echo offconn u_test/iamwangncselect * from tab;exitEOF$ chmod +x test1.sh$ ./test1.sh二、把sqlplus执行结果传递给shell方法一注意sqlplus段使用老板键`了, 赋变量的等号两侧不能有空格.$ vi test2.sh#!/bin/bashVALUE=`sqlplus -S /nolog < result.log或者>/dev/null,因为有“了,不会输出到屏幕上,因此不需要>/dev/null或者> result.log。set heading off feedback off pagesize 0 verify off echo off numwidth 4conn u_test/iamwangncselect count(*) from tab;exitEOF`if [ “$VALUE” -gt 0 ]; then echo “The number of rows is $VALUE.” exit 0else 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/bashsqlplus -S /nolog > result.log <#用退出码返回值,需要重定向‘> result.log’,否则会显示到屏幕上。set heading off feedback off pagesize 0 verify off echo off numwidth 4conn u_test/iamwangnccol coun new_value v_counselect count(*) coun from tab;exit v_counEOFVALUE=”$?”echo “The number of rows is $VALUE.”$ chmod +x test3.sh$ ./test3.sh四、把shell程序参数传递给sqlplus$1表示第一个参数, sqlplus里可以直接使用, 赋变量的等号两侧不能有空格不能有空格.$ vi test4.sh#!/bin/bashNAME=”$1″sqlplus -S u_test/iamwangnc <select * from tab where tname = upper($NAME);exitEOF$ chmod +x test4.sh$ ./test4.sh ttt五、为了安全要求每次执行shell都手工输入密码$ vi test5.sh#!/bin/bashecho -n “Enter password for u_test:”read PASSWDsqlplus -S /nolog <conn u_test/$PASSWDselect * from tab;exitEOF$ chmod +x test5.sh$ ./test5.sh六、为了安全从文件读取密码对密码文件设置权限, 只有用户自己才能读写.$ echo ‘iamwangnc’ > u_test.txt$ chmod g-rwx,o-rwx u_test.txt$ vi test6.sh#!/bin/bashPASSWD=`cat u_test.txt`sqlplus -S /nolog <conn u_test/$PASSWDselect * from tab;exitEOF$ chmod +x test6.sh$ ./test6.sh七 、sqlplus的结果存储在文件中#!/bin/shsqlplus -S “test/unimas”<set heading offset feedback offset pagesize 0set verify offset echo offspool spool_fileSELECT * from teacher;spool offexit;EOF

与下列代码效果是相同的:
#!/bin/shsqlplus -S “test/unimas”< > spool_fileset heading offset feedback offset pagesize 0set verify offset echo offSELECT * from teacher;exit;EOF–End–

语法着色参考截图如下:
shell 调用 sqlplus 各种情况示例
shell 调用 sqlplus 各种情况示例
shell 调用 sqlplus 各种情况示例

interact1.jpg

interact2.jpg

interact3.jpg

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/27042095/viewspace-743636/,如需转载,请注明出处,否则将追究法律责任。

主题测试文章,只做测试使用。发布者:布吉卡,转转请注明出处:http://www.cxybcw.com/196078.html

联系我们

13687733322

在线咨询:点击这里给我发消息

邮件:1877088071@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code