sql >> Database teknologi >  >> RDS >> Oracle

Sådan kalder du en funktion med Rowtype-parameter fra en select-sætning i Oracle

Du kan ikke gøre dette med %ROWTYPE. %ROWTYPE er faktisk en PL/SQL-posttype, som ikke er en lovlig type i SQL, så du kan ikke bruge den i en SELECT. Du bør oprette en objekttype, som har de samme kolonner som tabellen, ændre til funktion for at forvente den objekttype i stedet for %ROWTYPE, og så kan du skrive noget som dette:

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

Ulemper:Du skal stadig skrive alle kolonnerne i SELECT, og hvis du ændrer tabellen, skal du også ændre objekttypen og SELECT.



  1. (+) =operator i oracle sql i where-sætning

  2. Opretter en fremmednøgle automatisk et indeks?

  3. Vælg mellem mange-til-mange forhold efterfølger

  4. Udfør indbyrdes afhængige visninger fra mysqldump backup