温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

ERROR [42000]杂谈

发布时间:2020-07-06 18:49:41 来源:网络 阅读:955 作者:black代码 栏目:编程语言

出错环境:windows server 2003+sqlserver2008 r2+odbc32

出错详情:System.Data.Odbc.OdbcException:ERROR [42000] [Microsoft][ODBC SQL Server Driver]

[SQL Server]字符串'7'后的引号不完整

如图:

ERROR [42000]杂谈

SQL语句如右:insert into 测试('张三','7 7 7 7 0 6 8','13580891274');

初步处理:

因为我写的程序,在执行insert语句,如果失败了,我把SQL语句写到了日志中。

所以,我在日志中,将这个执行失败的sql语句,手动复制到sqlserver 2008 中执行,成功了。

--------

那么问题就来了,为什么明明成功的sql语句,自己写程序会执行报错呢?

问题查询:

第一肯定是搜索问题,如果你搜索 ERROR [42000],很多大神会告诉你,这是保留字问题。

但是sql语句我手动复制到sqlserver2008能执行,所以排除。

深入思考:

到这里我们就得开始考虑字符问题了,毕竟表面上我们看到的没有任何问题,而且复制到sqlserver中也能执行。很多浮躁的哥们,肯定又开始骂微软,或者开始考虑是不是sqlserver的bug了ERROR [42000]杂谈

1,我将日志的sql语句【日志写出来的sql不能编辑,否则看不到原始的字符编码】,用UltraEdit打开,发现电话号码的字符既然有00,如图:

ERROR [42000]杂谈

再来看看 文本文档显示的情况:

ERROR [42000]杂谈

在文本文档中,00显示既然和空格无异。

【ps:00在windows表示中断,如果对00有更深的描述,欢迎留言指正】

解决问题:

既然问题发现了,那么解决就好办了,只需要把电话号码中的00编码去掉,即可。

替换方法[写的一个替换方法]

如有其他问题或建议,也欢迎企鹅号指教2446681809



附件:http://down.51cto.com/data/2365272
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI