新添加的 table 不起作用

Newly added table not working

我正在使用 DB2 9.7 数据库。我将 SquirrelSQL 用于 GUI 目的。然而,自从我对我的 table 之一应用了 alter 命令后,我开始面临 table 的问题,并且任何进一步的 select 查询都要求 "reorg" table。为了克服这个问题,我重命名了旧的 table 并创建了新的 table。但是,创建查询在 Squirrel 中没有正确执行,因此为我的 STS 下载了 DBViewer(Spring Source Tool Suite。)我从 DBViewer 执行了创建 table 查询,但现在的问题既不是我可以从我的 JAVA 代码或 Squirrel 访问新创建的 table。

我完全不知道可能是什么问题。有人知道吗?

以下是我的 table 的结构:

CREATE TABLE DB2ADMIN.CERT
(
    CERT_ID             CHAR(36) NOT NULL,
    CERT_CD          CHAR(1) NOT NULL,
    CERT_NBR            CHAR(10) NOT NULL,
    CERT_REQ_USR_CD_1           CHAR(10),
    CERT_REQ_USR_CD_2           CHAR(10),
    CERT_REQ_USR_CD_3           CHAR(10),
    CERT_REQ_USR_CD_4           CHAR(10),
    CERT_REQ_USR_TXT_1          VARCHAR(255),
    CERT_REQ_USR_TXT_2          VARCHAR(255),
    CERT_REQ_USR_TXT_3          VARCHAR(255),
    CERT_REQ_USR_TXT_4          VARCHAR(255),
    CERT_REQ_USR_TXT_5          VARCHAR(255),
    CERT_REQ_USR_TXT_6          VARCHAR(255),
    CERT_REQ_USR_TXT_7          VARCHAR(255),
    CERT_REQ_USR_TXT_8          VARCHAR(255),
    CERT_REQ_USR_TXT_9          VARCHAR(255),
    CERT_REQ_USR_DT             DATE,
    LAST_MDF_USER_ID            CHAR(25) NOT NULL,
    LAST_MDF_ACY_TS             TIMESTAMP(26,6) NOT NULL,
    CONSTRAINT SQL111017085116710 PRIMARY KEY (CERT_ID)
);

在我的 alter 查询中,我将 CERT_NBR 的数据类型从 INTEGER 更改为 CHAR

使用命令;

ALTER TABLE CERT ALTER COLUMN CERT_NBR SET DATA TYPE INTEGER

any further select queries asked for "reorg" of the table.

这是在 DB2 中更改 tables 后的常见情况。它应该通过调用简单地解决:

reorg table table-name;

这是命令行命令,而不是 sql 语句,但您可以通过 SQL 使用 admin_cmd 过程调用它:

call sysproc.admin_cmd('reorg table table-name');

我不确定您为什么无法访问新 table。错误消息应该可以帮助您解决这个问题。一些可能性:

  • 您创建的用户名与您尝试访问它的用户名不同。
  • 您从未在创建 table 语句后提交。
  • 出了点问题,table 最终处于无法操作的状态。