postgresql中存储过程输入输出
postgresql不区分存储过程和函数,即这两个是一个东西。存储过程通常用于比较复杂的操作中。
创建存储过程时
create (or replace) function 存储过程名称
这个or replace是如果存在同名的存储过程则替换,如果是第一次创建这个存储过程的话可以不加or replace
存储过程是可以传入和传出参数的。
create function (arg1 int,out arg2 int,out arg3 int) as $$
begin
中间是操作过程
end;
$$ language plpgsql;
这其中第一个参数arg1就是要输入的参数,后面arg2,arg3都是要输出的参数。可以有多个,且传出参数不需要声明直接可以用变量arg2和arg3的,不需要存储过程returns。
下面例子是postgresql中运行的,从repertory表中提取数据bookname和price并输出
下面是检验存储过程,可以看到输出。
但是这样的输出是在一个表格里,我们想要以表形式输出怎么办呢?
下面是返回表
可以看到其实是一样的,即output和return效果是一样的。