博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Oracle]ORA-01461: can bind a LONG value only for insert into a LONG column
阅读量:6975 次
发布时间:2019-06-27

本文共 629 字,大约阅读时间需要 2 分钟。

使用oracle时,如果插入字符串超出字符串长度会报这一错误。因为VARCHAR2的oracle长度限制是4000,所以如果长度为4000还放不下,可以考虑将数据类型改为clob(character large object)类型。clob类型少于4000个字节,会与记录放在一起存储,超过4000个字符,就会分开存储,个人估计会在记录里计入分开存储的入口地址。clob最大支持4G字节。

但是oracle修改把列类型从varchar修改为clob类型,是会报错的,错误是ORA-22858: 数据类型的变更无效。

这时候只能将表数据备份后,删表重建。

-------------------分割线----------------

下面讲一下VARCHAR2长度的计算。

限定字符集SIMPLIFIED CHINESE_CHINA.ZHS16GBK(通过select userenv('language') from dual;)查看

此字符集下,英文字符占用字节数为1,中文字符占用字节数2。

而VARCHAR2的长度指的是字节数,VARCHAR2(4000)可以保存4000个英文字符或者2000个中文字符。

NVARCHAR2的长度指的是字符数,NVARCHAR只能保存AL16UTF16 or UTF8这两种字符集,最大支持2000个字符。

 

转载于:https://www.cnblogs.com/wendelhuang/p/7279265.html

你可能感兴趣的文章
基于r-Kernel的LiteOS操作系统
查看>>
更新ADT到Android L的方法
查看>>
C++ 经常使用类 string类
查看>>
Verilog与SystemVerilog编程陷阱:怎样避免101个常犯的编码错误
查看>>
PHPExcel使用-使用PHPExcel导出文件-导出MySQL数据
查看>>
【Struts2学习笔记(1)】Struts2中Action名称的搜索顺序和多个Action共享一个视图--全局result配置...
查看>>
程序猿面试什么最重要?
查看>>
(转)详解css3弹性盒模型(Flexbox)
查看>>
android TextView里边实现图文混配效果
查看>>
建立名称server
查看>>
Linux下的softlink和hardlink(转)
查看>>
C# 获取图片的EXIF 信息
查看>>
XSD标准架构-----<xsd:element> 元素详解
查看>>
元素多层嵌套,JS获取问题
查看>>
排序算法总结之堆排序
查看>>
mac中用命令行运行mysql
查看>>
Spring AOP AspectJ Pointcut Expressions With Examples--转
查看>>
php学习,一个简单的Calendar(2) 一个简单的活动页面
查看>>
java读取文件
查看>>
mysql之字符编码问题
查看>>