新添加的表格不起作用

时间:2015-10-23 07:25:11

标签: sql jdbc db2 spring-jdbc

我正在研究DB2 9.7数据库。我使用SquirrelSQL进行GUI操作。但是,自从我在其中一个表中应用了alter命令后,我开始遇到表的问题,并且任何进一步的选择查询都要求" reorg"的表。为了克服这个问题,我重新命名了旧表并创建了新表。但是,创建查询在Squirrel中没有正确执行,因此下载了DBViewer for my STS(Spring Source Tool Suite。)我从DBViewer执行了create table查询,但现在问题是我无法访问新的从我的JAVA代码创建表,也从Squirrel创建表。

我完全不知道可能是什么问题。有谁有任何想法?

以下是我桌子的结构:

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 query中,我将CERT_NBR的数据类型从INTEGER更改为CHAR

使用命令;

ALTER TABLE CERT ALTER COLUMN CERT_NBR SET DATA TYPE INTEGER

1 个答案:

答案 0 :(得分:2)

  

任何进一步的选择查询要求" reorg"该表。

这在DB2中更改表后很常见。它应该通过调用:

来解决
reorg table table-name;

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

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

我不确定您为何无法访问新表。该错误消息应该可以帮助您解决此问题。一些可能性:

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