logo

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 складаються з блоків, які можуть бути вкладені один в одного.

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

список методів java
 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




java подвійний до рядка
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

bash для циклу




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

>

>

Підручник .net
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.