Урок за PL / SQL: Всичко, което трябва да знаете за PL / SQL



PL / SQL урокът обхваща всички подробни обяснения на всички необходими концепции, необходими за овладяване на PL / SQL програмирането с различни примери

PL / SQL е процедурен език, който преодолява недостатъците, пред които е изправен език за структурирани заявки . Това е разширение на SQL и дори можем да използваме SQL заявки без никакви неприятности в някое PL / SQL приложение или програма. В този урок PL / SQL ще разгледаме подробно основните концепции на PL / SQL. Следните теми са обхванати в тази статия.

Какво е PL / SQL?

Това означава процедурно езиково разширение на език за структурирани заявки . Oracle създаде PL / SQL, който разширява някои ограничения на SQL, за да осигури по-изчерпателно решение за изграждане на критично важни приложения, работещи на oracle .





logo-pl / sql урок - edureka

Характеристика

  • PL / SQL предоставя функционалността на процедурен език като вземане на решения, повторение и т.н.

  • Използвайки една команда, PL / SQL може да изпълни редица заявки.



  • Също така можем да използваме повторно PL / SQL единици като функции, тригери, процедури и т.н., които се съхраняват в базата данни след създаването.

  • PL / SQL също има блок за обработка на изключения, който обработва изключенията в PL / SQL.

  • Също така е възможна обширна проверка на грешки, използвайки PL / SQL



  • Приложенията, написани на PL / SQL, са преносими към друг хардуер и операционни системи, при условие че oracle трябва да работи.

PL / SQL срещу SQL

SQL PL / SQL
SQL е единична заявка, която се използва за извършване на DDL и DML операцииPL / SQL е блок от кодове, който се използва за дефиниране на цяла програма или процедура / функция и т.н.
Той всъщност не определя как трябва да се правят нещата, а по-скоро определя какво трябва да се направиPL / SQL определя как трябва да се правят нещата
Той изпълнява едно изявлениеТой изпълнява блок от изявления наведнъж.
SQL се използва главно за манипулиране на даннитеPL / SQL, от друга страна, се използва за създаване на приложения
Не може да съдържа PL / SQL кодТъй като това е SQL разширение, то може да съдържа SQL код в него

как да се справя с изскачащ прозорец в селен webdriver

Блокови структури в PL / SQL

PL / SQL обикновено организира кода в блокове. Кодовият блок без име е известен като анонимен блок. Известен е като анонимен блок, тъй като не се записва в базата данни на oracle. Нека да разгледаме анонимен блок в PL / SQL.

[DECLARE] изявления за декларация [BEGIN] изявления за изпълнение [EXCEPTION] изявления за изключения END /

Разглеждайки диаграмата, показана по-горе, можем да видим, че структурата на блока е разделена на четири части, т.е. декларация, начало, изключение и край. Нека се опитаме да разберем как работи блоковата структура в PL / SQL. От всички тези раздели раздела за изпълнение е задължителен, а останалите не са задължителни.

  • ДЕКЛАРИРАЙТЕ ключовата дума се използва за за раздела за декларация се използва за деклариране на типове данни и структури като променливи, функции и т.н.

  • НАЧАЛО ключовата дума се използва за раздела за изпълнение. Той е задължителен и съдържа всички изявления, които трябва да бъдат изпълнени. Този блок е мястото, където е дефинирана бизнес логиката, можем да използваме както процедурни, така и SQL изрази в този блок.

  • The ИЗКЛЮЧЕНИЕ ключовата дума се използва за раздела за изключения. Той съдържа всички изявления за изключения.

  • КРАЙ ключовата дума маркира края на блока, а наклонената черта назад / / казва на инструмента, който използвате (Oracle Database Tool) за изпълнение на PL / SQL блока.

Ето един прост пример, за да покажем как можем да използваме PL / SQL кода.

НАЧАЛО НУЛЕН КРАЙ /

Сега, след като знаем как работи блоковата структура в PL / SQL, нека разберем различните аспекти на PL / SQL като деклариране, именуване и присвояване на стойности на променливите.

PL / SQL променливи

Променливата в PL / SQL е основно име, което варира или временно място за съхранение, което поддържа определен тип данни. Нека да разгледаме как можем да използваме променливите в PL / SQL програма.

Правила за променливо име

PL / SQL следва следните правила за именуване на променливи.

  • Променливата не може да бъде повече от 31 знака

  • Името на променливата трябва да започва с ASCII символ. Тъй като PL / SQL е чувствителен към малки и големи букви, главна и малка буква ще бъдат различни променливи.

  • След първия знак трябва да има специален знак ($, _) или произволно число.

Конвенции за имената

Използвайте следните конвенции за именуване, изброени по-долу, за да използвате променливите.

