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

 

转载于:https://www.cnblogs.com/gc001279/p/9140994.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值