cry*_*tik 2 python sql-server sqlalchemy pyodbc
尝试将python sqlalchemy连接到msssql服务器/数据库时,我一直遇到一个奇怪的错误.我需要使用sqlalchemy(从我被告知)将pandas数据帧连接到mssql的唯一方法.
我尝试过两种不同的方式连接sqlalchemy:
使用完整连接字符串:
import sqlalchemy as sa
import urllib.parse as ulp
usrCnnStr = r'DRIVER={SQL Server};SERVER=myVoid\MYINSTANCE;Trusted_Connection=yes;'
usrCnnStr = ulp.quote_plus(usrCnnStr)
usrCnnStr = "mssql+pyodbc:///?odbc_connect=%s" % usrCnnStr
engine = sa.create_engine(usrCnnStr)
connection = engine.connect()
connection.execute("select getdate() as dt from mydb.dbo.dk_rcdtag")
connection.close()
Run Code Online (Sandbox Code Playgroud)使用DSN:
import sqlalchemy as sa
import urllib.parse as ulp
usrDsn = 'myDb'
params = ulp.quote_plus(usrDsn)
engine = sa.create_engine("mssql+pyodbc://cryo:pass@myDb")
conn = engine.connect()
conn.execute('select getdate() as dt')
conn.close()
Run Code Online (Sandbox Code Playgroud)两种方法都返回相同的错误:
sqlalchemy.exc.DBAPIError: (pyodbc.Error) ('ODBC data type -150 is not supported. Cannot read column .', 'HY000') [SQL: "SELECT SERVERPROPERTY('ProductVersion')"]
Run Code Online (Sandbox Code Playgroud)
我不知道如何解决这个错误; 当我在mssql中执行"SELECT SERVERPROPERTY('ProductVersion')"时,它工作正常但返回的数据类型为"sql_variant".
有没有办法解决这个问题?
| 归档时间: |
|
| 查看次数: |
1089 次 |
| 最近记录: |