Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como chamar uma função com o parâmetro Rowtype de uma instrução select no Oracle


Você não pode fazer isso com %ROWTYPE. %ROWTYPE é na verdade um tipo de registro PL/SQL, que não é um tipo legal em SQL, então você não pode usá-lo em um SELECT. Você deve criar um tipo de objeto que tenha as mesmas colunas que a tabela, mude para função para esperar esse tipo de objeto em vez de %ROWTYPE, e então você pode escrever algo assim:
SELECT function(table1_typ(column1, column2, column3))
  FROM table1 t1

Desvantagens:Você ainda tem que digitar todas as colunas no SELECT, e se mudar a tabela, vai precisar mudar o tipo de objeto e o SELECT também.