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

来源:互联网 发布:淘宝直播怎么申请条件 编辑:程序博客网 时间:2024/05/21 09:20

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

原创粉丝点击