# it works fine
db2 connect to <db_name> user <user> using <passwd>
while read aline
do
tab=$(echo $aline | awk -F',' '{print $1}')
col=$(echo $aline | awk -F',' '{print $2}')
max_id=$(db2 -x "select count($col) from $tab")
echo $tab $col $max_id
done < tab.ls
# it doesn't work because of lost DB connection
db2 connect to <db_name> user <user> using <passwd>
cat tab.lst | while read aline
do
tab=$(echo $aline | awk -F',' '{print $1}')
col=$(echo $aline | awk -F',' '{print $2}')
max_id=$(db2 -x "select count($col) from $tab")
echo $tab $col $max_id
done
我有两部分代码,两者差别很小,第一部分按预期运行,但第二部分没有。
管道似乎导致数据库连接丢失。
任何人都可以解释原因。
提前致谢!
BTW:我在RH Linux 6.6中测试过,bash
答案 0 :(得分:0)
DB2 documentation说:
您一次只能连接一个DB2数据库;但是,你可以 使用多个CONNECT语句连接到多个DB2数据 通过使用别名参数来区分您的连接。
在上面的示例中,您连接了两次。考虑重置或终止您的连接:
db2 connection reset
或
db2 terminate