greetings. I'm trying to write a function that acts like a switchboard,
calling other functions depending on incoming parameters.
I'm getting error: query has no destination for result data
Please advise what we're doing wrong. The subfunctions return a series of
refcursors in a single table and single row (see pr_test_subfunction).
When i run the parent function, i want to see the same results as if i had
run the subfunction - the results of the subfunction should pass-thru to the
parent calling function. Can this be done?
Subfunction:
[CODE]
CREATE OR REPLACE FUNCTION dev.pr_test_subfunction ( v_action varchar, out swv_refcur refcursor, out swv_refcur2
refcursor,out swv_refcur3 refcursor, out swv_refcur4 refcursor, out swv_refcur5 refcursor
)
RETURNS record AS
$body$
DECLARE SWV_Action VARCHAR(50) DEFAULT Coalesce(v_Action,'');
BEGIN OPEN SWV_RefCur for SELECT 1; OPEN swv_refcur2 for SELECT 2; OPEN swv_refcur3 for SELECT 3; OPEN
swv_refcur4for SELECT 4; OPEN swv_refcur5 for SELECT 5; RETURN;
END;
$body$
LANGUAGE 'plpgsql'
VOLATILE
CALLED ON NULL INPUT
SECURITY INVOKER
COST 100;
[/CODE]
Parent Function:
[CODE]
CREATE OR REPLACE FUNCTION dev.pr_test_parentfunction ( v_action varchar, out swv_refcur refcursor, out swv_refcur2
refcursor,out swv_refcur3 refcursor, out swv_refcur4 refcursor, out swv_refcur5 refcursor
)
RETURNS record AS
$body$
DECLARE SWV_Action VARCHAR(50) DEFAULT Coalesce(v_Action,'1');
BEGIN IF SWV_Action = '1' THEN SELECT * FROM dev.pr_test_subfunction(SWV_Action); ELSIF SWV_Action = '2'
THEN SELECT * FROM dev.pr_test_subfunction(SWV_Action); ELSE OPEN SWV_RefCur for SELECT 1; OPEN
swv_refcur2for SELECT 2; END IF;
RETURN;
END;
$body$
LANGUAGE 'plpgsql'
VOLATILE
CALLED ON NULL INPUT
SECURITY INVOKER
COST 100;
[/CODE]
--
View this message in context: http://postgresql.1045698.n5.nabble.com/postgres-subfunction-return-error-tp5772407.html
Sent from the PostgreSQL - sql mailing list archive at Nabble.com.