Hello 2013/2/25 Stefan Keller <sfkeller@xxxxxxxxx>: > Hi, > > I have a simple void function: > > CREATE OR REPLACE FUNCTION myfn(myparam OUT int) > AS $$ > BEGIN > pnr := 1; > END; > $$ LANGUAGE plpgsql; > > How do I access myparam? > I thought this should work with 9.1/9.2: SELECT (myfn()).myparam; > Or inside another function? > you cannot access to out parameters outside function - because they doesn't exist - postgresql cannot pass parameters by ref. your example is exactly same as int returning function - you can use it in plpgsql variable := myfn(); -- variable is scalar int type if function has more out parameters, then return type is record type. CREATE OR REPLACE FUNCTION public.f1(a integer, b integer, OUT c integer, OUT d integer) RETURNS record LANGUAGE plpgsql AS $function$ begin c := a + b; d := c * 2; end; $function$ postgres=# select f1(10,20); f1 --------- (30,60) (1 row) postgres=# select * from f1(10,20); c | d ----+---- 30 | 60 (1 row) create or replace function foo() returns void as $$ declare r record; begin r := f1(10,20); raise warning 'c=%, d=%', r.c, r.d; end; $$ language plpgsql; CREATE FUNCTION postgres=# select foo(); WARNING: 01000: c=30, d=60 foo ----- (1 row) Regards Pavel Stehule > Yours, Stefan > > > -- > Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) > To make changes to your subscription: > http://www.postgresql.org/mailpref/pgsql-general -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general