设置CLI加载模式后恢复DB2表

时间:2013-09-21 06:32:14

标签: db2

我需要在DB2数据库中的表上加载大量数据。我在使用SQLSetStmtAttr函数用C编写的表上使用CLI加载模式。设置时,Select语句不起作用(表被锁定)。

当数据加载完成时,我正在关闭加载模式。之后,表变为可访问,以便我可以从db2命令行工具(或控制中心)执行select。

但问题是我的C程序在关闭加载模式之前崩溃或失败。该表始终处于锁定状态。我必须放弃表格,之前的所有数据都会丢失。

我的问题是,是否有办法恢复表格?

1 个答案:

答案 0 :(得分:0)

DBMS文档是您的朋友。你可以read the description SQL0668N(或任何其他错误!)来找出代码3的含义,以及如何修复它。

基本上,当LOAD操作失败时,您需要对表执行一些清理 - restartterminate。这可以使用程序外部的LOAD实用程序(例如,LOAD from /dev/null of del TERMINATE into yourtable不可恢复)来完成,但您也可以以编程方式执行此操作。

通常,您可以使用db2Load() API执行此操作,并使用相同的RESTART或TERMINATE操作设置传递给piLongActionString的{​​{1}}参数的db2LoadStruct成员。

在使用CLI Load时,您似乎可以将db2Load()语句设置为相同的SQL_ATTR_LOAD_INFO,但我不确定这是否真的可以完成加载重启/终止。