由于页面大小,Db2 table 创建问题
Db2 table creation issue due to page size
在 DB2 LUW 版本 11.x 中,我的数据库实例的页面大小为 8k。
我正在尝试创建数据类型长度为 varchar(32000) 的 table。
它向我抛出错误 DB2 SQL Error: SQLCODE=-670, SQLSTATE=54010, SQLERRMC=32677;;65813
我是否需要增加页面大小或任何其他数据库配置
没有在实例级别定义页面大小。数据库本身有默认页面大小,但可以在 table 空间级别设置/覆盖页面大小。
查看 CREATE TABLESPACE 并使用相应的 PAGESIZE(页面大小 32K)并为您的 table 创建一个新的 table 空间和缓冲池。
您可以使用 extended_row_sz 数据库参数来允许在您当前的 table 空间中创建这样一个 table。
SELECT VALUE FROM SYSIBMADM.DBCFG WHERE NAME = 'extended_row_sz';
|VALUE |
|------|
|ENABLE|
SELECT PAGESIZE FROM SYSCAT.TABLESPACES WHERE TBSPACE='USERSPACE1';
|PAGESIZE|
|--------|
|8192 |
CREATE TABLE TEST_EXTROW (I INT, C VARCHAR(32000)) IN USERSPACE1;
INSERT INTO TEST_EXTROW (I, C) VALUES (1, 'short'), (2, repeat('long', 7000));
SELECT LENGTH(C) LEN FROM TEST_EXTROW;
|LEN |
|-----|
|5 |
|28000|
在 DB2 LUW 版本 11.x 中,我的数据库实例的页面大小为 8k。
我正在尝试创建数据类型长度为 varchar(32000) 的 table。
它向我抛出错误 DB2 SQL Error: SQLCODE=-670, SQLSTATE=54010, SQLERRMC=32677;;65813
我是否需要增加页面大小或任何其他数据库配置
没有在实例级别定义页面大小。数据库本身有默认页面大小,但可以在 table 空间级别设置/覆盖页面大小。
查看 CREATE TABLESPACE 并使用相应的 PAGESIZE(页面大小 32K)并为您的 table 创建一个新的 table 空间和缓冲池。
您可以使用 extended_row_sz 数据库参数来允许在您当前的 table 空间中创建这样一个 table。
SELECT VALUE FROM SYSIBMADM.DBCFG WHERE NAME = 'extended_row_sz';
|VALUE |
|------|
|ENABLE|
SELECT PAGESIZE FROM SYSCAT.TABLESPACES WHERE TBSPACE='USERSPACE1';
|PAGESIZE|
|--------|
|8192 |
CREATE TABLE TEST_EXTROW (I INT, C VARCHAR(32000)) IN USERSPACE1;
INSERT INTO TEST_EXTROW (I, C) VALUES (1, 'short'), (2, repeat('long', 7000));
SELECT LENGTH(C) LEN FROM TEST_EXTROW;
|LEN |
|-----|
|5 |
|28000|