一、修改表字段长度
[db2inst2@localhost ~]$ db2 "alter table tb1 alter column3 set data type char(40)"
DB20000I SQL 命令成功完成。
二、查看表REORG状态
[db2inst2@localhost ~]$ db2 "SELECT TABSCHEMA, TABNAME, NUM_REORG_REC_ALTERS, REORG_PENDING FROM SYSIBMADM.ADMINTABINFO where tabname='TB1'"
TABSCHEMA TABNAME NUM_REORG_REC_ALTERS REORG_PENDING
-------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------- -------------------- -------------
DB2INST2 TB1 1 Y
1 条记录已选择。
三、插入数据测试
[db2inst2@localhost ~]$ db2 "insert into tb1 values(1,3,'234')"
DB21034E 该命令被当作 SQL
语句来处理,因为它是无效的“命令行处理器”命令。在 SQL
处理期间,它返回:
SQL0668N 不允许对表 "DB2INST2.TB1" 执行操作,原因码为 "7"。
SQLSTATE=57016
[db2inst2@localhost ~]$ db2 "select * from tb1"
COLUMN1 COLUMN2 COLUMN3
----------- ----------- ----------------------------------------
40 0 -
40 0 -
40 0 -
40 0 -
40 0 -
40 0 -
40 0 -
40 0 -
40 0 -
30 0 -
40 0 -
11 条记录已选择。
四、重组表并重新插入纪录测试
[db2inst2@localhost ~]$ db2 "reorg table tb1"
DB20000I REORG 命令成功完成。
[db2inst2@localhost ~]$ db2 "insert into tb1 values(1,3,'234')"
DB20000I SQL 命令成功完成。
[db2inst2@localhost ~]$
[db2inst2@localhost ~]$
五、检看表状态
[db2inst2@localhost ~]$ db2 "SELECT TABSCHEMA, char(tabname,20) tabname01, NUM_REORG_REC_ALTERS, REORG_PENDING FROM SYSIBMADM.ADMINTABINFO where tabname='TB1'"
TABSCHEMA TABNAME01 NUM_REORG_REC_ALTERS REORG_PENDING
-------------------------------------------------------------------------------------------------------------------------------- -------------------- -------------------- -------------
DB2INST2 TB1 0 N
1 条记录已选择。
阅读(4765) | 评论(0) | 转发(0) |