shell脚本中sql语句得到一个值,赋值给变量出错

get_msisdn(){CMONTH=`date+%m`day=`date+%Y%m%d`echo$dayecho"selectgoodsnamefromgoods_i... get_msisdn()
{
CMONTH=`date +%m`
day=`date +%Y%m%d`
echo $day
echo "select goodsname from goods_info_08 where goodsname like '%SVC_20100816351%';" > /idep/test/query.sql

sqlplus idep_admin@idepdb/sxdb9876 @/idep/test/query.sql<<!
/
exit
!
}

### main ####
CHECK_DIR=/idep/test
get_msisdn

结果:
GOODSNAME
--------------------------------------------------------------------------------
SVC_20100816351
SVC_20100816351
SVC_20100816351
SVC_20100816351

SQL>
GOODSNAME
--------------------------------------------------------------------------------
SVC_20100816351
SVC_20100816351
SVC_20100816351
SVC_20100816351

SQL> Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

为什么会出现2次结果?
如何把输出的结果赋值给一个变量?
展开
 我来答
liuyx_know
2010-09-04 · TA获得超过425个赞
知道小有建树答主
回答量:506
采纳率:100%
帮助的人:412万
展开全部
我不知道你的语句为什么会产生重复的结果,最好检查一下你的代码。关于将语句输出赋值到变量的问题请你参照一下我测试的这份代码
get_msisdn()
{
echo -e "
set feedback off;\n
set pagesize 0;\n
spool result.log;\n
select prono from pl.tbassignp where model = 'ZFN';\n
spool off;\n
exit;
" > query.sql

sqlplus pl/oracle@mydb @query.sql|head -0

result=`cat result.log`

echo ${result}

exit
}

get_msisdn

它首先设置输出的格式如set feedback off; set pagesize 0;,然后将语句的输出指定到文件result.log,最后使用cat命令将结果显示并赋值给变量result。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式