使用 db2 配置 mysql 链接服务器



我有两个数据库服务器,一个是mysql,另一个是db2,两者都在不同的机器上运行。我想使用 joine 从两个数据库中的表中获取记录.我研究了链接服务器的概念,但问题是我找不到使用 db2 创建链接服务器的任何示例(我能找到的只是 SSMS,即使用 Sql Server Mannagement Studio 创建链接服务器)但我的情况是 mysql 和 db2,我需要创建一个链接到其中一个/vice反之亦然。

请提出一些帮助,我该如何实现这一目标。

提前感谢!

在 DB2 中,有一个称为联合(信息集成的一部分)的特性,它允许您向 DB2 提供外部资源(包装器和昵称); 您可以从 DB2 查询这些外部资源,甚至可以在不同源之间进行连接(其他 DB2 数据库、Informix |MSSQL 服务器 |甲骨文 |MySQL 数据库、平面文件等)为了查询外部资源,此功能需要特殊许可证。相反,如果要查询其他 DB2 或 informix 数据库,则此功能不需要额外的许可证,因为它是免费提供的(这些是 IBM 数据库)。

为了手,有一个称为表函数的选项。这些函数在调用时返回一个表,然后,您可以将返回的数据与其他表联接。这些功能可以用 SQL PL(IBM PROCEDURE LANGUAGE)、C 或 Java 进行开发。

使用第二个选项,您可以在 Java 中创建一个表函数,该函数查询 MySQL 表,然后将数据返回到 DB2。我写了一个关于如何在 Twitter 中查询"主题"并将该数据返回给 DB2 的示例。您必须执行几乎相同的操作,但不是查询Twitter,而是配置其他数据库。http://angocadb2.blogspot.fr/2012/02/accediendo-tweeter-desde-db2-table.html

@AngocA它

不起作用,但感谢您的建议。

经过长时间的搜索,我自己为上述自我帖子提出了答案,并考虑将其发布在这里,因为在我们需要从两个不同的数据库服务器获取数据的情况下,这对其他人很有帮助,这些数据库服务器本质上是远程/本地的,当链接服务器概念失败时。

我们可以使用一个名为Unity Jdbc的第三方jar,我们可以在java代码中以简单的方式使用它来加载驱动程序,然后像旧的jdbc一样获得连接。

1)加载驱动程序,如 thisClass.forName("unity.jdbc.UnityDriver");2) 像这样获取连接 DriverManager.getConnection(jdbc:unity://test/xspec/mysqldb2.xml);3) 获取记录(DDL/DML)4)紧密连接

人们可以访问Unity Jdbc http://www.unityjdbc.com/

在我们的代码中使用此jdbc,我们实际上加载了一个基于xml的文件,该文件定义了我们要求的所需数据源。

一旦设置了所有内容,就可以轻松地从两个不同的远程数据库的两个不同表形成查询。 语法 : dbname.tablename.fieldname

此外,我们不需要处理任何进一步的 xml 配置来关闭在关闭外部实际连接后创建的内部连接。

任何问题都会写回。

最新更新