在python for SQL中执行cursor.execute
我需要脚本通过python代码和 在SQL中,输出即将到来,但在linux中,它会出现以下错误:在python for SQL中执行cursor.execute,python,odbc,pyodbc,Python,Odbc,Pyodbc,我需要脚本通过python代码和 在SQL中,输出即将到来,但在linux中,它会出现以下错误: >>> cursor.execute("select loginproperty('tibbr_db','DaysUntilExpiration')") Traceback (most recent call last): File "<stdin>", line 1, in <module> pyodbc.Error: ('ODBC data type
>>> cursor.execute("select loginproperty('tibbr_db','DaysUntilExpiration')")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
pyodbc.Error: ('ODBC data type -150 is not supported. Cannot read column .', 'HY000')
执行(“选择登录属性('tibbr\u db','daysuntileexpiration'))
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
pyodbc.Error:(“不支持ODBC数据类型-150。无法读取列”。,“HY000”)
将返回值显式转换为整数,通过更改以下查询来解决数据类型映射问题:
"select loginproperty('tibbr_db','DaysUntilExpiration')"
为此:
"select cast(loginproperty('tibbr_db','DaysUntilExpiration') as integer)"
SQL Server中的daysuntileexpiration
属性应始终返回一个整数,因此在显式转换中不会看到任何类型错误
ODBC类型
-150
看起来像SQL Server类型,pyodbc没有映射到python类型。@user3311501如果确实解决了问题,礼貌地将其标记为正确答案。:)如果您使用的是FreeTDS,如果您使用的是SQL Server,我建议您看看这个驱动程序;它的功能更加完整,性能更加出色: