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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值