sql >> Database >  >> RDS >> Oracle

Hoe een functie met Rowtype-parameter aan te roepen vanuit een select-instructie in Oracle

U kunt dit niet doen met %ROWTYPE. %ROWTYPE is eigenlijk een PL/SQL-recordtype, wat geen legaal type is in SQL, dus je kunt het niet gebruiken in een SELECT. U moet een objecttype maken dat dezelfde kolommen heeft als de tabel, naar functie veranderen om dat objecttype te verwachten in plaats van %ROWTYPE, en dan kunt u zoiets als dit schrijven:

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

Nadelen:U moet nog steeds alle kolommen in de SELECT typen, en als u de tabel wijzigt, moet u ook het objecttype en de SELECT wijzigen.



  1. Als GETDATE() op veel plaatsen wordt gebruikt, is het dan beter om een ​​variabele te gebruiken?

  2. Databasemodel voor een berichtensysteem

  3. Opgeslagen procedure oproepen vanuit sqlplus

  4. MySQL-werkbank