SqlServer、Oracle数据库超长字符串无法入库解决方案

以下文档为部署过程中总结的,如有错误的地方或者更合适的方法希望直接修改或者评论告知,也可补充其他数据库的用法

SQLserver对于超过8000的字符串想要入库,无法直接使用insert into 字符串
Oracle对于超过32767的字符串无法给clob赋值

SQLserver

SQLserver可以直接采用变量形式入库

DECLARE @param varchar(max)
SET @param = '超过8000的字符串'

insert into 表名(字段名) values(@param)

Oracle

由于Oracle默认缓冲区只能存放32767个字符,故在赋值过程中,如果将大于32767的字符串传给变量将会报字符串过长的错误
方法一:增大缓冲区(未验证)

方法二:采用多个变量拼接方式入库(验证通过)

--每个变量可保存的字符串长度应小于32767个字符
DECLARE param0 clob := '超长字符串1';
param1 clob := '超长字符串2';

insert into 表名(字段名) values(param0||param1)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值