Toh*_*Toh 7 python postgresql stored-procedures psycopg2 python-3.x
我在 Postgres 中有一个名为 的存储过程sales,它运行良好pgadmin:
CALL sales();
Run Code Online (Sandbox Code Playgroud)
但是,当我从 Python 调用它时:
import psycopg2
conn = psycopg2.connect (host ....)
cur = conn.cursor()
cur.callproc('sales')
conn.commit()
Run Code Online (Sandbox Code Playgroud)
我收到以下错误消息:
CALL sales();
Run Code Online (Sandbox Code Playgroud)
Luc*_*cas 12
假设您的程序称为销售,您只需要“调用”它,例如 CALL sales()
https://www.postgresql.org/docs/11/sql-call.html
我明白你在说什么,这里的 python 文档有误导性
“在 Python 步骤中调用 PostgreSQL 存储过程” http://www.postgresqltutorial.com/postgresql-python/call-stored-procedures/
本质上 callproc 目前已经过时(为 postgres 10 及以下版本编写)并且仍然认为过程是一个函数。所以除非他们更新这个,否则你需要在这个实例中像这样执行你自己的 SQL
cur.execute("CALL sales();")
或者如果销售程序需要输入:
cur.execute("CALL sales(%s, %s);", (val1, val2))
| 归档时间: |
|
| 查看次数: |
4553 次 |
| 最近记录: |