Subrutine sunt numite PL / SQL blocuri numite care pot avea parametri.
PL limba / SQL vă permite să creați rutine și modul în care procedurile și modul în care PL funcția / SQL.
Pentru a împacheta subrutina poate fi numit din exterior, acesta trebuie să fie declarate în caietul de sarcini pachet. definită prin instrucțiunea CREATE PACHET.
Pentru o subrutină independentă ar putea provoca din exterior trebuie să fie stocate într-o bază de date. Aceste rutine sunt numite proceduri stocate sau funcțiile stocate. Pentru a le crea, aplica declarații SQL- CREATE PROCEDURA și CREATE FUNCTION.
Procedurile de determinare a pot avea următoarea descriere oficială:
în lista de parametri Parametrii sunt definiți ca:
PL / SQL limba permite numărul de parametri real a fost mai mic decât numărul de parametri formali. În acest caz, valorile implicite vor fi utilizate, care trebuie să fie prezent pentru valorile parametrilor care lipsesc.
Pentru a determina corespondența dintre parametrii formali și cele reale ale celor două tipuri de notatii sunt furnizate:
Pentru notația pozițională a parametrilor formale și reale trebuie să se potrivească.
Când numit notația cum se specifica parametrii nu contează, dar înainte de valoarea parametrului specifică numele parametrului formal și simbolul =>. Lista parametrilor poate conține ambele tipuri de notatii, în același timp, dar notația numit este doar la sfârșitul listei.
Procedura are două părți:
- caietul de sarcini. la începutul procedurii de cuvinte cheie terminată și numele procedură sau un parametru listă;
- tratamente corporale. pornind de cuvinte cheie este și se încheie cu sfârșitul cuvântului cheie.
O definiție funcție poate avea următoarea descriere oficială:
PL limba / SQL vă permite să creați rutine supraîncărcat. au același nume, dar lista diferit de parametri formale. Parametrii funcțiilor supraîncărcate trebuie să fie diferite pentru cel puțin unul dintre următoarele criterii: în funcție de tipul, în funcție de numărul, în funcție de parametrul de ordine.
apeluri subrutina recursive și reciproc recursive
apel recursiv este numit un apel de subrutină de corpul aceeași rutină.
La fiecare apel recursiv:
- Se creează o nouă instanță a tuturor elementelor declarate într-o subrutină. inclusiv parametrii, variabile, cursoare, și excepții;
- creează o copie a SQL declarație.
Să considerăm, de exemplu, crearea de apeluri recursive Fibonacci secventa (1, 1, 2, 3, 5, 8, 13, 21), în care fiecare element succesiv este suma celor două anterioare.
Funcția următoare implementează fibonati1 care formează secvența lui Fibonacci folosind recursie:
În locul metodei recursive poate fi utilizată și o metodă iterativă, care este mai puțin evidentă, dar, de asemenea, necesită mai puțină memorie și rulează mai rapid.
De exemplu, funcția următoare implementează fibonati2 care formează secvența Fibonacci într-un mod iterativ:
PL limba / SQL vă permite să pună în aplicare apeluri reciproc recursive. în care rutina apela în mod direct sau indirect, reciproc.