Re: Receive a record not a tuple - plpgsql
От | Michael Fuhr |
---|---|
Тема | Re: Receive a record not a tuple - plpgsql |
Дата | |
Msg-id | 20051117041456.GA63985@winnie.fuhr.org обсуждение исходный текст |
Ответ на | Receive a record not a tuple - plpgsql (Flávio Brito <flavio@gral.org.br>) |
Список | pgsql-novice |
On Wed, Nov 16, 2005 at 06:41:36PM -0200, Flvio Brito wrote: > How can I call a function into a function? My problem is: I'm trying to > calculate a tax(inss) over a employee salary. I created a function > called inss that do it correctly, but when I create another one to show > more attributes (inss is not a attribute, it is calculate over a salary) > I receive a record (like {1,Mary,32.45} not a tuple. How can I solve it? You can put a function in the FROM clause and use a column definition list: test=> SELECT test(); test ---------------- (1,Mary,32.45) (1 row) test=> SELECT * FROM test() AS (id integer, name text, salary numeric); id | name | salary ----+------+-------- 1 | Mary | 32.45 (1 row) Another possibility is to create a type and have the function return that type instead of record: CREATE TYPE person_info AS ( id integer, name text, salary numeric ); CREATE FUNCTION test() RETURNS person_info AS ... test=> SELECT * FROM test(); id | name | salary ----+------+-------- 1 | Mary | 32.45 (1 row) test=> SELECT (test()).*; id | name | salary ----+------+-------- 1 | Mary | 32.45 (1 row) Is one of these examples what you're looking for? -- Michael Fuhr
В списке pgsql-novice по дате отправления: