【发布时间】:2021-04-23 03:25:01
【问题描述】:
在 DB2 LUW 版本 11.x 中,数据库实例的我的页面大小为 8k。
我正在尝试创建数据类型长度为 varchar(32000) 的表。
它向我抛出错误 DB2 SQL 错误:SQLCODE=-670, SQLSTATE=54010, SQLERRMC=32677;;65813
我是否需要增加页面大小或任何其他数据库配置
【问题讨论】:
标签: db2
在 DB2 LUW 版本 11.x 中,数据库实例的我的页面大小为 8k。
我正在尝试创建数据类型长度为 varchar(32000) 的表。
它向我抛出错误 DB2 SQL 错误:SQLCODE=-670, SQLSTATE=54010, SQLERRMC=32677;;65813
我是否需要增加页面大小或任何其他数据库配置
【问题讨论】:
标签: db2
您可以使用extended_row_sz 数据库参数来允许在您当前的表空间中创建这样的表。
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|
【讨论】:
没有在实例级别定义页面大小。数据库本身有一个默认页面大小,但页面大小可以在表空间级别设置/覆盖。
查看CREATE TABLESPACE 并使用相应的PAGESIZE(页面大小32K)并为您的表创建一个新的表空间和缓冲池。
【讨论】:
extended_row_sz。 extent size 不相关。