在SHELL中直接读取数据库中的值赋给变量解决方法【转】

在实际的项目开发中,碰到从数据库中取数据的应用比较多,一般的处理方法为: 写一个取数据的.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

你可能感兴趣的:(在SHELL中直接读取数据库中的值赋给变量解决方法【转】)