溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ERROR [42000]雜談

發(fā)布時間:2020-07-06 18:49:41 來源:網(wǎng)絡 閱讀:954 作者:black代碼 欄目:編程語言

出錯環(huán)境: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');

初步處理:

因為我寫的程序,在執(zhí)行insert語句,如果失敗了,我把SQL語句寫到了日志中。

所以,我在日志中,將這個執(zhí)行失敗的sql語句,手動復制到sqlserver 2008 中執(zhí)行,成功了。

--------

那么問題就來了,為什么明明成功的sql語句,自己寫程序會執(zhí)行報錯呢?

問題查詢:

第一肯定是搜索問題,如果你搜索 ERROR [42000],很多大神會告訴你,這是保留字問題。

但是sql語句我手動復制到sqlserver2008能執(zhí)行,所以排除。

深入思考:

到這里我們就得開始考慮字符問題了,畢竟表面上我們看到的沒有任何問題,而且復制到sqlserver中也能執(zhí)行。很多浮躁的哥們,肯定又開始罵微軟,或者開始考慮是不是sqlserver的bug了ERROR [42000]雜談。

1,我將日志的sql語句【日志寫出來的sql不能編輯,否則看不到原始的字符編碼】,用UltraEdit打開,發(fā)現(xiàn)電話號碼的字符既然有00,如圖:

ERROR [42000]雜談

再來看看 文本文檔顯示的情況:

ERROR [42000]雜談

在文本文檔中,00顯示既然和空格無異。

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

解決問題:

既然問題發(fā)現(xiàn)了,那么解決就好辦了,只需要把電話號碼中的00編碼去掉,即可。

替換方法[寫的一個替換方法]

如有其他問題或建議,也歡迎企鵝號指教2446681809



附件:http://down.51cto.com/data/2365272
向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI