Patrick Barel:
Table Functions
Roep de output van je PL/SQL-functie aan alsof het een tabel is
Er is een stelling: 'If you can do it in SQL, use SQL'. Maar soms is zelfs de zeer krachtige Oracle versie van SQL niet genoeg en heb je behoefte aan meer, zoals loops, condities etc. Als je de output van je PL/SQL-functie maakt alsof het een tabel is, heb je alle kracht van PL/SQL en SQL tot je beschikking. Je kunt de code van je PL/SQL-functie in je FROM clause opnemen. Hierdoor wordt de code slechts éénmaal uitgevoerd, in plaats van voor elke rij (in de WHERE clause) of voor elke rij in het resultaat (in de SELECT).
Hoe vaak komt het niet voor dat je een script moet/wilt maken om de data uit een tabel in een script te gieten zodat je het (opnieuw) kunt toevoegen in bijvoorbeeld een andere database. Natuurlijk kun je voor elke vraag en voor elke tabel een SQL-statement bouwen die dit werk voor je doet. Maar het zou veel handiger zijn als je de code maar éénmaal zou hoeven schrijven en daarna gewoon zou kunnen aanroepen vanuit SQL. Oracle biedt sinds Oracle 9i de mogelijkheid om PL/SQL-code te bouwen en het resultaat daarvan in SQL aan te roepen alsof het een 'normale' tabel is.