PL/SQL Вступ

PL/SQL Вступ

PL/SQL — це блочно структурована мова, яка дає змогу розробникам поєднувати потужність SQL із процедурними операторами. Усі оператори блоку передаються до механізму Oracle одночасно, що збільшує швидкість обробки та зменшує трафік.

Основи PL/SQL

  • • PL/SQL означає розширення процедурної мови до мови структурованих запитів (SQL).
  • PL/SQL — це комбінація SQL разом із процедурними функціями мов програмування.
  • Oracle використовує механізм PL/SQL для обробки операторів PL/SQL.
  • PL/SQL містить такі елементи процедурної мови, як умови та цикли. Він дозволяє декларувати константи та змінні, процедури та функції, типи та змінні цих типів та тригери.

Недоліки SQL:

  • SQL не надає програмістам техніки перевірки умов, циклу та розгалуження.
  • Інструкції SQL передаються системі Oracle по одній, що збільшує трафік і зменшує швидкість.
  • SQL не має можливості перевірки помилок під час маніпулювання даними.

Особливості PL/SQL:

  1. PL/SQL — це в основному процедурна мова, яка забезпечує функціональність прийняття рішень, ітерації та багато інших функцій процедурних мов програмування.
  2. PL/SQL може виконувати кілька запитів в одному блоці за допомогою однієї команди.
  3. Можна створити одиницю PL/SQL, наприклад процедури, функції, пакети, тригери та типи, які зберігаються в базі даних для повторного використання програмами.
  4. PL/SQL надає функцію обробки виняткової ситуації, яка виникає в блоці PL/SQL, відомого як блок обробки виняткової ситуації.
  5. Програми, написані на PL/SQL, переносяться на апаратне забезпечення комп’ютера або операційну систему, де працює Oracle.
  6. PL/SQL Пропонує розширену перевірку помилок.

Відмінності між SQL і PL/SQL:

SQL PL/SQL
SQL — це єдиний запит, який використовується для виконання операцій DML і DDL. PL/SQL — це блок кодів, який використовувався для написання повних програмних блоків/процедур/функцій тощо.
Це декларативність, яка визначає, що потрібно робити, а не те, як це робити. PL/SQL — це процедура, яка визначає, як потрібно робити речі.
Виконати як один оператор. Виконати цілим блоком.
В основному використовується для маніпулювання даними. В основному використовується для створення програми.
Не може містити код PL/SQL. Це розширення SQL, тому в ньому може міститися SQL.

Структура блоку PL/SQL:

PL/SQL розширює SQL, додаючи конструкції, знайдені в процедурних мовах, у результаті чого структурна мова є потужнішою, ніж SQL. Основною одиницею в PL/SQL є блок. Усі програми PL/SQL складаються з блоків, які можуть бути вкладені один в одного.

Як правило, кожен блок виконує логічну дію в програмі. Блок має таку структуру:

 DECLARE declaration statements; BEGIN executable statements EXCEPTIONS exception handling statements END; 
  • Розділ оголошення починається з ЗАЯВИТИ Ключове слово, у якому можна оголошувати змінні, константи, записи як курсори, яке тимчасово зберігає дані. В основному він складається з визначення ідентифікаторів PL/SQL. Ця частина коду необов'язкова.
  • Виконання розділу починається з ПОЧАТИ і закінчується на КІНЕЦЬ Ключове слово. Це обов’язковий розділ, і тут написана логіка програми для виконання будь-яких завдань, таких як цикли та умовні оператори. Він підтримує все DML команди, DDL команди та вбудовані функції SQL*PLUS.
  • Розділ винятків починається з ВИНЯТОК Ключове слово. Цей розділ необов’язковий і містить оператори, які виконуються, коли виникає помилка під час виконання. Будь-які винятки можна обробляти в цьому розділі.

Ідентифікатори PL/SQL

Існує кілька ідентифікаторів PL/SQL, таких як змінні, константи, процедури, курсори, тригери тощо.

  1. Змінні : Як і в деяких інших мовах програмування, змінні в PL/SQL мають бути оголошені перед їх використанням. Вони також повинні мати дійсне ім’я та тип даних. Синтаксис для оголошення змінних:
variable_name datatype [NOT NULL := value ]; 
  1. Приклад, щоб показати, як оголошувати змінні в PL/SQL:

