出现错误 在执行 DB2 EXPORT IXF 时处理 Action String 参数中的 SELECT 字符串时发生 SQL 错误“-204”?

Posted

技术标签:

【中文标题】出现错误 在执行 DB2 EXPORT IXF 时处理 Action String 参数中的 SELECT 字符串时发生 SQL 错误“-204”?【英文标题】:Getting error An SQL error "-204" occurred while processing the SELECT string in the Action String parameter when executing DB2 EXPORT IXF? 【发布时间】:2019-08-28 14:13:10 【问题描述】:

连接到数据库后,我在 Shell bash 上执行以下命令 下面的文本文件在 DB2 数据库中具有表名,例如

TABLE1
TABLE2
..
TABLEN

for tablenam in $(cat textfile)
do
 db2 'EXPORT TO $PPL_IXFDRV/PREBKP/tablenam.IXF OF~
  IXF MESSAGES /dev/null~
  SELECT * FROM $SCHEMA.tablenam'
done

当我运行它时,我得到以下错误

SQL3022N 处理 中的 SELECT 字符串时发生 SQL 错误“-204” 操作字符串参数。

我已经用单引号尝试了上面的命令,如下所示

for tablenam in $(cat textfile)
do
 db2 EXPORT TO $PPL_IXFDRV/PREBKP/tablenam.IXF OF~
  IXF MESSAGES /dev/null~
  SELECT \* FROM $SCHEMA.tablenam
done

这也给了我同样的结果

我在这里要做的是以 IXF 格式卸载数据库中“文本文件”列表中存在的 DB2 表,用重复命令中的 tablenam 替换 db2 EXPORT

【问题讨论】:

显然 Db2 找不到您要导出的表。使用-v 开关和db2 来回显正在执行的实际命令;您可能会发现问题出在哪里。 【参考方案1】:

试试这个:

for tablenam in $(cat textfile)
do
 db2 "EXPORT TO $PPL_IXFDRV/PREBKP/$tablenam.IXF OF
  IXF 
  SELECT * FROM $SCHEMA.$tablenam"
done

【讨论】:

我刚才试过了,结果是一样的可能没有被文本文件中的表名取代,我不确定需要一些帮助 循环内必须是 $tablenam 而不是 tablenam。检查更新的答案。

以上是关于出现错误 在执行 DB2 EXPORT IXF 时处理 Action String 参数中的 SELECT 字符串时发生 SQL 错误“-204”?的主要内容,如果未能解决你的问题,请参考以下文章

DB2中ixf文件的导入导出

db2数据导出导入del与ixf格式区别

DB2用export命令导出表发生错误,错误提示如下

DB2导入导出方法总结

db2 export导出文件

db2 backup export