2009-07-01 99 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 2014-03-23 10:51:46

回答

4

您需要進入ODBC連接的配置。在您使用的連接上單擊「配置」,然後選擇「服務器」選項卡。庫列表選項是你需要玩的東西。

根據您的示例,您看起來像需要說「QACOMMON QAVISLIVE」。 (不含引號)

此外,您需要將命名約定更改爲* SYS而不是* SQL,並使默認收集字段爲空。確保您的系統管理員在您要使用新文件的用戶配置文件上設置CURLIB參數。

然後保存並重試。不幸的是,當您在測試,生產和其他任何其他方面進行切換時,您將不得不使用不同的數據源或更改ODBC連接。

+0

試過並recvd'在webaccess類型中找到'SQL0204-cmpgrid2 * FILE not found'其中webaccess是用戶名還有其他要嘗試的嗎? – 2009-07-01 18:05:16