PL / SQL, введение

PL / SQL, введение

#SQL #СУБД



PL / SQL — это блочно-структурированный язык, который позволяет разработчикам объединять возможности SQL с процедурными инструкциями. Все операторы блока сразу передаются в движок Oracle, что увеличивает скорость обработки и уменьшает трафик.


Недостатки 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:



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

PL / SQL расширяет SQL, добавляя конструкции, найденные в процедурных языках, в результате чего структурный язык является более мощным, чем SQL. Базовая единица в PL / SQL — это блок. Все программы PL / SQL состоят из блоков, которые могут быть вложены друг в друга.



Как правило, каждый блок выполняет логическое действие в программе. Блок имеет следующую структуру:

DECLARE
    declaration statements;

BEGIN
    executable statements

EXCEPTIONS
    exception handling statements

END;
  • Раздел Declare начинается с ключевого слова DECLARE, в котором можно объявить переменные, константы, записи как курсоры, которые временно хранят данные. Он в основном состоит из определения идентификаторов PL / SQL. Эта часть кода не является обязательной.
  • Раздел выполнения начинается с BEGIN и заканчивается ключевым словом END. Это обязательный раздел, и здесь логика программы написана для выполнения любых задач, таких как циклы и условные операторы. Он также поддерживает все команды DML, команды DDL и встроенные функции SQL * PLUS.
  • Раздел исключений начинается с ключевого слова EXCEPTION. Этот раздел является необязательным и содержит операторы, которые выполняются при возникновении ошибки времени выполнения. Любые исключения могут быть обработаны в этом разделе.

Идентификаторы PL / SQL

Существует несколько идентификаторов PL / SQL, таких как переменные, константы, процедуры, курсоры, триггеры и т. Д.

Переменные :

Как и в некоторых других языках программирования, переменные в PL / SQL должны быть объявлены до его использования. Они также должны иметь правильное имя и тип данных.

Синтаксис для объявления переменных:

variable_name datatype [NOT NULL := value ];

Пример, показывающий, как объявлять переменные в PL / SQL:


SQL> SET SERVEROUTPUT ON;

  

SQL> DECLARE

    var1 INTEGER;

    var2 REAL;

    var3 varchar2(20) ;

  

BEGIN

    null;

END;

/

Выход:

PL/SQL procedure successfully completed.
  1. Объяснение:
  2. SET SERVEROUTPUT ON : используется для отображения буфера, используемого dbms_output.
  3. var1 INTEGER : это объявление переменной с именем var1 целочисленного типа. Существует много других типов данных, которые могут использоваться, такие как float, int, real, smallint, long и т. Д. Он также поддерживает переменные, используемые в SQL, а также NUMBER (prec, scale), varchar, varchar2 и т. Д.
  4. Процедура PL / SQL успешно завершена. : Отображается, когда код скомпилирован и успешно выполнен.
  5. Косая черта (/) после END; : Косая черта (/) указывает SQL * Plus выполнить блок.

1.1) ИНИЦИАЛИЗАЦИЯ ПЕРЕМЕННЫХ:

Переменные также можно инициализировать, как и в других языках программирования. Давайте посмотрим пример для того же:


SQL> SET SERVEROUTPUT ON;

SQL> DECLARE

     var1 INTEGER := 2 ;

     var3 varchar2(20) := 'I Love GeeksForGeeks' ;

  

  BEGIN

     null;

  

  END;

  /

Выход:

PL/SQL procedure successfully completed.

Объяснение:

  1. Оператор присваивания (: =) : используется для присвоения значения переменной.
  2. Отображение вывода :

Выходные данные отображаются с помощью DBMS_OUTPUT, который является встроенным пакетом, который позволяет пользователю отображать выходные данные, информацию об отладке и отправлять сообщения из блоков PL / SQL, подпрограмм, пакетов и триггеров.

Давайте посмотрим пример, чтобы увидеть, как отобразить сообщение с использованием PL / SQL:


SQL> SET SERVEROUTPUT ON;

SQL> DECLARE

     var varchar2(40) := 'I love GeeksForGeeks' ;

  

  BEGIN

     dbms_output.put_line(var);

  

  END;

  /

Выход:

I love GeeksForGeeks

PL/SQL procedure successfully completed.

Объяснение:

dbms_output.put_line : эта команда используется для направления вывода PL / SQL на экран.

Использование комментариев :

Как и во многих других языках программирования, в PL / SQL также комментарии могут быть помещены в код, который не имеет никакого эффекта в коде. Существует два синтаксиса для создания комментариев в PL / SQL:

  1. Однострочный комментарий: для создания однострочного комментария используется символ -.
  2. Многострочный комментарий: для создания комментариев, занимающих несколько строк, используется символ / * и * /.

Пример, показывающий, как создавать комментарии в PL / SQL:


SQL> SET SERVEROUTPUT ON;

SQL> DECLARE

  

     -- I am a comment, so i will be ignored.

     var varchar2(40) := 'I love GeeksForGeeks' 

  

  BEGIN

     dbms_output.put_line(var);

  

  END;

  /

Выход:

I love GeeksForGeeks

PL/SQL procedure successfully completed.

Принимая входные данные от пользователя :

Как и в других языках программирования, в PL / SQL мы также можем принимать ввод от пользователя и сохранять его в переменной. Давайте посмотрим на пример, чтобы показать, как принимать данные от пользователей в PL / SQL:


SQL> SET SERVEROUTPUT ON;

  

SQL> DECLARE

  

      -- taking input for variable a

      a number := &a;       

        

      -- taking input for variable b

      b varchar2(30) := &b;     

  

  BEGIN

      null;

  

  END;

  /

Выход:

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.

(***) Давайте рассмотрим пример на PL / SQL, чтобы продемонстрировать все вышеперечисленные концепции в одном блоке кода.

--PL/SQL code to print sum of two numbers taken from the user.

SQL> SET SERVEROUTPUT ON;

  

SQL> DECLARE

       

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


Report Page