【发布时间】:2019-04-09 10:56:09
【问题描述】:
我需要使用我的 python 脚本中的特定值查询 SQL Db,这是我目前所拥有的:
conn = pyodbc.connect('<SQL-CREDENTIALS-HERE>')
# Create a cursor from the connection
crsr = conn.cursor()
sql = """\
DECLARE @DATA1 AS var_num;
DECLARE @DATA2 OUTPUT;
EXEC EXT_GetDATA
@DATA1,
@DATA2;
"""
crsr.execute(sql)
为此,我得到一个错误,指出 DATA1 是无效的数据类型,我在编写 sql 查询吗?请注意,var_num 是在脚本的前面提取的,此处未显示。
编辑:我也尝试了以下方法,但仍然没有运气:
conn = pyodbc.connect('')
# Create a cursor from the connection
crsr = conn.cursor()
sql = """\
DECLARE @DATA1 CHAR(20);
SET DATA1 = var_num;
DECLARE @DATA2 NVARCHAR;
EXEC EXT_GetDATA
@DATA1,
@DATA2 OUTPUT;
"""
crsr.execute(sql)
但是这仍然不起作用并返回错误:
Exception has occurred: ProgrammingError
(Invalid column name 'var_num'. (207) (SQLExecDirectW)")
谁能告诉我我做错了什么,我不想将var_num 设置为列名??
【问题讨论】:
-
请edit 将您的问题标记为您正在使用的特定数据库产品(例如,
sql-server用于 Microsoft SQL Server)。 -
@GordThompson 恐怕这不是我所知道的,我得到的关于数据库的信息很少,只有一些规范可以使用这个存储过程来查询它
-
你可以试试
SELECT @@VERSION AS ver看看它是否会返回任何有用的信息。 -
@GordThompson 欢呼,这已经消除了错误但没有返回任何信息]
-
试试
print(crsr.execute("SELECT @@VERSION AS ver").fetchval())
标签: python sql sql-server pyodbc