Vous ne pouvez pas faire cela avec %ROWTYPE. %ROWTYPE est en fait un type d'enregistrement PL/SQL, qui n'est pas un type légal en SQL, vous ne pouvez donc pas l'utiliser dans un SELECT. Vous devez créer un type d'objet qui a les mêmes colonnes que la table, passer à la fonction pour attendre ce type d'objet au lieu de %ROWTYPE, puis vous pouvez écrire quelque chose comme ceci :
SELECT function(table1_typ(column1, column2, column3))
FROM table1 t1
Inconvénients :vous devez toujours saisir toutes les colonnes dans le SELECT, et si vous modifiez la table, vous devrez également modifier le type d'objet et le SELECT.