아래 쿼리에서 오류가 발생합니다. 결과 유형이 OUT 매개 변수 때문에 정수 여야합니다. 누구든지이 문제를 과도하게 해결할 수 있습니다.postgresql의 OUT 매개 변수로 인해 함수 결과 유형이 정수 여야합니다
CREATE OR REPLACE FUNCTION funinsertupdateproduct(i_productid integer, t_productname text, t_productdesc text, i_brandid integer, i_varianceid integer, i_packsizeid integer, i_clientid integer, i_userid integer,out i_prodid integer)
RETURNS void AS
$BODY$
BEGIN
IF EXISTS (SELECT 1 FROM "product" WHERE product_id = i_productid) THEN
UPDATE "product" SET "product_name" = t_productname, "product_desc" = t_productdesc, "brand_id"=i_brandid,variance_id=i_varianceid,pack_size_id=i_packsizeid WHERE product_id = i_productid;
ELSE
INSERT INTO "product"("product_name", "product_desc", "create_by","client_id",variance_id,brand_id,pack_size_id) VALUES ( t_productname, t_productdesc,i_userid,i_clientid,i_varianceid,i_brandid,i_packsizeid) returning product_id INTO i_prodid;
END IF;
RETURN;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION funinsertupdateproduct(integer, text, text, integer, integer, integer, integer, integer,integer) OWNER TO postgres;
"_ OUT 또는 INOUT 매개 변수가있는 경우 RETURNS 절을 생략 할 수 있습니다. 존재하는 경우 출력 매개 변수에 포함 된 결과 유형과 일치해야합니다. 여러 출력 매개 변수가 있거나 단일 유형과 동일한 유형 인 경우 RECORD 출력 매개 변수 ._ "- [doc에서] (https://www.postgresql.org/docs/current/static/sql-createfunction.html) – Abelisto