Re: Rowtype or Record parameters to pl/pgsql functions
От | Joe Conway |
---|---|
Тема | Re: Rowtype or Record parameters to pl/pgsql functions |
Дата | |
Msg-id | 3EE3B6C8.2050708@joeconway.com обсуждение исходный текст |
Ответ на | Rowtype or Record parameters to pl/pgsql functions (Diana Duncan <dianaduncan@nc.rr.com>) |
Список | pgsql-general |
Diana Duncan wrote: > CREATE FUNCTION "insert_history" (ip_resources_current%rowtype, > interval) RETURNS integer AS ' > declare > v_currentRec alias for $1; > ... > > I get an error upon creation - ERROR: parser: parse error at or near > "%" at character 54 > > When I replace the %rowtype with the datatype record, the function is > created all right, but when it is called from another function with a > rowtype or a record variable named xrefrec, I get a runtime error - > ERROR: Attribute "xrefrec" not found Just specifiy the type name (e.g. ip_resources_current) without the %rowtype. For example: CREATE TABLE foo (f1 int, f2 text); INSERT INTO foo VALUES (1,'a'); CREATE OR REPLACE FUNCTION func1(foo) RETURNS text AS 'SELECT $1.f2' LANGUAGE 'sql'; CREATE OR REPLACE FUNCTION func2(int) RETURNS foo AS 'SELECT * FROM foo WHERE f1 = $1' LANGUAGE 'sql'; regression=# SELECT func1(func2(1)); func1 ------- a (1 row) HTH, Joe
В списке pgsql-general по дате отправления: