由于页面大小,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|