将数据加载到远程DB2服务器时出错



我是Db2的新手。我正在尝试使用基于Java的应用程序将数据从远程Db2服务器A发送到远程Db2 server B。我能够从服务器A获取数据,并将其存储在控制/数据文件中;但当我尝试将数据发送到服务器B时,我得到以下异常。

com.ibm.db2.jcc.am.SqlSyntaxErrorException: DB2 SQL Error: SQLCODE=-104, SQLSTATE=42601, SQLERRMC=EXTERNAL;T_DATA SELECT * FROM;<table_expr>, DRIVER=4.26.14

控制文件具有以下命令:

INSERT INTO <TABLE_NAME> SELECT * FROM EXTERNAL '<PATH_TO_DATAFILE>'
USING (DELIMITER 't' FORMAT TEXT SOCKETBUFSIZE 100 REMOTESOURCE 'JDBC')

数据文件包含记录,其中每个值由每个记录的制表符分隔。

服务器A和B都使用Db2 v9.5

失败的原因是目标服务器-B是Db2(v9.5(的不支持版本,无法理解外部表。因此,它(正确地(报告了它不理解的令牌EXTERNAL上的sqlcode-104。

因此,您的网站上可用的Db2版本的设计是不正确的。您只能在最新的Db2 LUW版本(v11.5(中使用外部表。

根据可用的工具,可以使用命令(外部工具,而不是SQL(从源中导出数据,并将其加载到目标中。此外,如果服务器A和服务器B之间直接存在网络连接,则管理员可以在它们之间安排联盟,从而允许直接插入。

Db2v9.5还支持从游标加载和从远程游标加载(尽管存在问题,但在较新版本中早已修复(。

最新更新