我在我的应用程序中查询来自ODBC的Iseries并尝试执行返回2个表的结果的查询。我需要加入表,但表是在不同的库中。我不想在我的查询中使用库标识符,因为我从dev> qa> prod移动时我的库发生了变化。但是,我确信这些表只会在这些库中,并且在其他库中不会有重复。有没有办法在不指定Iseries库的情况下执行此操作?
在本质上,我想要这个:
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
有什么想法吗?
答案 0 :(得分:4)
您需要进入ODBC连接的配置。在您正在使用的连接上单击“配置”,然后选择“服务器”选项卡。库列表选项是您需要使用的选项。
根据您的示例,您似乎需要让它说“QACOMMON QAVISLIVE”。 (没有引号)
此外,您需要将命名约定更改为* SYS而不是* SQL,并将默认收集字段设置为空白。确保系统管理员将您正在使用的用户配置文件上的CURLIB参数设置为您希望新文件的位置。
然后保存并重新尝试。不幸的是,当你在测试,生产和其他任何东西之间切换时,你必须拥有不同的数据源或更改ODBC连接。