簡體   English   中英

如何在返回數據類型為void的plpgsql中調用function a?

[英]How to call a function a in plpgsql which has a return data type of void?

create or replace function f1() //procedure should display 9
returns void
as $$
declare age int default 9; //variable declaration
begin                     
select age;      //prints 9
end;
$$ language plpgsql;
CREATE FUNCTION

我不斷收到此錯誤

perform f1();
ERROR:  syntax error at or near "perform"
LINE 1: perform f1();

perform是一個 PL/pgSQL 語句。 在普通 SQL 中,您只需使用 SELECT:

select f1();

請注意,寫入的 function不會“打印 9”——它會導致錯誤,因為SELECT需要存儲在某處。 在 PL/pgSQL 中你需要RAISE語句來“打印”一些東西:

create or replace function f1()
returns void
as $$
declare
  age int default 9; 
begin                     
  raise 'Age: ', age; -- this prints 9
end;
$$ 
language plpgsql;

如果你想讓 function 來“顯示”一些東西,讓 function返回結果可能更有意義:

create or replace function f1()
returns int
as $$
declare
  age int default 9; 
begin                     
  return age;
end;
$$ 
language plpgsql;

然后select f1()將“打印” 9

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM