我有一个查询,我可以在Microsoft SQL Server Management Studio应用程序中成功运行。它按我的预期输出数据。
然而,当我尝试通过Python运行脚本时,它总是会抛出错误。
我首先创建了一个通用的sql reader函数:
def sql_reader_single(qry_file, server_name, database):
server = db.connect(str('DRIVER={SQL Server};
SERVER='+server_name+';
DATABASE='+database+';'))
qry = open(qry_file, 'r').read()
data = pd.read_sql(qry, server)
return data
然后我尝试调用上面的函数来读取我的sql脚本:
dir = 'C:/Users/Documents/qry'
QryFile = os.path.join(dir, 'qry clean no comment.sql')
Data = sp.sql_reader_single(qry_file=QryFile, server_name='server1', database='db2')
当我调用read.sql()函数时,我总是会收到以下错误:
': ('42000', "[42000] [Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near 'l'. (102) (SQLExecDirectW)")
' 1'是我的查询脚本中的最后一个字符。 所以错误信息是说我的脚本的最后一个字符附近有语法错误。
由于查询确实在SQL Server studio中成功运行,这消除了我的查询语法错误的假设,这是错误消息所暗示的。
这是我尝试运行的示例查询,但会收到以上错误代码:
SELECT distinct
[ShipmentId]
,shipmentstatus
FROM shipmentstatus
我还通过Google搜索查看了许多其他链接,但我没有收到任何有用的提示。任何帮助表示赞赏!