Oracle CURSOR VOOR UPDATE
Samenvatting: in deze tutorial leert u hoe u de Oracle-cursor kunt gebruiken om gegevens in een tabel bij te werken.
Inleiding tot Oracle Cursor VOOR UPDATE
Soms wilt u een set rijen vergrendelen voordat u ze in uw programma kunt bijwerken. Oracle biedt de FOR UPDATE
-clausule van de SELECT
-instructie in een bij te werken cursor om dit soort vergrendelingsmechanisme uit te voeren.
Hier is de syntaxis voor het declareren van een bij te werken cursor:
De nieuwe syntaxis hier is de FOR UPDATE
sleutelwoorden.
Zodra u de cursor opent, vergrendelt Oracle alle rijen die zijn geselecteerd met de instructie SELECT ... FOR UPDATE
in de tabellen die zijn opgegeven in de FROM
clausule. En deze rijen blijven vergrendeld totdat de cursor wordt gesloten of de transactie is voltooid met COMMIT
of ROLLBACK
.
Merk op dat Oracle alle rijen vergrendelt die worden geretourneerd door de SELECT ... FOR UPDATE
tijdens de update, daarom zou u een WHERE
-clausule moeten hebben om alleen noodzakelijke rijen te selecteren worden vergrendeld.
Als u een specifieke kolom heeft die u wilt bijwerken, kunt u deze als volgt in de FOR UPDATE
-clausule vermelden:
In dit geval vergrendelt Oracle alleen rijen van de tabel waarvan de kolomnaam wordt vermeld in de FOR UPDATE OF
-clausule.
Houd er rekening mee dat als u alleen de clausule FOR UPDATE
gebruikt en geen of meer kolommen opneemt na het OF
sleutelwoord, Oracle vergrendel alle geselecteerde rijen over alle tabellen vermeld in de FROM
-clausule.
Oracle Cursor VOOR UPDATE-voorbeeld
Beschouw het volgende voorbeeld.
Hoe het werkt.
- Geef eerst een bij te werken cursor aan die de tegoeden bijwerkt van de klanten wiens tegoeden groter zijn dan nul.
- Volgende , loop over de rijen in de cursors.
- Haal vervolgens het aantal bestellingen voor elke klant op.
- Wijs daarna de kredietverhoging toe op basis van het aantal bestellingen.
- Werk ten slotte het krediet van de klant bij.
In deze tutorial heeft u geleerd hoe u de Oracle-cursor kunt gebruiken om gegevens in een tabel bij te werken.
- Was deze tutorial nuttig?
- JaNee