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

Er det tilladt at bruge en SELECT i en pipelinet PL/SQL-tabelfunktion?

  1. 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.

  2. Visninger ville være dit første værktøj til at modularisere almindeligt anvendte forespørgsler.

  3. 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 .




  1. Oprettelse af XML i PHP ved hjælp af SimpleXML med specialtegn

  2. to hvor betingelser i en mysql-forespørgsel

  3. MySQL mange-til-mange forhold til UDENLANDSKE NØGLER

  4. Hvordan man bruger en case-erklæring til at bestemme, hvilket felt der skal gå med