Префикс Тип данни
v_VARCHAR2
н_БРОЙ
т_ТАБЛИЦА
r_РЕД
д_ДАТА
b_БУЛИН

Декларация

Нека се опитаме да разберем как се прави деклариране на променлива в PL / SQL

Декларацията включва името на променливата, последвано от типа данни и разделено с точка и запетая. Следва пример за показване как можете да декларирате променлива в PL / SQL.

ДЕКЛАРИРАТЕ v_name VARCHAR (25) n_age НОМЕР (3) НАЧАЛО НУЛЕН КРАЙ

Можете също да добавите дължината на типа данни, както направихме в горния пример.

Котви

Котвата основно се отнася до използването на ключовата дума% TYPE, която да декларира променлива с типа данни, свързан с типа данни на колона на конкретна колона в таблица.

Разгледайте пример, за да разберете това. Да предположим, че имаме таблица СЛУЖИТЕЛИ, можем да използваме котвите по следния начин.

ДЕКЛАРИРАТЕ v_name EMPLOYEE.NAME% TYPE n_age EMPLOYEE.AGE% TYPE BEGIN NULL END /

Възлагане

Присвояването на променливи е доста лесно, можем да използваме оператора за присвояване, за да присвоим стойности на променлива. Следващият пример показва как можем да присвояваме стойности на променлива.

ОБЯВЕТЕ v_name VARCHAR (20) n_course VARCHAR (10) НАЧАЛО v_name = 'edureka' v_course = 'sql' END /

Инициализация

Можем да инициализираме стойност и за променливата в раздела за декларация. Следващият пример показва как можем да инициализираме стойности към променлива.

DECLARE v_name VARCHAR (20) = 'edureka' n_course VARCHAR (10) = 'sql' НАЧАЛО НУЛЕН КРАЙ /

Сега, когато знаем как можем да работим с променливите, нека се опитаме да разберем как ще използваме функции в PL / SQL.

Функция в PL / SQL

Функцията в PL / SQL е основно именуван блок, който връща стойност. Известен е също като подпрограма или подпрограма, следният синтаксис показва как можем да използваме функции в PL / SQL.

CREATE [OR REPLACE] FUNCTION function_name [(parameter_1 [IN] [OUT] data_type, parameter_2 [IN] [OUT] data_type, parameter_N [IN] [OUT] data_type] RETURN return_data_type Е BEGIN оператори return return_data_type EXCEPTION END /

На първо място, трябва да посочите име на функция след ключовата дума. Името на функцията трябва да започва с глагол. Функцията може да няма нито един, един или повече параметри, които ние посочваме в параметрите. Трябва да посочим изрично типа данни за всеки параметър и след това идва режимът, който може да направи едно от следните.

  • В - Параметърът IN е параметър само за четене.

  • АУТ - Това е параметър само за запис

  • ВЪН - Параметърът IN OUT е едновременно параметър за четене и запис.

Ето един прост пример, който показва как използваме функциите в PL / SQL.

СЪЗДАЙТЕ ИЛИ ЗАМЕНЕТЕ ФУНКЦИЯ try_parse (iv_number В VARCHAR2) НОМЕР ЗА ВРЪЩАНЕ НАЧАЛО ВРЪЩАНЕ to_number (iv_number) ИЗКЛЮЧЕНИЕ, КОГА други ВРЪЩАТЕ НУЛЕН КРАЙ

Извикване на функция

Нека се опитаме да извикаме функцията, която сме направили в анонимен блок в следващия пример.

НАСТРОЙВАЙТЕ СЕРВОРУТ НА РАЗМЕР 1000000 ДЕКЛАРИРАНЕ n_x номер n_y номер n_z номер НАЧАЛО n_x: = try_parse ('256') n_y: = try_parse ('29 .72 ') n_z: = try_parse (' pqrs ') DBMS_OUTPUT.PUT_LINE (n_xLIN) n_y) DBMS_OUTPUT.PUT_LINE (n_z) END /

Можем да извикаме функцията и в оператор SELECT. След като вече знаем как можем да използваме функции в PL / SQL, нека се опитаме да разберем как работим с процедурите в PL / SQL.

PL / SQL процедура

Процедурата е основно блок, който изпълнява конкретна задача. Използвайки процедура, можем да обгърнем или капсулираме сложна бизнес логика и да ги използваме повторно както в слоя на приложението, така и в базата данни.

Нека да разгледаме един прост пример, за да разберем как работи процедурата в PL / SQL

СЪЗДАВАНЕ ИЛИ ЗАМЕНЯНЕ НА ПРОЦЕДУРА_заплата_заглавие (in_employee_id В ЗАЕТОСТИ.EMPLOYEE_ID% ТИП, in_percent В НОМЕР) Е НАЧАЛО - актуализиране на заплатата на служителя АКТУАЛИЗИРАНЕ на работната заплата = заплата + заплата * in_percent / 100 КЪДЕ staff_id = in_employee_id END

В горния пример имаме два параметъра, процедурата коригира заплатата с даден процент и ключовата дума UPDATE актуализира стойността в информацията за заплатата.

Заглавка на процедурата

Разделът преди ключовата дума IS се нарича заглавка на процедурата. Следват няколко указания, с които човек трябва да е запознат, докато работи с процедурите.

  • схема - Процедурата принадлежи на незадължителното име на схемата.

  • име - Името на процедурата, която трябва да започва с глагол.

  • параметри - Това е незадължителен списък с параметри.

  • AUTHID - Той определя дали процедурата ще се изпълни с привилегията на текущия потребител или първоначалния собственик на процедурата.

    какво е indexof в javascript

Процедурно тяло

Всичко, което идва след ключовата дума IS, се нарича тяло на процедурата. Имаме изявления за декларация, изключение и изпълнение в тялото на процедурата. За разлика от функцията, ключовата дума RETURN в процедура се използва за спиране на изпълнението и връщане на контролата на повикващия.

Извикване на процедура

Нека видим как можем да извикаме процедура в PL / SQL.

Име на процедурата EXEC (param1, param2 & hellipparamN)

Можем да извикаме процедурите без параметри, като използваме само ключовата дума EXEC и името на процедурата. След като вече знаем как можем да работим с процедури, нека се опитаме да разберем как се използват вложени блокове в PL / SQL.

Вложен блок

Вложен блок не е нищо друго освен комбинация от един или повече PL / SQL блокове, за да получите по-добър контрол върху изпълнението и изключителна обработка на програмата.

Ето един прост пример за вложен блок.

НАСТРОЙВАНЕ НА СЕРВЕРОПУСК НА РАЗМЕР 1000000 ДЕКЛАРИРАНЕ n_emp_id EMPLOYEES.EMPLOYEE_ID% TYPE: = & emp_id1 НАЧАЛО ДЕКЛАРИРАНЕ n_emp_id staff.employee_id% TYPE: = & emp_id2 v_name staff.first_name% TYPE_BEIN на служител '|| n_emp_id ||' е '|| v_name) ИЗКЛЮЧЕНИЕ КОГАТО no_data_found THEN DBMS_OUTPUT.PUT_LINE (' Служител '|| n_emp_id ||' not found ') END END /

Външният PL / SQL блок в горния пример е известен като родителски или заграждащ блок, а вътрешният блок, от друга страна, е известен като дъщерния блок или затворения блок.

Не е добра идея да използвате променливите с еднакви имена и в двата блока, защото по време на изпълнение променливата на дъщерния блок ще замени променливата на родителския блок. Това се случва, защото PL / SQL дава първи приоритет на променливата вътре в собствения си блок.

Блок етикет

Можем да преодолеем този проблем с етикета на блока, който ни помага да правим препратки към променливи вътре в блокове, като използваме етикет.

Ето един прост пример, за да покажем как можем да използваме етикет на блок.

 <>ДЕКЛАРИРАЙТЕ ... НАЧАЛО ... КРАЙ

Използването на етикет на блок помага да се подобри четливостта на кода, да се постигне по-добър контрол и да се правят препратки към блоковете. Сега, когато знаем как можем да работим с вложени блокове, нека се опитаме да разберем как IF STATEMENT работи в PL / SQL.

IF Изявление

PL / SQL има три АКО ИЗЯВЛЕНИЯ

  • АКО-ТОГАВА - Това е най-простият IF STATEMENT, ако условието е вярно, операторите ще се изпълнят, ако условието е false, това не прави нищо.

  • АКО-ТОГАВА ДРУГ - В това се добавя клаузата ELSE за алтернативна последователност от изрази.

  • IF-THEN-ELSEIF - Позволява ни да изпълняваме множество условия за тест в последователност.

АКО-ТОГА Синтаксис

IF условие THEN последователност_от_съобщения END IF

IF-THEN-ELSE Синтаксис

АКО условие ТОГА последователност_от_ако_съобщения ИНАЧЕ последователност_от_или_съобщения КРАЙ АКО

IF-THEN-ELSEIF Синтаксис

IF условие1 THEN последователност_от_съобщения1 ELSIF условие2 THEN последователност_от_съобщения2 ELSE последователност_от_изявления3 END IF

След като приключихме с IF STATEMENT, нека разгледаме изявлението CASE в PL / SQL.

СЛУЧАЙНА декларация

Операторът CASE основно помага при изпълнението на последователност от изрази, базирани на селектор. В този случай селектор може да бъде всичко, може да е променлива, функция или прост израз. Ето един прост пример за показване на синтаксиса на изявлението CASE в PL / SQL.

[<>] СЛУЧАЙ [ИСТИНА | селектор] WHEN израз1 THEN последователност_от_изложения1 WHEN израз2 THEN последователност_от_съобщения2 ... WHEN изразN THEN последователност_от_изявленияN [ELSE последователност_от_изявленияN + 1] END CASE [име_на етикет]

В горния синтаксис, след ключовата дума CASE идва селекторът. PL / SQL ще оцени селектора само веднъж, за да определи кой оператор трябва да бъде изпълнен.

Следва селектора ключовата дума WHEN. Ако изразът удовлетворява селектора, тогава съответният израз след ключовата дума THEN се изпълнява.

Сега, след като знаем как можем да използваме CASE оператор, нека се опитаме да разберем как ще използваме цикличните оператори в PL / SQL.

Loop Statement

Оператор на цикъл в PL / SQL е итеративен оператор, който ви позволява да изпълнявате последователност от изрази няколко пъти. Ето един прост пример за показване на синтаксиса на оператор на цикъл в PL / SQL.

LOOP sequence_of_statements END LOOP

Между ключовата дума LOOP и END LOOP трябва да има поне един изпълним оператор.

Цикъл с изявление EXIT

Операторите EXIT и EXIT, когато ви позволяват да излезете от цикъла. Операторът EXIT WHEN завършва цикъла условно, докато EXIT прекратява изпълнението безусловно.

LOOP ... EXIT, когато условието END LOOP

Loop етикет

Етикет на цикъл се използва за определяне на името на променливата на брояча на цикли, когато се използва в вложен цикъл. Следва синтаксисът на етикет на цикъл.

 <>LOOP последователност_от_съобщения END LOOP етикет

Сега, след като вече знаем как можем да използваме цикъла, нека разгледаме инструкциите while, за да разберем по-добре.

Докато Loop Statement

Можем да използваме оператора на цикъл WHILE, когато броят на изпълненията не е дефиниран, докато изпълнението не започне. Следният синтаксис се използва за оператор WHILE цикъл в PL / SQL.

WHILE условие LOOP sequence_of_statements END LOOP

Условието в синтаксиса е логическа стойност или израз, който се оценява като TRUE, FALSE или NULL. Ако условието е TRUE, операторите ще бъдат изпълнени, ако е FALSE, изпълнението спира и контролата преминава към следващия изпълним оператор.

разлика между изменяеми и неизменни

Сега, след като знаем как можем да използваме оператор на цикъл WHILE, нека да разгледаме оператора за цикъл FOR.

За Loop Statement

Оператор за цикъл FOR в PL / SQL ни позволява да изпълняваме последователност от изрази за определен брой пъти. Следва синтаксисът за използване на оператор за цикъл FOR в PL / SQL

FOR loop_counter IN [REVERSE] lower_bound .. higher_bound LOOP sequence_of_statements END LOOP

PL / SQL автоматично създава локална променлива loop_counter с тип данни INTEGER за цикъла, така че да не се налага да го декларирате изрично. Lowerbound..higherbound е обхватът, в който цикълът се итерира. Освен това трябва да имате поне един изпълним оператор между ключовите думи LOOP и END LOOP.

След като вече знаем как можем да използваме цикличните изрази в PL / SQL, нека да разгледаме изключителната обработка в PL / SQL.

Изключително боравене

В PL / SQL всеки вид грешка се третира като изключение. Изключение може да се третира като специално условие, което може да промени или промени процеса на изпълнение. В PL / SQL има два вида изключения.

  • Системно изключение - То се повишава от времето на изпълнение на PL / SQL, когато открие грешка.

  • Дефинирано от програмиста изключение - Тези изключения се дефинират от програмиста в конкретно приложение.

Определяне на изключение

Изключение в PL / SQL трябва да бъде декларирано, преди да може да бъде повдигнато. Можем да дефинираме изключението с помощта на ключовата дума EXCEPTION, както направихме в примера по-долу.

EXCEPTION_NAME EXCEPTION

За да създадем изключение, използваме ключовата дума RAISE.

RAISE EXCEPTION_NAME

Така че всичко беше свързано с PL / SQL, надявам се тази статия да ви е помогнала да добавите стойност към вашите знания. За повече информация относно SQL или бази данни можете да се обърнете към нашия изчерпателен списък за четене тук: .

Ако искате да получите структурирано обучение по MySQL, разгледайте нашето което се предлага с обучение под ръководството на инструктори на живо и опит в реалния живот на проекти. Това обучение ще ви помогне да разберете MySQL задълбочено и ще ви помогне да постигнете майсторство по темата.

Имате въпрос към нас? Моля, споменете го в раздела за коментари на ” PL / SQL урок ”И ще се свържа с вас.