HOME
BLOG
Shell连接Oracle
May 09 2017
Shell 中使用sqlplus连接Oracle数据库并打印
1
2
3
4
5
6
#!/bin/bash
sql_str=`sqlplus -S user_name/user_password@service_name <<EOF
select sysdate
from dual;
EOF`
echo sql_str
Shell 中将查询结果写到文件中
1
2
3
4
5
6
7
8
9
10
11
sqlplus -silent user_name/user_password@service_name >/home/infa/shell_home/tmp/sql_file.txt <<EOF
set pagesize 0 # 不换页显示
set feedback off # 关闭反馈信息
set heading off; # 不显示列标题
set linesize 1000; # 输出一行字符个数,缺省为1000
col sysdate for a1000; # 格式化列的显示格式,最大显示1000个字符

select 1 || '|' || 2 || '|' || 3 || '|' || 4
from dual;

EOF
储存到文件的数据如下:
Shell 读取以上文件的并传给对应参数
1
2
3
4
5
6
7
8
9
10
11
while read line
do

eval $(echo $line |awk -F "|" '{print "var1=\""$1"\";var2=\""$2"\";var3=\""$3"\";var4=\""$4"\""}')

echo $var1
echo $var2
echo $var3
echo $var4

done</home/infa/shell_home/tmp/sql_file.txt
执行结果如下:

1