Thread: plpgsql function arguments

plpgsql function arguments

From
Sergey Bondarenko
Date:
Hi!

The documentation on PL/pgSQL reads:

--cut

name class%ROWTYPE;

Declares a row with the structure of the given class. Class must be an existing table- or
viewname of the database. The fields of the row are accessed in the dot notation.
Parameters to a function can be composite types (complete table rows). In that case, the
corresponding identifier $n will be a rowtype, but it must be aliased using the ALIAS
command described below. Only the user attributes of a table row are accessible in the
row, no Oid or other system attributes (hence the row could be from a view and view rows
don't have useful system attributes).

The fields of the rowtype inherit the tables fieldsizes or precision for char() etc. data
types.

---cut

Does someone used as arguments rowtypes? I failed even to create such function.
I have a table called saldo.

create table saldo (       usename text,       saldo   float8
);

Then I try to create a function:

create function test ( ?????? ) reaturns int4 as '       declare               x alias for $1;               y
saldo%rowtype;      begin               return 1;       end;
 
' language 'plpgsql';

That's just test function. It does nothing. The question is what should I write instead
of ?????? when I need to feed the function with the rowtype of saldo. I tried
saldo%rowtype. It fails when meet '%'; 

Any advice greatly appreciated.

Sergey Bondarenko
Relcom-Ukraine system administrator