在 db2 中导出 ixf

Export ixf in db2

EXPORT TO myFile.ixf OF ixf SELECT * FROM TABLE_NAME WHERE SSN='DATA' AND EMPLOYER_ID=DATA AND CREATED_TS='DATA'

我正在使用此语句导出几行。出于隐私目的,已在必要时插入数据。但是会产生以下错误。我遵循了 IBM 的出口指南,觉得这应该是正确的,但不确定到底哪里出了问题。错误日志如下

Error: DB2 SQL Error: SQLCODE=-104, SQLSTATE=42601, SQLERRMC=myFile;EXPORT TO ;JOIN, DRIVER=3.53.70
SQLState:  42601
ErrorCode: -104

如前所述,您不能直接 运行 Db2 命令(例如导入、导出、加载...等)来自 SQL ,正如您尝试通过 JDBC.

相反,如果您的 Db2-server 运行s 在 Linux/Unix/Windows 上,您可以使用存储过程,或者(对于任何 Db2-server 操作系统)您可以使用 command-line.

但是,当您对 Db2-LUW 使用 stored-procedure SYSPROC.ADMIN_CMD 时,stored-procedure 参数中的所有 file-names 都是 相对于 Db2-server (而不是您的遥控器 jdbc-client,如果您正在远程 运行ning)。 这意味着在通过 stored-procedure 成功导出后,如果您确实需要将导出的 IXF 文件放在您的工作站上,那么您必须使用为此目的使用的任何工具对您的工作站执行 file-transfer。

例如,这显示了在 Unix 上导出到 Db2 服务器上 /tmp 中的 IXF 文件:

call sysproc.admin_cmd('EXPORT TO /tmp/myFile.ixf OF ixf SELECT * FROM user1.stk1 with ur') ;

如果您不想使用存储过程,则必须使用 command-line shell(例如 Windows ,使用 db2ntcmd.bat ,或在 Unix 上使用 bash 或 ksh) 并连接到 shell 中的数据库并执行导出。这要求工作站具有 Db2 客户端,并且首先对相关数据库和节点进行编目。

如果您指定您的 Db2 版本和 operating-system 您的 Db2 服务器 运行,那么您将获得更多详细信息。