Podobně jako u funkcí PL/SQL je uložená procedura samostatná podprogram, který je určen k provádění některých specifických úkolů. Podobně jako funkce se procedury nazývají bloky PL/SQL, takže je lze znovu použít, protože jsou uloženy v databázi jako databázový objekt. Ale na rozdíl od funkcí PL/SQL nevrací uložená procedura žádnou hodnotu .
Syntaxe uložených procedur PL/SQL
PROCEDURCREATE [OR REPLACE] PROCEDURE pro_name (Parameter – List) IS [AUTHID DEFINER | CURRENT_USER] Declare statements BEGIN Executable statements END procedure name; /
Výše uvedená syntaxe uložené procedury PL/SQL je do značné míry podobná syntaxi funkcí PL/SQL, kterou jsme viděli v posledním tutoriálu PL/SQL. Kromě dvou věcí:
- Neexistuje žádná klauzule návratu.
Základní rozdíl mezi funkcí PL/SQL a uloženou procedurou spočívá v tom, že na rozdíl od funkcí uložená procedura nevrací žádnou hodnotu.
- Ustanovení AUTHID.
Klauzule AUTHID se používá k nastavení modelu oprávnění pro procedury PL/SQL. Tato klauzule má dva příznaky.
- DEFINOVAT a
- CURRENT_USER
Protože tato klauzule je volitelná, v případě, že nepoužíváte klauzuli AUTHID, Oracle Engine za vás standardně nastaví oprávnění (AUTHID) na DEFINER. Nyní vás jistě zajímá, jaká jsou tato práva DEFINER a CURRENT_USER?
DEFINER vpravo: Definující právo je výchozí právo přidělené proceduře věšteckým enginem. Toto právo znamená, že kdokoli s oprávněním k provádění postupu se chová, jako by byl vlastníkem schématu, ve kterém je oprávnění vytvořeno.
CURRENT_USER právo: Nastavení úrovně oprávnění uložené procedury na právo aktuálního uživatele přepíše výchozí právo, které je definováno, a změní ho na práva vyvolávače.
Oprávnění k právu vyvolávače znamená, že zavoláte proceduru, která má jednat s vašimi lokálními daty, a vyžaduje, abyste replikovali datové objekty v jakémkoli zúčastněném schématu.
Několik dalších bodů o uložené proceduře
- Můžete definovat proceduru s formálními parametry nebo bez nich.
- Parametr může být buď průchozí hodnotou nebo průchozí reference .
- Pokud neurčíte režim parametru, bude procedura předávací procedurou, protože používá výchozí režim IN.
To je vše v Úvodu do uložených procedur PL/SQL. Předpokládám, že i vy budete rádi číst tyto níže zmíněné blogy. Všechny blogy jsou psány s ohledem na Job Interview a Oracle Database Certification, nezapomeňte je zkontrolovat.
- Rozdíly mezi funkcí PL/SQL a uloženými procedurami PL/SQL?
- Co jsou režimy parametrů ve funkcích a procedurách PL/SQL?
- Co jsou formální a skutečné parametry?
Vždy pamatujte:Můžete pomáhat ostatním v učení a podporovat mě a můj kanál i tento blog tím, že jej budete sdílet se svými přáteli na svých sociálních sítích.
To je vše. Děkuji za přečtení. Opatrujte se a mějte skvělý den!