有哪位大侠了解shell连接、访问db2的。
小弟这里有段代码,总是不能正确执行,请大侠指教!
代码的功能就是从db2的表里查询一个字段,如果该字段为1,表示系统正在运行。
现在执行到SDATA=`db2 -x "select run_flag from sys_datactl"`时,
$SDATA的值为:sql1024n a database connection does not exist
而我期望$SDATA得到的是run_flag 字段的值:0或1
代码如下:
#!/bin/sh
CheckRunState()
{
db2 connect to 实例名 user 用户名 using 密码 > /dev/null
#执行语句,-x去掉列头
SDATA=`db2 -x "select run_flag from sys_datactl"`
db2 quit > /dev/null
#截取字符串
SDATA=${SDATA:0:1}
MESSAGE="system message"
MESS=0
if [ "$SDATA"x == "1"x ]
then
MESSAGE="系统正在运行中"
MESS=1
fi;
echo $MESSAGE
exit $MESS
}
CheckResult=`CheckRunState`
CmpasRunFlag=$?
echo $CheckResult
echo $CmpasRunFlag
------解决方案--------------------------------------------------------
一个db2 一个会话 不同db2之间的会话不通用 所以会报未连接数据库的错误信息
------解决方案--------------------------------------------------------
你把db2 quit放到最后,看看行不行。