我无法从Django
调用STORED Procedure
。我可以从正常的python
程序调用useSTORED Procedure
。
示例工作python
代码
cursor = connect.cursor()
params=('IBM','2016')
cursor.execute("EXEC SP_Competitor_Extract ?, ? ",params)
这段代码运行得很好。但是当我试图从Django
执行时,它不起作用。在
这给了我一个错误消息not all arguments converted during string formatting
它现在在
PYodbc
中工作,没有callproc
。你可以直接传递这个论点。你不需要占位符。在我的例子中,cursor.execute("{call SP_Competitor_Extract IBM,2016}")
起作用了。我得到的所有值都是variable
,并创建SQL
。cursor.execute(SQL)
Django的内部
.cursor()
方法与pyodbc的方法不同。试试这个:有关更多信息,文档在这里很好地介绍了它:https://docs.djangoproject.com/en/1.11/topics/db/sql/#executing-custom-sql-directly
另一个选项是从
pyodbc
导入connection
,并像在Python中那样使用DjangoDATABASES
设置变量手动创建连接。祝你好运!在相关问题 更多 >
编程相关推荐