C




SQL>SET SERVEROUTPUT ON;> SQL>ЗАЯВИТИ>> > var1 INTEGER;> > var2 REAL;> > var3 varchar2(20) ;> BEGIN> > null;> END;> />

  1. Вихід:
PL/SQL procedure successfully completed. 
  1. Пояснення:
    • УВІМКНУТИ SERVEROUTPUT : використовується для відображення буфера, який використовується dbms_output.
    • var1 INTEGER : Це оголошення змінної з іменем var1 який має цілий тип. Є багато інших типів даних, які можна використовувати, як-от float, int, real, smallint, long тощо. Він також підтримує змінні, що використовуються в SQL, а також NUMBER(prec, scale), varchar, varchar2 тощо.
    • Процедура PL/SQL успішно завершена.: Він відображається, коли код скомпільовано та виконано успішно.
    • Коса риска (/) після END;: Слеш (/) вказує SQL*Plus виконати блок.
    • Оператор присвоювання (:=) : використовується для призначення значення змінній.
  2. Відображення результату : Виходи відображаються за допомогою DBMS_OUTPUT, який є вбудованим пакетом, який дозволяє користувачеві відображати вихідні дані, інформацію про налагодження та надсилати повідомлення з блоків PL/SQL, підпрограм, пакетів і тригерів. Давайте подивимося приклад, щоб побачити, як відобразити повідомлення за допомогою PL/SQL:

C




SQL>SET SERVEROUTPUT ON;> SQL>ЗАЯВИТИ>> > var varchar2(40) :=> 'I love GeeksForGeeks'> ;> > BEGIN> > dbms_output.put_line(var);> > END;> > />

  1. Вихід:
I love GeeksForGeeks PL/SQL procedure successfully completed. 
  1. Пояснення:
    • dbms_output.put_line : Ця команда використовується для спрямування виводу PL/SQL на екран.
  2. Використання коментарів : Як і в багатьох інших мовах програмування, у PL/SQL також можна розміщувати коментарі в коді, які не впливають на код. Є два синтаксиси для створення коментарів у PL/SQL:
    • Однорядковий коментар: Щоб створити однорядковий коментар, символ – – використовується.
    • Багаторядковий коментар: Щоб створити коментарі, які охоплюють кілька рядків, символ /* і */ використовується.
  3. Отримання вхідних даних від користувача : Як і в інших мовах програмування, у PL/SQL також ми можемо приймати вхідні дані від користувача та зберігати їх у змінній. Давайте подивимося приклад, щоб показати, як приймати дані від користувачів у PL/SQL:

C




SQL>SET SERVEROUTPUT ON;> SQL>ЗАЯВИТИ>> > -- taking input> for> variable a> > a number := &a;> > > -- taking input> for> variable b> > b varchar2(30) := &b;> > BEGIN> > null;> > END;> > />

  1. Вихід:
Enter value for a: 24 old 2: a number := &a; new 2: a number := 24; Enter value for b: 'GeeksForGeeks' old 3: b varchar2(30) := &b; new 3: b varchar2(30) := 'GeeksForGeeks'; PL/SQL procedure successfully completed. 
  1. (***) Давайте подивимося приклад на PL/SQL, щоб продемонструвати всі вищезазначені концепції в одному блоці коду.

C




--PL/SQL code to print sum of two numbers taken from the user.> SQL>SET SERVEROUTPUT ON;> SQL>ЗАЯВИТИ>> > > -- taking input> for> variable a> > a integer := &a ;> > > -- taking input> for> variable b> > b integer := &b ;> > c integer ;> > BEGIN> > c := a + b ;> > dbms_output.put_line(> 'Sum of '> ||a||> ' and '> ||b||> ' is = '> ||c);> > END;> > />

Enter value for a: 2 Enter value for b: 3 Sum of 2 and 3 is = 5 PL/SQL procedure successfully completed. 

Середовище виконання PL/SQL:

Механізм PL/SQL міститься в механізмі Oracle. Механізм Oracle може обробляти не лише один оператор SQL, а й блок багатьох операторів. Виклик механізму Oracle потрібно зробити лише один раз, щоб виконати будь-яку кількість операторів SQL, якщо ці оператори SQL об’єднані в блок PL/SQL.