hanajipon @元ネタ発信者です。

"Hirokazu WATANABE" <wnabe@par.odn.ne.jp> wrote in message
news:c9i27r$29er$1@nwall2.odn.ne.jp...
> 渡辺@昔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 してくれます。
> #単なる逃げとも言う。

DB2に関する部分までまで教えてくれてありがとうございます。