PL/SQL
Материал из Википедии — свободной энциклопедии
PL/SQL (Procedural Language / Structured Query Language) — язык программирования, разработаный в корпорации Oracle. Является процедурным расширением языка SQL. Базируется на языке Ада.
Содержание |
[править] Функциональность
PL/SQL даёт возможность использовать переменные, операторы, массивы, курсоры и исключения. Начиная с версии 8 посредством использования Oracle RDBMS стала доступна и объектно-ориентированная модель.
Стандартный SQL является декларативным языком программирования. Это накладывает на язык определённые ограничения, такие как, например, отсутствие прямой поддержки циклов. PL/SQL же, как полный по Тьюрингу язык, позволяет разрабочикам обрабатывать реляционную базу данных Oracle, используя (более привычный) императивный стиль программирования. Операторы SQL могут быть легко вызваны непосредственно из кода PL/SQL-процедуры, функции или триггера (иногда с некоторыми ограничениями).
[править] Базовая структура кода
Программа на PL/SQL состоит из блоков (анонимных или поименованных). Блок может содержать вложенные блоки, называемые иногда подблоками. Общая форма PL/SQL-блока:
DECLARE |
-- Описания блока, переменные, типы, курсоры и т. п. (опционально) |
BEGIN |
-- Непосредственно код программы |
EXCEPTION |
-- Обработка исключений (опционально) |
END; |
- /* Многострочные
- комментарии… */
- --Однострочный комментарий
[править] Типы данных
Язык PL/SQL поддерживает следующие категории типов:
- встроенные типы данных, включая коллекции и записи;
- скалярные;
- составные;
- ссылочные;
- LOB-типы;
- объектные типы данных.
[править] Операторы управления
- операторы выбора:
- IF-THEN-END IF;
- IF-THEN-ELSE-END IF;
- IF-THEN-ELSIF-END IF;
- CASE-WHEN-THEN-END CASE;
- операторы цикла:
- LOOP-END LOOP;
- WHILE-LOOP-END LOOP;
- FOR-LOOP-END LOOP;
- EXIT;
- EXIT WHEN;
- операторы безусловного перехода:
- GOTO;
- NULL;
- <<labels>>.
[править] Пример программы
Программа, выводящая в консоли sqlplus строчку «Hello, World!» с использованием инициализированной переменной.
SET serveroutput ON DECLARE hello VARCHAR2(50) := 'Hello, world!'; BEGIN DBMS_OUTPUT.put_line(hello); END;
[править] Ссылки
|
|
---|---|
Используемые в разработке | ABAP/4 | Ада | ActionScript | Ассемблеры | AutoIt | Awk | BASIC | C | COBOL | C++ | C# | ColdFusion | D | Delphi | Erlang | Eiffel | Forth | FoxPro | DataFlex | Фортран | Groovy | Haskell | Java | JavaScript | J++ | J# | Icon | Limbo | Лисп | Lua | Objective-C | Оберон | Oz | Паскаль | Perl | PHP | PL/I | Пролог | Руби | Python | Tcl | Scheme | Smalltalk | SQL | Vala | Visual DataFlex | Visual Basic | VB.NET | Visual FoxPro |
Академические | АПЛ | Clean | Curry | Лого | MATLAB | ML | Scala |
IEC61131-3 | Instruction List | ST | FBD | Ladder Diagram | SFC |
Прочие | Алгол | Алгол 68 | Модула-2 | Miranda | Hope |
Эзотерические | INTERCAL | Brainfuck | Befunge | Malbolge | Unlambda |
список всех языков |