页面大小导致的Db2表创建问题

页面大小导致的Db2表创建问题,db2,Db2,在DB2LUWversion11.x中,我的数据库实例页面大小为8k 我正在尝试使用数据类型length varchar(32000)创建表 它向我抛出一个错误db2sqlerror:SQLCODE=-670,SQLSTATE=54010,SQLERRMC=32677;;65813 是否需要增加页面大小或任何其他数据库配置实例级别上没有定义页面大小。数据库本身有一个默认页面大小,但是可以在表空间级别设置/覆盖页面大小 签出并使用相应的PAGESIZE(PAGESIZE 32K)并为表创建新的表空

在DB2LUWversion11.x中,我的数据库实例页面大小为8k

我正在尝试使用数据类型length varchar(32000)创建表

它向我抛出一个错误db2sqlerror:SQLCODE=-670,SQLSTATE=54010,SQLERRMC=32677;;65813


是否需要增加页面大小或任何其他数据库配置

实例级别上没有定义页面大小。数据库本身有一个默认页面大小,但是可以在表空间级别设置/覆盖页面大小

签出并使用相应的PAGESIZE(PAGESIZE 32K)并为表创建新的表空间和缓冲池。

您可以使用数据库参数在当前表空间中创建这样的表

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|

不可以。这只是意味着您的数据库还没有页面大小为32KB的表空间(和匹配的缓冲池)。这是正常的。创建这两个对象(缓冲池和表空间),然后在新表空间中创建新表。我可以扩展EXTENTSIZE参数吗?目前是4。“它会起作用吗?”毛-在较低的环境中。我的页面大小是4k,数据块大小是32,但此表仍然是在其中创建的,然后工作环境已经有了相应大小的表空间/缓冲池,或者已经按照Mark Barinstein的回答配置了
扩展的表空间/缓冲池。
数据块大小
是不相关的