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

How to join 2 tables from 2 different servers in AS400?

我正在使用 AS400 7.1 版。

具有以下特征:

服务器 A (SA) - 数据库 A (DBA) - 表 A (TA)

服务器 B (SB) - 数据库 B (DBB) - 表 B (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 个表的正确语法是什么?

我收到以下错误

Relational database SA not in relational database directory

我很确定目前 Db2 for i...

目前无法做到这一点

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

插入 mylib.mytable (select * 来自 remotedb.somelib.sometable);

CREATE TABLE with remote subselect

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

Db2 for LUW 具有这样的联合功能...

我看到的一个解决方法是使用用户定义的 table 函数 (UDTF) 到 return 来自远程 Db2 for i 数据库的行..

在 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;