Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何在AS400中连接来自两个不同服务器的两个表?_Sql_Ibm Midrange_Db2 400 - Fatal编程技术网

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

Sql 如何在AS400中连接来自两个不同服务器的两个表?,sql,ibm-midrange,db2-400,Sql,Ibm Midrange,Db2 400,我正在使用AS400 7.1版 具有下列特征: ServerA 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中连接来自两个不同服务器的两个表的正确语法是什么 我得到以下错误 关系数据库SA不在关系数据库目录中 我很确定这在Db2 for I中是不可能的 三部分名称对i来

我正在使用AS400 7.1版

具有下列特征:

ServerA 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中连接来自两个不同服务器的两个表的正确语法是什么

我得到以下错误

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


我很确定这在Db2 for I中是不可能的

三部分名称对i来说是新的,据我所知仅限于

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

或者在触发器程序中。。 看

DB2forLUW具有这样的联合功能


我看到的一个解决方法是使用用户定义的表函数UDTF从远程Db2 for I数据库返回行。

我非常确定,这在Db2 for I数据库中是不可能的

三部分名称对i来说是新的,据我所知仅限于

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

或者在触发器程序中。。 看

DB2forLUW具有这样的联合功能


我看到的一个解决方法是使用用户定义的表函数UDTF从远程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;

在DB2fori上不可能。但正如查尔斯所说,你可以做到:

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

您需要在服务器B上创建指向服务器A的链接服务器。然后在服务器B上写入相同的查询。链接服务器名称可以是[SA]。您需要在服务器B上创建指向服务器A的链接服务器。然后在服务器B上写入相同的查询。链接服务器名称可以是[SA]。文档不明确。你可以创建一个由三部分组成的别名,我在回答中没有提到。创建别名文档中没有提到任何限制。但是developerworks上的所有示例都是针对createtable和insert的。我没有必要的资源来测试这一点。你不能从2台服务器或2个分区连接2个表,你会收到一条SQL0512消息。用V7R1测试。看见[这在DB2 connect中是可能的,它创建了一个联邦数据库,您可以跨服务器连接表。但这不是一个免费产品,我的理解是,您必须在windows或linux上安装它才能访问指定的数据库。文档不明确。您可以创建一个由三部分组成的别名,我在中没有提到这一点我的回答。创建别名文档中没有提到任何限制。但是developerworks上的所有示例都是针对创建表和插入的。我没有必要的资源来测试这一点。您不能从两台服务器或两个分区连接两个表,您会收到一条SQL0512消息。使用V7R1测试。请参阅[这在DB2 connect中是可能的,它创建了一个联邦数据库,您可以跨服务器连接表。但它不是免费产品,我的理解是,您必须在windows或linux上安装它才能访问数据库。