mysql和Oracle 字符串长度限制

场景: 本来准备做一个 数据源测试自动化场景,就是将gdb里面的数据转入到 Mysql, Dameng,Oracle,GDB,PostgreSQL.

问题: gdb字符串读取出来的字符串字段长度为65535, 65535这个长度到其他数据源就很可能有问题, 具体如下: 如果文件数据源一般没问题, 如果是数据库数据源就可能有很大问题:

1: mysql 的Create table 语句最大长度为65535, 如有 新建表的sql语句过长会无法成功, 特别是字段使用varchar()类型, 会报错1118, 建议换成text或者blob

 

2: oracle 直接创建没有整个语句sql的长度限制,但是单个字段使用varchar 最大仅仅支持4000,超过就必须用其他类型

 

 

其他数据库sqlite, gdb, PostgreSQL暂未发现问题, 都可创建

但是内核 GsFieldType 类型对于字符串目前仅仅只有一个描述 eStringType, 无法区分varchar和text的类型, 后面将考虑内部处理 超过限制的创建为text, 未超的创建为varchar. 亦或者新增类型让用户选择创建.

综上所述: 基于各数据库的特性, 创建业务库的时候必须根据特定数据库特性来定义字段, 当然一般也不需要这么大字段长度.

发布了78 篇原创文章 · 获赞 7 · 访问量 3万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章