PostgreSQL function里面调用function

前端之家收集整理的这篇文章主要介绍了PostgreSQL function里面调用function前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

1. 调用无参无返回值的function

  1. create or replace function func01()returns void as $$ begin raise notice ' from func01(): hello PG';
  2. end ;
  3. $$language plpgsql;
  1. create or replace function func02() returns void as $$ begin perform func01();
  2. end;
  3. $$language plpgsql;

运行:

  1. select func02();
  2.  
  3. 注意: from func01(): hello PG
  4. CONTEXT: sql statement "SELECT func01()"
  5. PERFORM的第3行的PL/pgsql函数"func02"
  6.  
  7. 查询总耗时: 14 ms.
  8. 检索到 1 行。

2. 调用无参有返回值的function

  1. create or replace function func03()returns integer as $$ begin return 1;
  2. end ;
  3. $$language plpgsql;
  4.  
  5. create or replace function func02() returns void as $$ begin perform func03();
  6. end;
  7. $$language plpgsql;

执行select fun02()的时候是没有任何返回值的,因为perform已经将结果丢弃。

将perform更改为select into:

  1. create or replace function func02() returns void as $$ declare n int;
  2. begin select into n func03();
  3. raise notice 'n: %',n;
  4. end;
  5. $$language plpgsql;

执行: 

  1. select func02();
  2.  
  3. 注意: n: 1
  4.  
  5. 查询总耗时: 12 ms.
  6. 检索到 1 行。

3. 有参有返回值

  1. create or replace function func04(n int)returns integer as $$ begin return n;
  2. end ;
  3. $$language plpgsql;
  4.  
  5.  
  6. create or replace function func02() returns void as $$ declare n int;
  7. begin n=func04(4);
  8. raise notice 'n: %',n;
  9. end;
  10. $$language plpgsql;

执行:

  1. select func02();
  2.  
  3. 注意: n: 4
  4.  
  5. 查询总耗时: 11 ms.
  6. 检索到 1 行。

猜你在找的Postgre SQL相关文章