Vyřešeno: pl sql přijmout

Oracle PL / SQL je dynamický, robustní programovací jazyk, který nabízí moderní funkce pro vývoj efektivních a plynulých aplikací. PL/SQL, který se často srovnává s T-SQL od Microsoftu, přidává procedury a funkce ke standardním SQL vylepšujícím schopnostem databázových aplikací. Vzhledem ke své síle transakčního zpracování je ideální volbou pro provádění složitých výpočtů a náročných manipulací s daty.

Přehled PL/SQL

PL/SQL je procedurální rozšíření SQL, které vytváří přirozené, efektivní a bezpečné programovací prostředí. Plně podporuje manipulaci s daty SQL a vylepšuje je tím, že umožňuje uložené procedury a funkce, lepší zpracování chyb a robustní standardy, které nejsou v SQL obvykle dostupné.

PL/SQL je bloková struktura, a každý anonymní blok nebo podprogram má volitelnou deklarační sekci, kde jsou deklarovány všechny proměnné, kurzory, uživatelem definované výjimky a podprogramy. Navíc PL/SQL je procedurální jazyk, podporuje iteraci, podmíněné větvení a umožňuje opětovné použití prostřednictvím uživatelsky definovaných podprogramů.

Řešení problému s PL/SQL

Zde napíšeme PL/SQL blok, který řeší běžný problém: získávání informací z databázových tabulek s možnými výjimkami.

Nejprve musíme deklarovat proměnné, které budou obsahovat data získaná z databáze. V PL/SQL deklarujeme proměnné v deklarační sekci bloku.

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

Hlavní akce se děje v sekci provádění:

...
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;

Význam zpracování chyb

Efektivní zpracování chyb v aplikacích PL/SQL může pomoci výrazně zkrátit dobu ladění a zlepšit robustnost aplikace.

Ve skriptu výše jsme řešili možnost výjimky (chyby). Pokud zadané ID zaměstnance neexistuje – příkaz SELECT INTO vyvolá výjimku NO_DATA_FOUND. Pokud je vyvolána jakákoli jiná výjimka, obsluha OTHERS ji zachytí.

Tato forma zpracování výjimek je ukázkovým příkladem robustnosti a schopnosti PL/SQL při řízení řídicího toku aplikace.

PL/SQL knihovny a balíčky

PL/SQL umožňuje použití předdefinovaných SQL balíčků, které pomáhají řešit běžné problémy. Například, DBMS_OUTPUT Balíček byl použit v předchozím příkladu k výstupu dat do konzole.

Existuje mnoho dalších podobných balíčků jako DBMS_SQL (dynamické SQL), UTL_FILE (zpracování souborů na straně serveru), UTL_MAIL (odesílání e-mailů z PL/SQL) atd. Tyto balíčky v kombinaci se silnými funkcemi procedurálního jazyka PL/SQL nabízejí robustní schopnosti pro vývoj výkonných databázových aplikací.

Výhody PL/SQL

Některé klíčové výhody PL/SQL zahrnují jeho podporu pro SQL, jeho přenositelnost, zabezpečení a vynikající výkon. Díky úzké integraci s SQL můžete používat všechny datové typy SQL a všechny funkce a operátory SQL.

Zvyšuje produktivitu tím, že poskytuje pokročilé funkce, jako je zpracování výjimek, zapouzdření, skrývání dat a dědičnost. PL/SQL také podporuje kurzory, které jsou pojmenované oblasti paměti pro manipulaci s výstupem složitých SQL dotazů.

S PL/SQL můžete chránit svá data před neoprávněnými uživateli implementací silných bezpečnostních zásad. Má také podporu pro statické i dynamické SQL, což dále zvyšuje jeho schopnosti.

PL/SQL také nabízí vynikající výkon tím, že umožňuje sdružování příkazů SQL do jednoho bloku, který lze odeslat na databázový server v jediném volání. To snižuje provoz v síti a zvyšuje rychlost provádění aplikace.

Související příspěvky:

Zanechat komentář