sql >> Database >  >> RDS >> Oracle

Een 'tabel' retourneren (zonder kolomnamen vooraf te definiëren) vanuit een PL/SQL-functie

Ik zou sterk vermoed dat u dit niet wilt doen. Het dynamisch creëren van objecttypes en het bouwen van dit soort flexibiliteit in PL/SQL is bijna altijd een recept voor ondergang. Je zult uiteindelijk overal extreem gecompliceerde dynamische SQL schrijven (zowel in de bellers als in je functies), waardoor je code veel, veel moeilijker te lezen en te debuggen zal zijn. Als je code zo complex wordt, kun je beter frameworks schrijven die de code genereren, maar dat laat je achter met het veel, veel moeilijkere probleem van het schrijven van code die code genereert die je probleem oplost in plaats van alleen code te schrijven die je probleem oplost.

Dat gezegd hebbende, als je echt, echt vastbesloten bent, is het mogelijk om een ​​ te bouwen volledig generieke pipeline-tabelfunctie . Dat omvat een aantal diepe, diepe tovenarij met behulp van het Oracle Data Cartridge-framework. Het is best cool. Maar het aantal mensen dat dit soort code realistisch zou kunnen ondersteunen en uitbreiden, is erg klein.

Met iets minder tovenarij (maar nog steeds veel, veel meer dan ik zou voorstellen voor vrijwel elke organisatie), kun je een flexibele pijplijn-tabelfunctie die afhankelijk is van het retourneren van typen uit een vooraf gedefinieerde typehiërarchie. Dat is waarschijnlijker te ondersteunen, maar het gaat ervan uit dat u uw typehiërarchie vooraf kunt opbouwen.




  1. Hoe json terug te sturen van Play Scala-controller?

  2. PostgreSQL BESCHRIJVING TABEL Equivalent

  3. Hoe tabel in Oracle-procedure af te kappen?

  4. Mysql - LIMIET per percentage?