python - Psycopg2 callproc 和 sql 参数

标签 python psycopg2 plpgsql

我得到了一些SQL函数

CREATE OR REPLACE FUNCTION tools.update_company(IN company_id integer, OUT value integer)
     RETURNS integer AS
 $BODY$

BEGIN 
select * into value from function_making_int(company_id)
END;$BODY$

并且来自 Psycopg2(如果重要的话它在 Django 中)我做

c = connection.cursor()
c.callproc('tools.update_company', [1, ])

但函数返回与我给出的完全相同的输入序列,忽略结果和 OUT 参数。更改为 IN OUT 并传递一些 foo 值不会改变任何内容。在数据库中调用时,SQL 函数按预期工作

最佳答案

好吧,我几乎没有做任何研究,而且我检查了 psycopg2 代码——这个函数的当前实现就是这样

select * from function_name(params)
return params

因此它不会以任何方式修改任何内容。

关于python - Psycopg2 callproc 和 sql 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3202763/

相关文章:

postgresql - := sql operator in pgsql function

python - 从python中的多值元素数组打印特定值

python - 斐波那契的 `a, b = b, a+b` 和 `a = b; b = a+b` 有什么区别

用于加载数据的 Python psycopg2 copy_from() 会抛出空整数值 : DataError: invalid input syntax for integer: "" 的错误

python-3.x - 如何使用 psycopg2.extras.execute_values 更新 ON CONFLICT

postgresql - 如何创建返回多行的 PL/pgSQL 函数

postgresql - 在 Postgresql 中使用表和拓扑名称作为参数的函数或循环

python - 如何从 "i view X"打开使用 "SMI"系统创建的 *.idf 眼动仪数据

python - 我无法完全理解这行代码

python - 使用 psycopg2 将类型转换应用于参数中的数组项