ORA-01406:提取的列值被截断 ; SQL Server :将截断字符串或二进制数据


oracle 数据库可以正常连接,表数据也可以正常读取,

但在程序中相同的位置,有时会报错,有时不会报错,有的电脑会报错,有的不会

报错内容为 ORA-01406:提取的列值被截断

查了网上提供的一些解决办法,都不奏效

最终解决办法:

app.config 文件的 connectionString  添加如下两个字段属性可解决

问了下大神理论解释:

 

SQL环境类似问题:System.Data.SqlClient.SqlException (0x80131904): 将截断字符串或二进制数据。语句已终止。

开始以为是直接相关的A表XML字段问题,但百度了下,发现XML字段最大存储量可达2GB,我的录入内容远没达到这么多,varchar(max)最大存储量同XML,但XML主要针对XML数据,处理起来更方便,况且A表字段一直都是XML类型,再大内容也存储过,所以应该不是A表字段类型问题。想到上面oracle的类似错误,我看了下自己的程序配置文件,发现字符编码没有写完整,于是补充上去,但依然报错。

再研究日志发现,是B表报的错,保存操作在向A表XML字段存储内容后,又将XML元素内容拆分 并分别存到B表的【元素值】字段,该字段类型为varchar(256),不足以存储内容,所以将该字段改大一点(最大max)则不报错了。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM