Riješeno: pl sql prihvati

Posljednje ažuriranje: 09/13/2023

Oracle PL/SQL je dinamičan, robustan programski jezik koji nudi moderne funkcije za razvoj efikasnih i glatkih aplikacija. Često upoređivan sa Microsoftovim T-SQL-om, PL/SQL dodaje procedure i funkcije standardnom SQL-u, poboljšavajući mogućnosti aplikacija baza podataka. S obzirom na njegovu snagu obrade transakcija, idealan je izbor za izvršavanje složenih izračuna i manipulaciju velikim brojem podataka.

Pregled PL/SQL-a

PL/SQL je proceduralna ekstenzija SQL-a, koja stvara prirodno, efikasno i sigurno programsko okruženje. U potpunosti podržava manipulaciju SQL podacima i poboljšava je omogućavajući sačuvane procedure i funkcije, bolje rukovanje greškama i robusne standarde koji obično nisu dostupni u SQL-u.

PL/SQL je blokovski strukturiran, a svaki anonimni blok ili potprogram ima opcionalni odjeljak za deklaraciju gdje se deklariraju sve varijable, kursori, korisnički definirani izuzeci i potprogrami. Nadalje, budući da je PL/SQL proceduralni jezik, podržava iteraciju, uvjetno grananje i omogućava ponovnu upotrebu putem korisnički definiranih potprograma.

Rješavanje problema sa PL/SQL

Ovdje ćemo napisati PL/SQL blok koji rješava uobičajeni problem: dohvaćanje informacija iz tablica baze podataka s mogućim izuzecima.

Prvo, moramo deklarirati varijable koje će držati podatke preuzete iz baze podataka. U PL/SQL-u deklariramo varijable u deklaracijskom dijelu bloka.

DECLARE
  l_name    employees.last_name%TYPE;
  l_salary  employees.salary%TYPE;
  l_emp_id  employees.employee_id%TYPE := &Emp_Id;
BEGIN
...

Glavna radnja se dešava u sekciji za izvršavanje:

...
BEGIN
  SELECT last_name, salary
    INTO l_name, l_salary
    FROM employees
   WHERE employee_id = l_emp_id;
   
  DBMS_OUTPUT.PUT_LINE('Name: ' || l_name);
  DBMS_OUTPUT.PUT_LINE('Salary: ' || l_salary);
EXCEPTION
  WHEN NO_DATA_FOUND THEN
    DBMS_OUTPUT.PUT_LINE('No employee found with ID: ' || l_emp_id);
  WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE('Error occurred: ' || SQLCODE || ' - ' || SQLERRM);
END;

Važnost rukovanja greškama

Učinkovito rukovanje greškama u PL/SQL aplikacijama može pomoći značajno smanjiti vrijeme otklanjanja grešaka i poboljšati robusnost aplikacije.

U gornjoj skripti obradili smo mogućnost izuzetka (greške). Ako navedeni ID zaposlenika ne postoji – izraz SELECT INTO podiže izuzetak NO_DATA_FOUND. Ako se pokrene bilo koji drugi izuzetak, hvata ga rukovalac OTHERS.

Ovaj oblik obrade izuzetaka je odličan primjer robusnosti i sposobnosti PL/SQL-a u upravljanju tokom kontrole aplikacije.

PL/SQL biblioteke i paketi

PL/SQL omogućava korištenje unaprijed definiranih SQL paketa koji pomažu u rješavanju uobičajenih problema. Na primjer, paket DBMS_OUTPUT je korišten u prethodnom primjeru za ispis podataka u konzolu.

Postoji mnogo više sličnih paketa kao što su DBMS_SQL (dinamički SQL), UTL_FILE (rukovanje fajlovima na strani servera), UTL_MAIL (slanje e-pošte sa PL/SQL) itd. Ovi paketi, u kombinaciji sa jakim karakteristikama proceduralnog jezika PL/SQL, nude robusne mogućnosti za razvoj moćnih aplikacija baza podataka.

Prednosti PL/SQL

Neke ključne prednosti PL/SQL-a uključuju njegovu podršku za SQL, njegovu prenosivost, sigurnost i odlične performanse. Zbog njegove bliske integracije sa SQL-om, možete koristiti sve SQL tipove podataka i sve SQL funkcije i operatore.

Poboljšava produktivnost pružanjem naprednih funkcija kao što su rukovanje izuzetcima, enkapsulacija, skrivanje podataka i nasljeđivanje. PL/SQL također podržava kursore, koji su imenovani memorijska područja za manipuliranje izlazom složenih SQL upita.

Uz PL/SQL, možete zaštititi svoje podatke od neovlaštenih korisnika implementacijom jakih sigurnosnih politika. Takođe ima podršku za statički i dinamički SQL, dodatno povećavajući njegovu sposobnost.

PL/SQL također nudi odlične performanse dozvoljavajući spajanje SQL izraza u jedan blok koji se može poslati poslužitelju baze podataka u jednom pozivu. Ovo smanjuje mrežni promet i povećava brzinu izvršavanja aplikacije.

Slični postovi: