Re: パイプでDB2のコネクションの引渡し!?
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に関する部分までまで教えてくれてありがとうございます。
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735