sql >> Database >  >> RDS >> Oracle

Is het gebruik van een SELECT binnen een gepijplijnde PL/SQL-tabelfunctie toegestaan?

  1. meestal hebben DML-beperkingen alleen betrekking op modificatie-instructies (UPDATE, DELETE ...), dus SELECT zou OK moeten zijn. Ik zal proberen een specifieke verklaring van Oracle te vinden.

  2. Views zou je eerste tool zijn om veelgebruikte zoekopdrachten te modulariseren.

  3. Functies hebben een nadeel ten opzichte van views:als ze worden aangeroepen vanuit een andere SELECT, worden ze niet op hetzelfde tijdstip uitgevoerd als de hoofd-SELECT. Elke aanroep van een SELECT is consistent, maar aangezien de SELECT in de functiecode staat en niet in de hoofd-SQL, kunt u inconsistente resultaten retourneren. Dit is niet mogelijk met views en sub-select:als een groot statement een view oproept, wordt de view gebouwd op hetzelfde tijdstip als de hoofdquery.

Bijwerken :met betrekking tot uw opmerking over geparametriseerde zoekopdrachten

U kunt geparameteriseerde weergaven bouwen, dat wil zeggen weergaven die afhankelijk zijn van variabelen die vóór uitvoering zijn ingesteld. Hier is een voorbeeld op AskTom laat zien hoe je het zou kunnen doen met userenv('client_info') of dbms_session.set_context .




  1. GROUP BY (MySQL versus SQL-server)

  2. Hoe XML-gegevens in de database te lezen en op te slaan

  3. Hoe maak je een SQL-array van een Java-lijst?

  4. Foutwaarde bestaat niet - probleem postgresql INSERT INTO