首页 > 解决方案 > 使用 python 从 Pyodbc 获取存储过程的输出

问题描述

我正在尝试从 Python 执行存储过程,但是当我运行它时,我无法从游标中获取输出。

import pyodbc
import math
import requests
import pandas as pd
cnx  = pyodbc.connect('DRIVER={SQL Server};SERVER=xxxx;DATABASE=xxxx;UID=xxxxx;PWD=Minonja')

SQL_send_data="""

DECLARE 
              @messageStatus nvarchar(200)

SELECT @messageStatus = N'@messageStatus'

EXEC   [cvm].[CVMSendSms_sp]
              @userId = N'PT180209.1100.628362',
              @codeSms = 79,
              @messageStatus = @messageStatus OUTPUT,
              @date = '',
              @amount = N'0'

SELECT convert(varchar,@messageStatus) as reponse


"""
cursor = cnx.cursor()
cursor.execute(SQL_send_data)
cursor.fetchval()  
print(cursor)
cnx.commit()
cursor.close()

我收到以下错误:

ProgrammingError: 没有结果。以前的 SQL 不是查询。

请帮忙!我尝试了很多方法,但我无法修复此错误

标签: pythonsqlsql-serverstored-procedures

解决方案


推荐阅读