在db2中导出ixf

在db2中导出ixf,db2,squirrel-sql,Db2,Squirrel Sql,我使用此语句导出了几行。出于隐私目的,已在必要时插入数据。但是,会产生以下错误。我遵循了IBM的导出指南,觉得这应该是正确的,但不确定到底是哪里出了问题。错误日志如下所示 EXPORT TO myFile.ixf OF ixf SELECT * FROM TABLE_NAME WHERE SSN='DATA' AND EMPLOYER_ID=DATA AND CREATED_TS='DATA' 如前所述,您不能直接运行Db2命令,如导入、导出、加载。。。等等,正如您试图通过JDBC所做的那样

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

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

如前所述,您不能直接运行Db2命令,如导入、导出、加载。。。等等,正如您试图通过JDBC所做的那样

相反,如果Db2服务器运行在Linux/Unix/Windows上,则可以使用存储过程,或者对于任何Db2服务器操作系统,都可以使用命令行

但是,当您对DB2LUW使用存储过程SYSPROC.ADMIN_CMD时,如果您是远程运行的,则存储过程参数中的所有文件名都是相对于Db2服务器的,而不是相对于远程jdbc客户机的。 这意味着在通过存储过程成功导出后,如果确实需要将导出的IXF文件放在工作站上,则必须使用任何工具将文件传输到工作站

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

Error: DB2 SQL Error: SQLCODE=-104, SQLSTATE=42601, SQLERRMC=myFile;EXPORT TO ;JOIN, DRIVER=3.53.70
SQLState:  42601
ErrorCode: -104
如果不想使用存储过程,则必须使用命令行shell,例如在Windows上使用db2ntcmd.bat,或在Unix上使用bash或ksh,然后连接到shell中的数据库并执行导出。这要求工作站具有一个Db2客户机,并且首先对相关数据库和节点进行编目

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

如果我没有弄错的话,export命令不是SQL命令。您需要从命令行运行,而不是从SQL客户机运行。例如,参见此处:
call sysproc.admin_cmd('EXPORT TO /tmp/myFile.ixf OF ixf SELECT * FROM user1.stk1 with ur') ;