在实际的项目开发中,碰到从数据库中取数据的应用比较多,一般的处理方法为: 写一个取数据的.sql脚本,然后在SHELL程序中调用取得,其实这两步可以合并为一步处理.
例如:我现在要将从表AA中查询到的所有数据赋给变量a, 代码如下:(pw为已经定义的数据库连接)
a=` sqlplus -S $pw <<EOF
set heading off
select * from AA;
exit
EOF
`
这样表AA中的所有数据就赋到了变量a中,但是要注意的是:所有的信息都打印成了一行.所以是否使用该方法还是老方法,这取决于个人的需要(如果只需要查一条记录的需求时,用这个可行)
同时附注从网上搜集到的关于mysql的写法,上面的是关于oracle的写法, 以下代码仅供参考:
由于我在/etc/my.cnf中设置了连接密码,所以这两个script中均不需要指定密码
getFromMySQL.sh
#-----------------------------------------------------------------------------------#
#!/bin/bash
mysql=`which mysql`
DBName=test
value=`$mysql $DBName -u root -se 'select * from stars' | sed '1d'`
$echo "Value is .........." $value
for val in $value
do
echo $val
done
#-----------------------------------------------------------------------------------#
addValuesTOMySQL.sh
#-----------------------------------------------------------------------------------#
#!/bin/bash
mysql=`which mysql`
DBName=test
if [ $# -ne 2 ];then
echo "Usage: number name"
else
statement="insert into stars values($1,'$2')"
$mysql $DBName -u root <<EOF
$statement
EOF
if [ $? -eq 0 ];then
echo "Add values success"
else
echo "Add values failed"
fi
fi
#-----------------------------------------------------------------------------------#