如何从AS400中的2个不同服务器连接2个表?

时间:2018-03-08 08:32:00

标签: sql ibm-midrange db2-400

我正在使用AS400 7.1版。

拥有以下内容:

ServerA(SA) - DatabaseA(DBA) - TableA(TA)

ServerB(SB) - DataBaseB(DBB) - TableB(TB)

SELECT A.*, B.* 
FROM SA.DBA.TA A INNER JOIN SB.DBB.TB
ON A.PN=B.PN
WHERE A.PN='BFDKS';

从AS400中的两个不同服务器连接2个表的正确语法是什么?

我收到以下错误

  

关系数据库SA不在关系数据库目录中

2 个答案:

答案 0 :(得分:2)

我非常确定Db2目前不适用于我...

3部分名称是i的新名称,据我所知仅限于

插入mylib.mytable  (从remotedb.somelib.sometable中选择*);

请参阅CREATE TABLE with remote subselect

或者在触发程序中.. 见3-part names in triggers

LUW的Db2具有此类联合功能......

我所看到的一项工作是使用用户定义的表函数(UDTF)从远程Db2为i数据库返回行。

答案 1 :(得分:1)

DB2 for i不可行。但就像查尔斯说的那样,你可以做到:

-- run this instructions on server B

create table qtemp.SADBATA as (
SELECT A.* FROM SA.DBA.TA A
where A.PN='BFDKS'
) with data;

SELECT * FROM qtemp.SADBATA A INNER JOIN SB.DBB.TB ON A.PN=B.PN;