DB2中的导入数据失败

时间:2018-05-06 15:27:57

标签: import db2 db2-luw ibm-data-studio

我正在使用Data Studio连接到DB2服务器。当我尝试在Data Studio中使用“导入实用程序”时,它会成功发出警告,结果显示没有记录插入到数据库中。导入向导正在生成以下SQL命令

CALL SYSPROC.ADMIN_CMD( 'IMPORT FROM "/home/xyz/backup/TRANSACTION" OF DEL MODIFIED BY coldel| delprioritychar  INSERT INTO S.TRANSACTION' );

如果我复制此命令并将其粘贴到DB2中的sql脚本中然后运行它会产生另一个错误

An I/O error (reason = "sqlofopn -2029060079") occurred while opening the input file.. SQLCODE=-3030, SQLSTATE=

如果我使用db2 shell来执行命令的IMPORT部分(没有CALL SYSPROC.ADMIN_CMD),它就会成功,没有任何问题。这有什么不对?

2 个答案:

答案 0 :(得分:1)

当您(或DataStudio)运行SYSPROC.ADMIN_CMD(这是DataStudio用于导入的默认方法)时,使用Db2-instance-owner的帐户(对于Db2-LUW)在Db2服务器上执行操作。

该帐户(例如db2inst1)需要对指定文件名的读访问权。在您的情况下,Db2实例所有者无权访问该文件(和/或包含该文件的路径),因此抛出了异常。

您可能会在Db2服务器诊断文件(db2diag.log)中看到失败操作的其他详细信息,具体取决于Db2服务器上处于活动状态的诊断级别。

答案 1 :(得分:0)

ADMIN_CMD期望输入文件在服务器上,因为它(与任何其他存储过程一样)在服务器上运行;它无法访问您的本地文件系统。

您在Db2命令行处理器中运行的命令在客户端上执行,因此可以在本地访问该文件。