注册
记录超长问题解决方法
专栏/Database Thinking/ 文章详情 /

记录超长问题解决方法

胡li 2022/05/20 3017 3 0
摘要 -

错误描述

在迁移数据或者插入的过程中报记录超长,报错类似如下截图:
image.png

问题分析

先查下数据库页大小

select page();

比对报错的表varchar类型的总长度是否超过页大小的总长度
image.png
如页面大小为8k的库,插入4000的长度到字段类型为varchar2时,报记录超长
image.png
页面大小为16k的库,插入8000长度的内容到字段类型为varchar2,报记录超长
image.png
页面大小为32k的库,插入8159长度的内容到字段类型为varchar2,报字符串截断
image.png

解决办法

方法一:

我们可以将数据库重新初始化,将页大小设置为32,如

./dminit path=/opt/dmdbms/data page_size=32

输入./dminit help查看帮助。

方法二:

可以使用以下SQL开启某张表的超长记录

alter table tablename enable using long row;

或者在管理工具界面右击表名-存储选项-启用超长记录
image.png

使用方法一是解决全库的思路;方法二是针对不方便初始化数据库,仅针对某张表去解决。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服