渡辺@昔DB2使い です。

"hanajipon" <hanajipon@mail.goo.ne.jp> wrote in message news:c9hpd2$qfg$1@nn-os102.ocn.ad.jp...
>  function xx2 { ~/sqllib/bin/db2 "$*" | /usr/local/bin/nkf204 -e ; }
> として使うとうまく行きました。
> しかし、この出力をパイプに渡して使うと
>  SQL1024N  データベース接続が存在しません。  SQLSTATE=08003
> と出てしまうのです。
> function を使わずに db2 "..." | nkf | more などとすると出来るのです。
> 
> これを解決するにはどうしたら良いでしょうか?

現シェル内でデータベース接続が存在するけれど、新しいサブシェルで実行
されるときにはデータベース接続が存在しないからではないでしょうか。
データベース接続そのものを共有する方法は無いように思います。

サブシェル内で実行させる時には、面倒でも明示的に connect するか、
DB2DBDFT を定義してみてはいかがでしょう。この環境変数を定義しておけば
データベース接続が存在しないときには自動で connect してくれます。
#単なる逃げとも言う。
-- 
---
渡辺浩和@ 府中
<wnabe@par.odn.ne.jp>