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次结果?
如何把输出的结果赋值给一个变量?
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。