python - 在python中执行存储过程而不返回
问题描述
我正在使用此代码在 python 中执行 SP
conn = pymssql.connect(server="myServer", database="myDB", port="1433", user="myUser", password="myPwd")
pd.read_sql("EXEC MySP", conn)
conn.close()
但我得到这个错误
文件“C:\ProgramData\Anaconda3\lib\site-packages\pandas\io\sql.py”,第 1469 行,read_query 列 = [col_desc[0] for col_desc in cursor.description]
TypeError:“NoneType”对象不可迭代
在做了一些研究后,我发现错误的原因是由于没有来自 SP 的返回值。
好的,我的 SP 没有任何返回值,我只想按原样执行这个 SP。
无论如何我可以做到这一点而不会出现这个错误吗?
解决方案
试试这个:
import sqlalchemy
connection_string = 'mssql+pymssql://{username}:{password}@{host}:{port}/{database}'.format(username = <username>, password = <password>, host = <host>, port = <port>, database = <database>)
engine = sqlalchemy.create_engine(connection_string)
connection = engine.raw_connection()
try:
cursor = connection.cursor()
cursor.callproc('<procedure_name>')
cursor.close()
connection.commit()
finally:
connection.close()
您必须在连接字符串中输入用户名、密码等,并在 callproc 方法中输入您的过程名称作为参数。
推荐阅读
- javascript - 在浏览器中更改背景而不影响其余部分
- python - 将 django 变量传递给我的模板时遇到问题
- r - 我的样本中有多少个簇?在R中组合两个数据框
- c# - Complete Async 抛出消息锁定异常?
- javascript - 如何计算从聚合函数收到的响应总数
- python - 将列表中的文本与 json 属性 SPacy 匹配
- google-cloud-platform - 如何使用 Google Cloud SDK 列出所有 Cloud Functions?
- typo3 - TYPO3 9.5:不设置 Cookie 的联系表单垃圾邮件预防
- typescript - 是否可以根据数组值强类型化对象的键?
- sql-server - 使用变量 vs varchar 在 datepart 中产生不同的结果