Net als bij PL/SQL-functies is een opgeslagen procedure een op zichzelf staand subprogramma dat bedoeld is om een aantal specifieke taken uit te voeren. Ook vergelijkbaar met functies, worden procedures PL/SQL-blokken genoemd, zodat ze opnieuw kunnen worden gebruikt omdat ze in de database zijn opgeslagen als een databaseobject. Maar in tegenstelling tot PL/SQL-functies geeft een opgeslagen procedure geen enkele waarde terug .
Syntaxis van PL/SQL opgeslagen procedures
CREATE [OR REPLACE] PROCEDURE pro_name (Parameter – List) IS [AUTHID DEFINER | CURRENT_USER] Declare statements BEGIN Executable statements END procedure name; /
De bovenstaande syntaxis van de PL/SQL-opgeslagen procedure is vrijwel gelijk aan de syntaxis van PL/SQL-functies die we zagen in de laatste PL/SQL-zelfstudie. Behalve twee dingen:
- Er is geen Return-clausule.
Een belangrijk verschil tussen een PL/SQL-functie en een opgeslagen procedure is dat in tegenstelling tot functies een opgeslagen procedure geen waarde retourneert.
- AUTHID-clausule.
De AUTHID-clausule wordt gebruikt voor het instellen van het autoriteitsmodel voor de PL/SQL-procedures. Deze clausule heeft twee vlaggen.
- DEFINER en
- CURRENT_USER
Aangezien deze clausule optioneel is, zal Oracle Engine, als u de AUTHID-clausule niet gebruikt, de autoriteit (AUTHID) standaard voor u instellen op de DEFINER. Nu vraagt u zich vast af wat deze DEFINER- en CURRENT_USER-rechten zijn?
DEFINER rechts: Definer right is het standaardrecht dat door Oracle Engine aan de procedure is toegewezen. Dit recht betekent dat iedereen met uitvoeringsbevoegdheid voor de procedure handelt alsof ze de eigenaar zijn van het schema waarin het voorrecht is gemaakt.
CURRENT_USER rechts: Door het autorisatieniveau van een opgeslagen procedure in te stellen op het recht current_user, wordt het standaardrecht, dat de definitie is, overschreven en gewijzigd in de aanroeperrechten.
Rechtsmachtiging van de aanroeper betekent dat u de procedure aanroept om op uw lokale gegevens te reageren en dat u gegevensobjecten moet repliceren in elk deelnemend schema.
Enkele extra punten over opgeslagen procedure
- U kunt een procedure definiëren met of zonder formele parameters.
- Een parameter kan ofwel pass-by-value . zijn of pass-by-referentie .
- Een procedure is een pass-by-value-procedure als u de parametermodus niet specificeert omdat deze de standaard IN-modus gebruikt.
Dat is het over Inleiding tot PL/SQL Stored Procedures. Ik denk dat je ook met plezier onderstaande blogs zult lezen. Alle blogs zijn geschreven door sollicitatiegesprekken en Oracle Database-certificering in gedachten te houden, zorg ervoor dat u ze bekijkt.
- Verschillen tussen PL/SQL-functie en PL/SQL opgeslagen procedures?
- Wat zijn parametermodi in PL/SQL-functies en -procedures?
- Wat zijn formele en feitelijke parameters?
Onthoud altijd:je kunt anderen helpen bij het leren en mij en mijn kanaal en deze blog ondersteunen door deze met je vrienden te delen op je sociale media.
Dat is het jongens. Bedankt voor het lezen. Wees voorzichtig en een fijne dag!