sql >> Databasteknik >  >> RDS >> Oracle

Hur man anropar en funktion med parametern Rowtype från en select-sats i Oracle

Du kan inte göra detta med %ROWTYPE. %ROWTYPE är faktiskt en PL/SQL-posttyp, som inte är en laglig typ i SQL, så du kan inte använda den i en SELECT. Du bör skapa en objekttyp som har samma kolumner som tabellen, ändra till funktion för att förvänta dig den objekttypen istället för %ROWTYPE, och sedan kan du skriva något så här:

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

Nackdelar:Du måste fortfarande skriva alla kolumner i SELECT, och om du ändrar tabellen måste du ändra objekttypen och SELECT också.



  1. Hitta poster där join inte finns

  2. välj från ... - baserat på ett värde i JSON-format

  3. Får du en extern tabells plats och filnamn?

  4. Last Insert ID returneras inte