0
我是PostgreSQL的新手,所以這可能是一個愚蠢的問題,但我似乎無法在任何地方找到答案。所以,任何幫助表示讚賞。函數調用帶輸出參數的函數會導致錯誤
我有一個函數(func_main)調用具有一些OUT參數的另一個函數(func_out)。我總是得到一個錯誤,該功能找不到。如果我調用一個沒有OUT參數的函數(func_no_out),它可以正常工作。
下面是func_out代碼:
CREATE OR REPLACE FUNCTION func_out (argin integer, argout1 OUT integer, argout2 OUT integer) AS $body$
BEGIN
argout1 := argin;
argout2 := 2 * argin;
END;
$body$
LANGUAGE PLPGSQL
;
爲func_no_out代碼:
CREATE OR REPLACE FUNCTION func_no_out (argin integer) RETURNS VOID AS $body$
DECLARE
argout1 integer;
argout2 integer;
BEGIN
argout1 := argin;
argout2 := 2 * argin;
END;
$body$
LANGUAGE PLPGSQL
;
最後的主要功能:
CREATE OR REPLACE FUNCTION func_main (argin integer) RETURNS VOID AS $body$
DECLARE
dummy1 integer;
dummy2 integer;
BEGIN
--PERFORM func_out(argin, dummy1, dummy2);
PERFORM func_no_out(argin);
END;
$body$
LANGUAGE PLPGSQL
;
手動調用func_out工作正常。
=> select * from func_out(5);
argout1 | argout2
---------+---------
5 | 10
(1 row)
當從func_main我得到的錯誤是調用func_out:
=> select * from func_main(6);
ERROR: function func_out(integer, integer, integer) does not exist
LINE 1: SELECT func_out(argin, dummy1, dummy2)
所以我在做什麼錯在func_main?
任何幫助,將不勝感激!
謝謝。
亨利