Proceduri stocate sql

Proceduri memorate

Procedurile și funcțiile sunt principalele locuri unde este permisă utilizarea extensiei procedurale, ceea ce permite rezolvarea unor sarcini mai complicate. Procedurile nu returnează valori ca funcții, dar rezultatul muncii lor poate fi stocat în argumente. Pentru a face acest lucru, trebuie să setați atributul OUT. în mod prestabilit, argumentele au de obicei un atribut IN.







Unele DBMS-uri permit supraîncărcarea, adică Creați mai multe proceduri sau funcții cu același nume, dar cu numere sau tipuri diferite de argumente.

Folosirea procedurilor stocate reduce încărcarea pe mașinile client, datorită sarcinii pe server. În al doilea rând, ele facilitează dezvoltarea programelor clientului, în special modernizarea acestora. Deoarece modificări minore ale procedurii stocate, nu trebuie să re program client Campiglio (de asteptare o procedură stocată) și de a distribui noile versiuni ale utilizatorilor.







De exemplu, să creăm o procedură pentru inserarea a cinci înregistrări în tabelul următor:

În Oracle, puteți specifica valorile implicite pentru argumente. Construcția OR REPLACE vă permite să recallați procedura dacă există, fără a afișa un mesaj de eroare. Pentru a distruge procedura, folosiți comanda DROP PROCEDURE. Supraîncărcarea este permisă numai în pachete.

PostgreSQL

Pentru a crea proceduri și funcții în PostgreSQL, se utilizează un design. În primul caz, pur și simplu nu specificăm tipul valorii returnate. În plus, acest lucru este interzis dacă parametrii de ieșire sunt mai mult decât unul. Dacă nu există argumente de ieșire, atunci void ar trebui specificat ca tip de retur. De asemenea, nu puteți seta argumentele la o valoare implicită, dar aceasta este compensată de mecanismul de suprasarcină.

Următorul este un exemplu de procedură pentru MySQL.

procedurile de apel

Deși apelul procedurii standard se face cu comanda CALL. în Oracle, este permisă numai în afara blocului procedural. Și în interiorul blocului este chemat în mod obișnuit. PostgreSQL nu acceptă deloc această comandă, iar comanda SELECT este utilizată pentru a apela procedura.







Articole similare

Trimiteți-le prietenilor: