De belangrijke zin is daar 'record-oriented'. De syntaxis voor expliciete cursordeclaratie
laat ook duidelijk zien dat het retourtype een rowtype
moet zijn , die het definieert als:
U vraagt het om het gegevenstype van een enkele kolom te retourneren, niet van een rij/record. Als u geen bestaand %ROWTYPE
. wilt gebruiken dan biedt Oracle het mechanisme om in plaats daarvan een recordtype te declareren, zoals een ander antwoord al heeft aangetoond.
U lijkt te klagen dat de documentatie niet zegt dat u geen scalaire waarde als rendement kunt gebruiken. Er staat ook niet dat je een pakket, een weergave of een rol niet kunt retourneren. Het hoeft niet alles uitputtend op te sommen wat u niet kunt doen, omdat het u duidelijk precies vertelt wat u kunt do, wat is om een type terug te geven dat een rij vertegenwoordigt.
In uw geval hoeft dat rijtype maar één kolom te bevatten, maar er is nog steeds geen reden waarom u in dat zeer beperkte scenario een snelkoppeling zou kunnen of verwachten van Oracle. Het lijkt niet onredelijk om een enkel consistent mechanisme te bieden - het is niet zo moeilijk voor u om het record
aan te geven , terwijl het bouwen, testen en onderhouden van een apart pad hiervoor een aanzienlijke overhead zou zijn.