pymssql ntext字段調(diào)用問題解決方法
下面是調(diào)用方式:
Example script - pymssql module (DB API 2.0)
Example script - _mssql module (lower level DB access)
不過,在我使用過程中,發(fā)現(xiàn),如果表中包含了ntext字段,就會出錯,提示
不能用 DB-Library(如 ISQL)或 ODBC 3.7 或更早版本將 ntext 數(shù)據(jù)或僅使用
Unicode排序規(guī)則的 Unicode 數(shù)據(jù)發(fā)送到客戶端。
查了一下,發(fā)現(xiàn)官方網(wǎng)站有解釋:
Q: What means "Unicode data in a Unicode-only collation or ntext data cannot be sent to clients using DB-Library"?
A: If you connect to a SQL Server 2000 SP4 or SQL Server 2005, and if you make a SELECT query on a table that contains a column of type NTEXT, you may encounter the following error:
_mssql.error: SQL Server message 4004, severity 16, state 1, line 1:
Unicode data in a Unicode-only collation or ntext data cannot be sent to clients using DB-Library (such as ISQL) or ODBC version 3.7 or earlier.
It's the SQL Server complaining that it doesn't support pure Unicode via TDS or older versions of ODBC. There's no fix for this error. Microsoft has deprecated DB-Library a long ago, in favor of ODBC, OLE DB, or SQL Native Client. Many new features of SQL 2005 aren't accessible via DB-Library so if you need them, you have to switch away from pymssql or other tools based on TDS and DB-Library.A workaround is to change the column type to NVARCHAR (it doesn't exhibit this behaviour), or TEXT.
大概意思是,這是因?yàn)槲覀兊膒ymssql使用早期的ODBC函數(shù)集來獲取數(shù)據(jù)。后來微軟才引入了ntext和nvarchar類型,但Microsoft并沒有更新他們的 C-library,所以就沒辦法支持了。建議:將ntext修改為nvarchar或text.
顯然,這不是個好的解決方法,那么是否就沒有其他辦法了呢?
還好,不用絕望,既然不支持ntext但支持text,那么我們只需要在輸出時將ntext轉(zhuǎn)換為text就好了,方法很簡單:
SELECT cast ( field_name AS TEXT ) AS field_name
唯一的問題,可能是ntext和text字段所支持的長度不一樣,所以也許你還需要設(shè)置一下TEXTSIZE
SET TEXTSIZE 65536
當(dāng)然,你還可以將字段設(shè)置的大一點(diǎn),這個就看你的需要了。
相關(guān)文章
基于Python和Tkinter實(shí)現(xiàn)高考倒計(jì)時功能
隨著高考的臨近,每個考生都在緊鑼密鼓地復(fù)習(xí),這時候,一款實(shí)用的倒計(jì)時軟件能有效幫助你規(guī)劃剩余時間,提醒你不要浪費(fèi)每一分每一秒,今天,我們來聊聊一款基于Python和Tkinter開發(fā)的高考倒計(jì)時軟件,功能簡單卻極具實(shí)用性,讓你在緊張的備考過程中不再迷失2025-03-03
Python2比較當(dāng)前圖片跟圖庫哪個圖片相似的方法示例
這篇文章主要介紹了Python2比較當(dāng)前圖片跟圖庫哪個圖片相似的方法,結(jié)合實(shí)例形式分析了Python文件目錄操作及圖形運(yùn)算相關(guān)使用技巧,需要的朋友可以參考下2019-09-09
Django中celery執(zhí)行任務(wù)結(jié)果的保存方法
今天小編就為大家分享一篇Django中celery執(zhí)行任務(wù)結(jié)果的保存方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07
Python 帶有參數(shù)的裝飾器實(shí)例代碼詳解
這篇文章主要介紹了Python 裝飾器,帶有參數(shù)的裝飾器實(shí)例代碼詳解,代碼簡單易懂,非常不錯,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-12-12
Python獲取Redis所有Key以及內(nèi)容的方法
今天小編就為大家分享一篇Python獲取Redis所有Key以及內(nèi)容的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-02-02
Python的Pandas庫中使用DataFrame篩選和刪除含特定值的行與列
Pandas是一個強(qiáng)大的數(shù)據(jù)處理庫,提供了各種功能來操作和處理數(shù)據(jù),這篇文章主要給大家介紹了關(guān)于Python的Pandas庫中使用DataFrame篩選和刪除含特定值的行與列的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-05-05

