Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment appeler une fonction avec le paramètre Rowtype à partir d'une instruction select dans Oracle

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.