Re: cannot pass entire records to function in SQL command

>>Why is it not possible to pass the whole record to a function? <<
It is, but you are not passing a record to your function.
In your code "rec" is an alias for the table tabx and not a record.
Second problem, in Pl/Sql block you cannot just use "select...".
You must use cursor or "select...into".
Change your code to:

declare

sRec tabx%rowtype;
begin

for i in 1..1000 loop
insert into tabx values (i, i);
insert into taby values (i, i);
end loop;
commit;
select * into sRec from tabx where a=1; make sure this select
fetches only one row.
func( sRec);