出现这个问题的就是说你整行的字段超过了你表空间的长度。
什么是表空间呢——表空间就是你create的table的时候
create table 名字 (属性)in 表空间
一般也不会自己去加 都是用默认的 你查看表的创建源码就能看到
默认的表空间 一般叫userspace1 默认大小是4k
这个默认大小就导致了出现这个问题
也就是说 默认状态下 整一行 所有字段长度的和不能超过4005
数据库管理器中表的行长度不能超过:
* 在具有 4K 页大小的表空间中,是 4005 字节
* 在具有 8K 页大小的表空间中,是 8101 字节。
* 在具有 16K 页大小的表空间中,是 16293 字节。
* 在具有 32K 页大小的表空间中,是 32677 字节。
而userspace1的默认表空间大小为4kb的。数据页在创建时就确定不能修改。
只能创建一个更大的表空间来存放表。
解决办法:
备份以前的数据 防止丢失
然后重新创建这张表在更大的表空间上
创建表空间:如果直接这样创建:
1:create tablespace 表空间名字 pagesize 16k managed by database using (FILE ‘D:/tablespacename/cont1’ 1000)
在使用上面的命令时,出现了表空间tablespacename的pagesize和与该空间相关联的缓冲池"IBMDEFAULTBP"
的pagesize不匹配。
这是由于在创建表空间时,默认使用的ibmdefaultbp的bufferpool的pagesize是4k,建一个非4k的表空间时就要建一个相对应大小的pagesize的缓冲池,然后使用这个缓冲池。
create bufferpool 缓冲池名字 size 1000 pagesize 16k
然后再使用
create tablespace 表空间名字 pagesize 16k managed by database using (FILE 'D:/tablespacename' 10000) bufferpool 缓冲池名字
file后面的存放路径自己定义就好