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

将数据加载到远程DB2服务器时出错,db2,remote-server,db2-luw,Db2,Remote Server,Db2 Luw,我是Db2新手。我正在尝试使用基于Java的应用程序将数据从远程Db2服务器A发送到远程Db2服务器B。我能够从服务器A获取数据并将其存储在控制/数据文件中;但是,当我尝试将数据发送到服务器B时,出现以下异常 com.ibm.db2.jcc.am.SqlSyntaxErrorException:db2sql错误:SQLCODE=-104,SQLSTATE=42601,SQLERRMC=EXTERNAL;T_数据选择*自;,驾驶员=4.26.14 控制文件具有以下命令: INSERT INTO &

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

com.ibm.db2.jcc.am.SqlSyntaxErrorException:db2sql错误:SQLCODE=-104,SQLSTATE=42601,SQLERRMC=EXTERNAL;T_数据选择*自;,驾驶员=4.26.14

控制文件具有以下命令:

INSERT INTO <TABLE_NAME> SELECT * FROM EXTERNAL '<PATH_TO_DATAFILE>'
USING (DELIMITER '\t' FORMAT TEXT SOCKETBUFSIZE 100 REMOTESOURCE 'JDBC')
插入到“从外部选择*”
使用(分隔符'\t'格式文本SOCKETBUFSIZE 100 REMOTESOURCE'JDBC')
数据文件包含记录,其中每个值由每个记录的制表符分隔


服务器A和B都在使用DB2V9.5

该故障是由于目标服务器B是Db2(v9.5)的不受支持的版本,没有任何理解外部表的能力造成的。因此,它(正确地)在它不理解的外部令牌上报告了sqlcode-104

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

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


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

目标Db2服务器版本是否支持外部表?编辑您的问题,为目标服务器B添加Db2平台和Db2版本详细信息。Db2服务器B有v9.5。我刚刚读到,v11.5中引入了外部功能。谢谢@mao。知道v9.5和/或v10.5的外部版本的替代方案是什么吗?在我的控制文件中是否有任何工具/命令可用于从数据文件发送记录。我的Java应用程序执行此控制文件以跨多个服务器发送数据。请问一个新问题。不要在评论中问后续问题。我做了一些研究,发现了两种方法——导入和加载。由于传输大容量数据更为有用,所以我将重心放在了负载上。我试图将LOAD命令与JDBC一起使用,但不断出现错误。我问了另外一个问题: