- 方法一
一般情况下,此问题由于实际数据超过了 DM 数据库支持的大小范围,重点分析被迁移数据的数字类型字段 (INT、BIGINT、NUMBER),找到造成引起报错的字段后,观察数据可以考虑将字段改为 BIGINT 或者 VARCHAR 字符字段以规避错误。
各数据类型范围详情可以参考《DM_SQL 语言使用手册》第一章 1.4.1 节内容(手册位于数据库安装路径 /dmdbms/doc 文件夹下)。
INTEGER 类型:-2147483648 (-2^31)~ +2147483647(2^31-1)。 |
- 方法二
默认 8 KB 的页大小情况下,字符类型无法创建超过 3900 长度的表。需要重新初始化数据库实例,对页大小进行调整。需要注意的是:这个限制长度只针对建表的情况,在定义变量的时候,可以不受这个限制长度的限制。
| 页大小 | 字符类型实际最大长度 |
|---|---|
| 4k | 1900 |
| 8k | 3900 |
| 16k | 8000 |
| 32k | 8188 |
两个建库参数有影响,一个字符集,一个“长度以字符为单位”。
比如 oracle 中的 nvarchar2(50) 这个类型,表示该字段类型为 nvarchar2,长度为 50,不论英文、数字、中文都能存 50 个。在 DM 数据库中,如果长度以字符为单位这个参数建库的时候选了否,UNICODE 字符集,nvarchar2(50) 还是只能存 16 个中文。
- 方法三
在有表结构的基础上,将报错的表【启用超长记录】打开。
- 方法四
找到超过限定列长度的字符类型,改为 Text。这种方式是在有表结构的基础上,且可以确认到记录超长字段,设置【字符类型】为 Text。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




