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)

版权声明:本文为weixin_43514003原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。