如何在python中处理postgres存储过程输出参数

时间:2015-04-09 16:30:52

标签: python postgresql psycopg2

我有一个postgres程序,该程序使用了参数。 如何在python中使用out参数值。

create or replace procedure test(id number,result out varchar2)
as
begin
result := 'Saud';
end;

我想从python调用上面的程序。

如何使用out参数从python调用该过程。

2 个答案:

答案 0 :(得分:0)

使用psycopg2

  • 连接数据库

    conn = psycopg2.connect("dbname=mydb")
    
  • 创建游标

    curs = conn.cursor()
    
  • 执行SQL,如:

    curs.execute("SELECT test(%s)", (1,))
    
  • 获取结果

    row = curs.fetchone()
    print row[0]
    

有关详细信息,请参阅the psycopg2 documentation and tutorial。您还应该阅读Python DB-API documentation

答案 1 :(得分:0)

考虑这样的过程

create or replace procedure test(in one integer, in two integer, inout three integer)
language plpgsql
as
$$
begin
three:=one+two;
end
$$

要对psycopg2执行此过程,请使用以下格式。

conn = psycopg2.connect("dbname='yourdbname' user='youruser' host='yourhostname' 
password='yourpassword'")
cursor=conn.cursor()
cursor.execute("call public.test(%s,%s,%s)",(1,2,three))
result = cursor.fetchone()
print(result[0])

这应该打印3。问题是您必须绑定所有过程参数。希望对您有帮助。...