我正在研究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
答案 0 :(得分:2)
任何进一步的选择查询要求" reorg"该表。
这在DB2中更改表后很常见。它应该通过调用:
来解决reorg table table-name;
这是命令行命令,而不是sql语句,但您可以使用admin_cmd
过程通过SQL调用它:
call sysproc.admin_cmd('reorg table table-name');
我不确定您为何无法访问新表。该错误消息应该可以帮助您解决此问题。一些可能性: