- 构造数据
drop table if exists test cascade;
create table test(id int, name varchar);
insert into test values(1,'a'),(2,'b');
select * from test;
- 实例1
CREATE OR REPLACE FUNCTION func_test()
RETURNS INTEGER AS
$BODY$
DECLARE
v_name varchar;
BEGIN
select name from test where id=1 into v_name ;
raise notice 'v_name=%',v_name;
return 0;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
- 实例2
CREATE OR REPLACE FUNCTION func_test2()
RETURNS INTEGER AS
$BODY$
DECLARE
v_name varchar;
BEGIN
insert into test values(3,'c') returning name into v_name;
raise notice 'v_name=%',v_name;
return 0;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
- 结果
imos=# select * from func_test();
imos=# NOTICE: v_name=a
func_test
-----------
0
(1 row)
imos=# select * from func_test2();
NOTICE: v_name=c
func_test2
------------
0