1. 程式人生 > >SQL0670N 表的行長度超過 "4005" 位元組的限制。(表空間 "USERSPACE1"。)

SQL0670N 表的行長度超過 "4005" 位元組的限制。(表空間 "USERSPACE1"。)

 今天建立表的時候,提示如標題所示的錯誤,原因如下:

      資料庫管理器中表的行長度不能超過:
         *  在具有 4K 頁大小的表空間中,是 4005 位元組
         *  在具有 8K 頁大小的表空間中,是 8101 位元組。
         *  在具有 16K 頁大小的表空間中,是 16293 位元組。
         *  在具有 32K 頁大小的表空間中,是 32677 位元組。

 而userspace1的預設表空間大小為4kb的。資料頁在建立時就確定不能修改。

 只能建立一個更大的表空間來存放表,如下 :

     1:create tablespace tablespacename  pagesize 32k managed by database using (FILE 'D:/tablespacename/cont1' 2000)

    在使用上面的命令時,出現了表空間tablespacename的pagesize和與該空間相關聯的緩衝池"IBMDEFAULTBP"

 的pagesize不匹配。

     這是由於在建立表空間時,預設使用的ibmdefaultbp的bufferpool的pagesize是4k,建一個非4k的表空間時就要建一個相對應大小的pagesize的緩衝池,然後使用這個緩衝池。

     create bufferpool name size 1000 pagesize 16k

    然後再使用

    create tablespace tablespacename  pagesize 32k managed by database using (FILE 'D:/tablespacename' 10000)  bufferpool bp32k