1

我必须卸载包含具有 ROWID 数据类型的字段的表。我无法通过 QMF 卸载该表,因为它不支持此数据类型。有没有其他方法可以卸载表?

4

1 回答 1

1

在 DB2 中,ROWID 为 RDMS 提供了比最终用户所允许的更多的内部功能。这是故意的。见链接:

http://publib.boulder.ibm.com/infocenter/dzichelp/v2r2/index.jsp?topic=/com.ibm.db2.doc.sqlref/xf7c63.htm

但是,如果您不需要 ROWID 属性(将数据用于只读目的),则可以模拟此表的卸载/加载。

您可以使用 EXPORT / IMPORT 命令执行卸载/加载功能,这应该支持 ROWID,但如果不支持,则可以通过将不支持的数据类型 ROWID 转换为支持的数据类型来实现相同的功能。唯一的问题是,一旦这样做,您将无法将数据转换回此数据类型。换句话说,ROWID 的所有属性现在都将是一个常规的 INTEGER 字段。

select INTEGER(ROWID)  as int-rowid
     , col2
     , coln
  from table
 order by 1

然后您可以执行 EXPORT / IMPORT 命令来卸载 / 加载数据。

警告:一旦你摆脱了 ROWID 属性,你就无法恢复它。换句话说,此表的 INSERTS 不会自动增加 ROWID 字段。

于 2010-11-06T04:18:30.283 回答