sql >> Database teknologi >  >> RDS >> Oracle

Returnerer en 'tabel' (uden foruddefinerede kolonnenavne) fra en PL/SQL-funktion

Jeg ville stærkt mistanke om, at du ikke ønsker at gøre dette. Dynamisk oprettelse af objekttyper og opbygning af denne form for fleksibilitet i PL/SQL er næsten altid en opskrift på ruin. Du ender med at skrive ekstremt kompliceret dynamisk SQL overalt (både i opkalderne og i dine funktioner), hvilket vil gøre din kode langt, langt sværere at læse og fejlfinde. Når din kode bliver så kompleks, er du bedre stillet til at skrive rammer, der genererer koden, men det efterlader dig med det meget, meget sværere problem med at skrive kode, der genererer kode, der løser dit problem, i stedet for blot at skrive kode, der løser dit problem.

Når det er sagt, hvis du virkelig er bestemt, er det muligt at bygge en fuldstændig generisk pipelinet tabelfunktion . Det involverer nogle dybe, dybe trolddom ved hjælp af Oracle Data Cartridge-rammeværket. Det er ret fedt. Men antallet af mennesker, der realistisk kunne understøtte og udvide denne slags kode, er meget lille.

Med lidt mindre trolddom (men stadig meget mere end jeg ville foreslå for stort set enhver organisation), kan du bygge en fleksibel pipelinet tabelfunktion der er afhængig af at returnere typer fra et foruddefineret typehierarki. Det er mere sandsynligt, at det understøttes, men det forudsætter, at du kan opbygge dit typehierarki på forhånd.




  1. Database backup kryptering - bedste praksis

  2. Returnerer en Min() og et andet felt?

  3. Hent IP-adresseområde fra xxx.xxx.xx.0/16

  4. Datatype/struktur til at gemme tidszone offset i MySQL