-
normalt vedrører DML-restriktioner kun modifikation (UPDATE, DELETE ...) sætninger, så SELECT skulle være OK. Jeg vil prøve at finde en specifik udtalelse fra Oracle.
-
Visninger ville være dit første værktøj til at modularisere almindeligt anvendte forespørgsler.
-
Funktioner har en ulempe i forhold til visninger:hvis de kaldes fra en anden SELECT, udføres de ikke på samme tidspunkt som den primære SELECT. Hvert kald til en SELECT er konsistent, men da SELECT er i funktionskoden og ikke i hoved-SQL'en, kan du returnere inkonsistente resultater. Dette er ikke muligt med visninger og undervalg:Hvis en stor erklæring kalder en visning, bygges visningen på samme tidspunkt som hovedforespørgslen.
Opdater :vedrørende din kommentar om parametriserede forespørgsler
Du kan bygge parametriserede visninger, det vil sige visninger, der er afhængige af variabler, der er indstillet før udførelse. Her er et eksempel på AskTom
viser, hvordan du kunne gøre det med userenv('client_info')
eller dbms_session.set_context
.