2009-07-01 9 views
1

私のアプリケーションでODBCからIseriesを照会しており、2つの表の結果を戻す照会を実行しようとしています。私はテーブルに参加する必要がありますが、テーブルは別のライブラリにあります。 dev> qa> prodから移動するとライブラリの識別子が変わっても、ライブラリの識別子をクエリに使用したくないです。しかし、私はこれらのテーブルがこれらのライブラリにしか存在せず、他のライブラリに重複がないことを確信しています。 Iseriesライブラリを指定せずにこれを行う方法はありますか?エッセンスでAS400/DB2クロス・ライブラリー照会の問題

、私はこれをしたい:

select DISTINCT GIDNBR, VSL00100.GRNAME 
FROM **QACOMMON**.CMPGRID2 CMPGRID2 INNER JOIN **QAVISLIVE**.VSL00100 VSL00100 ON VSL00100.GRNO=CMPGRID2.GIDNBR AND 
         VSL00100.GRSUB=CMPGRID2.GIDSUB AND 
         VSL00100.GRLOC=CMPGRID2.GIDLOC AND 
        VSL00100.GRPOOL=CMPGRID2.GIDPOL 

はこのように見えるように:

select DISTINCT GIDNBR, VSL00100.GRNAME 
FROM CMPGRID2 CMPGRID2 INNER JOIN VSL00100 VSL00100 
ON 
VSL00100.GRNO=CMPGRID2.GIDNBR AND 
        VSL00100.GRSUB=CMPGRID2.GIDSUB AND 
        VSL00100.GRLOC=CMPGRID2.GIDLOC AND 
       VSL00100.GRPOOL=CMPGRID2.GIDPOL 

任意のアイデア?

+1

ちょっとしたコメント - 最初の文字 "Q"のライブラリに名前を付けると、SAVLIB * ALLUSR保存操作の一部として保存されなくなります。セーブが正しいデータを得ていることを確認してください。 – user2338816

答えて

4

ODBC接続の設定に入る必要があります。あなたが使用している接続で、 "設定"をクリックし、 "サーバー"タブを選択します。ライブラリリストオプションは、あなたが再生する必要があります。

例に基づいて、「QACOMMON QAVISLIVE」と言う必要があるようです。 (引用符なし)

また、* SQLの代わりに名前付け規則を* SYSに変更し、デフォルトの収集フィールドを空白にする必要があります。システム管理者が、使用しているユーザープロファイルにCURLIBパラメーターを設定して、新しいファイルをどこに送るかを確認してください。

次に保存してもう一度やり直してください。残念ながら、テスト、プロダクションなどの間で切り替えるときは、異なるデータソースを持つか、ODBC接続を変更する必要があります。

+0

これを試してみて、「SQL0204 - cmpgrid2 in webaccess type * FILE not found」と入力してください。ここで、webaccessはユーザ名です。 –

+0

さて、いくつか変更が必要です。私はそれに応じて私の答えを更新しました。 –

+1

また、アプリケーションを大幅にテストして、上記の変更が他のものに影響を与えないことを確認する必要があります。システムの命名規則では、SQLが通常使用するピリオド(。)ではなく、ライブラリとファイル名を解決するときにスラッシュ(/)を使用します。 –

関連する問題