BASH中的管道导致与db2的连接丢失

时间:2016-08-01 03:15:57

标签: bash db2

# 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

1 个答案:

答案 0 :(得分:0)

DB2 documentation说:

  

您一次只能连接一个DB2数据库;但是,你可以   使用多个CONNECT语句连接到多个DB2数据   通过使用别名参数来区分您的连接。

在上面的示例中,您连接了两次。考虑重置或终止您的连接:

db2 connection reset

db2 terminate