sql >> Database >  >> RDS >> Oracle

Het retourtype van de Oracle-cursor

Uit de conceptengids :

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.



  1. Verwijder een deel van een tekenreeks inclusief een specifiek teken uit een tekenreeks met MySQL

  2. Oracle outer join werkt niet zoals verwacht

  3. Hoe MySQL-edelsteen op Mac OS X te installeren

  4. PHP Gebruikers-ID doorgeven aan mysql-trigger