在实际的项目开发中,碰到从数据库中取数据的应用比较多,一般的处理方法为: 写一个取数据的.sql脚本,然后在SHELL程序中调用取得,其实这两步可以合并为一步处理.
例如:我现在要将从表AA中查询到的所有数据赋给变量a,代码如下:(pw为已经定义的数据库连接)
a=`sqlplus -S $pw <
set heading off
select * from AA;
exit
EOF
`
这样表AA中的所有数据就赋到了变量a中,但是要注意的是:所有的信息都打印成了一行.所以是否使用该方法还是老方法,这取决于个人的需要(如果只需要查一条记录的需求时,用这个可行)
例子二、
这个shell比较有趣,虽然并没有什么新的技巧。
它的意义在于让我认识到对于数据库里的多条纪录,可以将值分别付给shell变量,并且分别处理。
[@more@]
表中的数据:
SQL> select * from aa;
COL1
----------
1
2
3
shell脚本:
/export/home/deverdb/p482/scripts>cat test1
#!/usr/bin/bash
for i in `sqlplus -sedentest/edentest@perdb<
SET TERM OFF
SET FEED OFF
SET HEAD OFF
select col1 from aa;
EOF`
do
echo $i
echo haha
done
执行结果:
/export/home/deverdb/p482/scripts>sh test1
1
haha
2
haha
3
haha