sql >> Base de Datos >  >> RDS >> Oracle

Cómo llamar a una función con el parámetro Rowtype desde una declaración de selección en Oracle

No puede hacer esto con %ROWTYPE. %ROWTYPE es en realidad un tipo de registro PL/SQL, que no es un tipo legal en SQL, por lo que no puede usarlo en un SELECT. Debe crear un tipo de objeto que tenga las mismas columnas que la tabla, cambiar a la función para esperar ese tipo de objeto en lugar de %ROWTYPE, y luego puede escribir algo como esto:

SELECT function(table1_typ(column1, column2, column3))
  FROM table1 t1

Inconvenientes:aún debe escribir todas las columnas en SELECT, y si cambia la tabla, deberá cambiar el tipo de objeto y SELECT también.