0

当我使用 delete 语句运行摄取实用程序时,它会将插入的行数设为 0,并且不显示删除的行数。是否有任何选项可以显示已删除的行数?

我已经包含了摄取实用程序的输出消息和代码

output
------
Number of rows read     = 255
Number of rows inserted = 0
Number of rows rejected = 0
code
----
db2 "ingest from file mypipe format delimited(
$field1 CHAR(9),
$field2 DATE 'yyyy-mm-dd'
) 
Delete from mytable where dob = $field2"
4

1 回答 1

0

文档最初指定摘要报告仅包含读取、插入、拒绝的行数。这也许就是你所看到的。

从文档中引用:

来自 INGEST 命令的消息 如果实用程序从输入源读取了至少一条记录,则实用程序会发出读取、插入和拒绝的行数的摘要(类似于导入和加载实用程序)以及成功完成消息。

但是,在同一页面上,稍后的声明是:

插入(更新、删除、合并)的行数 受针对目标表执行 SQL 语句影响并提交到数据库的行数。该消息显示“已插入”、“已更新”、“已删除”或“已合并”,具体取决于 SQL 语句。

因此,您的案例的行为似乎无济于事,IBM 可以通过另外包括删除的行数和在唯一的 SQL 语句为 DELETE 时更新的行数来改进它。我使用 Db2-LUW v11.5.6.0" 测试了这种行为。

即使删除语句​​被替换为MERGE带有WHEN MATCHED THEN DELETE摘要的报告,也会排除已删除行的计数。不良行为。

如果您有支持合同,您可以向 IBM 开一张票,要求解决方法或修复,因为这里可能存在一些回归问题。

于 2021-08-12T15:13:11.207 回答