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. 亦或者新增类型让用户选择创建.

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值