Django Pyodbc存储过程不是所有参数在字符串格式化期间转换为1 Sql s

2024-10-02 12:31:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我无法从Django调用STORED Procedure。我可以从正常的python程序调用useSTORED Procedure。 示例工作python代码

cursor = connect.cursor()
params=('IBM','2016')
cursor.execute("EXEC SP_Competitor_Extract ?, ? ",params)

这段代码运行得很好。但是当我试图从Django执行时,它不起作用。在

^{pr2}$

这给了我一个错误消息not all arguments converted during string formatting

enter image description here


Tags: django代码程序示例executeconnectparamsibm
2条回答

它现在在PYodbc中工作,没有callproc。你可以直接传递这个论点。你不需要占位符。在我的例子中,cursor.execute("{call SP_Competitor_Extract IBM,2016}")起作用了。我得到的所有值都是variable,并创建SQLcursor.execute(SQL)

Django的内部.cursor()方法与pyodbc的方法不同。试试这个:

cursor.execute(
    "EXEC SP_Competitor_Extract %s, %s",
    [params]
)

有关更多信息,文档在这里很好地介绍了它:https://docs.djangoproject.com/en/1.11/topics/db/sql/#executing-custom-sql-directly

另一个选项是从pyodbc导入connection,并像在Python中那样使用DjangoDATABASES设置变量手动创建连接。祝你好运!在

相关问题 更多 >

    热门问题