找回密码
 立即注册

QQ登录

只需一步,快速开始

szywxjinaj
金牌服务用户   /  发表于:2021-6-8 18:46  /   查看:5301  /  回复:13
20金币
后台返回json数据,erp数据多的时候json串肯定会截断的,活字格这里有好的方法处理吗?

最佳答案

查看完整内容

一般数据库的字段都是有一个最大长度限制的,oracle是4000, 大于4000就会被数据库自动截断,一般对于这种问题的处理就是对于可能超出的数据, 事先加一个判断,如果大于这个最大限制,就自己处理给截断然后存到两个或者三个字段里。

13 个回复

倒序浏览
最佳答案
最佳答案
Joe.xu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2021-6-8 18:46:50
来自 12#

一般数据库的字段都是有一个最大长度限制的,oracle是4000,
大于4000就会被数据库自动截断,一般对于这种问题的处理就是对于可能超出的数据,
事先加一个判断,如果大于这个最大限制,就自己处理给截断然后存到两个或者三个字段里。
回复 使用道具 举报
mfkpie8
银牌会员   /  发表于:2021-6-8 18:51:46
2#
那你改为long varchar 最长可以2G的长度也!
回复 使用道具 举报
szywxjinaj
金牌服务用户   /  发表于:2021-6-9 09:05:54
3#
mfkpie8 发表于 2021-6-8 18:51
那你改为long varchar 最长可以2G的长度也!

sqlserver 中没有这种类型定义法呀
回复 使用道具 举报
David.Zhong讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-6-9 09:16:07
4#
szywxjinaj 发表于 2021-6-9 09:05
sqlserver 中没有这种类型定义法呀

如果只是存储文本内容,用text/netxt,text/ntext是以字符型存储数据的;
如果是存储整个文件,用image,image是按二进制存储数据的。
回复 使用道具 举报
szywxjinaj
金牌服务用户   /  发表于:2021-6-9 12:11:15
5#
David.Zhong 发表于 2021-6-9 09:16
如果只是存储文本内容,用text/netxt,text/ntext是以字符型存储数据的;
如果是存储整个文件,用image,i ...

老铁,我试了下text存储过程里面还是要用varchar(max)替代text类型,哎,数据一多还是会截断,但凡字段名长点贼占空间
回复 使用道具 举报
Eric.Liang讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2021-6-9 18:40:10
6#
我其实有个小疑问哈,你指的后台JSON,是存到数据库里的字符串么,还是说请求的返回值?截断是指的数据库字段截断,还是说返回值想要操作的时候截断,有没有一个DEMO,最后能带上外联数据库的备份让我们看下
回复 使用道具 举报
szywxjinaj
金牌服务用户   /  发表于:2021-6-10 09:20:21
7#
Eric.Liang 发表于 2021-6-9 18:40
我其实有个小疑问哈,你指的后台JSON,是存到数据库里的字符串么,还是说请求的返回值?截断是指的数据库字 ...

指的是后台数据库数据需要转换成json格式,他这个待转换的数据一多必然会截断;我这边使用了varchar(max)类型数据库到八千还是会截断的大佬
回复 使用道具 举报
szywxjinaj
金牌服务用户   /  发表于:2021-6-10 11:57:19
8#
大佬存储过程附上,您那边返回数据量很多,超过八千是如何处理的呢?我这2012版本的varchar(max)也解决不了这个问题
回复 使用道具 举报
VVANVI悬赏达人认证
论坛元老   /  发表于:2021-6-10 12:00:53
9#
关系型数据库 一个 字段 长度超过8K ,证明技术栈都选错了
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部