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)则不报错了。

 

posted @ 2018-06-05 17:45  竹林逸雪  阅读(18756)  评论(0编辑  收藏  举报