Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции ИОСУ часть 2 _PLSQL.doc
Скачиваний:
14
Добавлен:
10.11.2019
Размер:
1.48 Mб
Скачать

Основы pl/sql Содержание

Преимущества языка PL/SQL и его использование в SQL*Plus 3

Лексические единицы 5

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

Раздел заголовка 8

Секция объявлений 10

ТИпы данных PL/SQL 12

Курсоры 23

Управляющие структуры PL/SQL 31

Автономные транзакции 35

Секция обработки исключений 36

Директивы компилятора 40

Программные единицы PL/SQL 41

Динамический SQL 51

Встроенный динамический SQL 62

Пакет DBMS_OUTPUT 64

ФАЙЛОВЫЙ ВВОД/ВЫВОД ПАКЕТ UTL_FILE 67

ПАКЕТ DBMS_PIPE 73

СОЗДАНИЕ ПРИЛОЖЕНИЙ БАЗ ДАННЫХ СРЕДСТВАМИ ODBC 81

Литература 106

Преимущества языка pl/sql и его использование в sql*Plus

Язык PL/SQL (Procedural Language extensions to the Structured Query Language) процедурное расширение структурированного языка запросов) — это хорошо структурированный, удобный и доступный язык, тесно интегрированный с базой данных Oracle. Pl/SQL стал первым языком, получившим поддержку в БД Oracle, и до сих пор остаётся наиболее популярным средством создания программных модулей и таких как процедуры, функции, пакеты и триггеры.

Преимущества использования PL/SQL:

1. позволяет работать с переменными и типами данных, в том числе с коллекциями, записями, массивами, курсорами, исключительными ситуациями, параметрами.

2. добавляет управляющие структуры: ветвления, циклы, переходы; позволяет организовать цикл по записям, обрабатывая каждую по отдельности.

3. позволяет создавать процедуры, функции, триггеры, пакеты.

4. дает возможность создавать объектные типы и методы.

5. позволяет защитить программы, используя шифрование, хранить код программы на сервере.

6.экономит сетевой трафик, так как имеет блочную (пакетную) структуру

SQL*Plus. SQL*Plus – это интерактивный, управляемый командами интерфейс Oracle, используемый для работы с БД (создание и изменение описания таблиц, ввод и модификация данных, отладка запросов и программ, некоторые административные функции и т.п.), а также написания несложных отчетов. Утилита является основным интерфейсом БД для любого ее выпуска, так как включена во все версии сервера данных и доступна с сервера или с клиентской машины из командной строки или через браузер.

Для работы с SQL*Plus существует собственный набор команд, например таких как: @ – запуск командного файла; @@ – запуск вложенного командного файла; / – запуск команды или блока из буфера SQL; ACCEPT (принять), APPEND (добавить), BREAK (прервать), CHANGE (изменить), CLEAR (очистить), COLUMN (столбец), COMPUTE (вычислить), CONNECT (соединить), COPY (копировать), DEFINE (определить), DEL (удалить из буфера), DESCRIBE (описать), DISCONNECT (разъединить), EDIT (редактировать), EXECUTE (выполнить), EXIT (выход), GET (прочитать в буфер), HELP (организовать помощь), INPUT (ввести), LIST (вывести список), PAUSE (пауза), PRINT (печатать), RUN (выполнить), SAVE (сохранить), SET (установить), SHOW (показать), SQLPLUS (запуск SQL*Plus), START (запуск командного файла), VARIABLE (переменная) и др.

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

После запуска SQL*Plus (командой SQLPLUS) на экране появляется приглашение для ввода командной строки:

SQL>_

В эту строку можно ввести команду SQL, блок команд PL/SQL или команду SQL*Plus, например:

SQL> SELECT systimestamp FROM dual;

SQL> BEGIN

2 :n := 1;

3 END;

4 /

SQL> COLUMN (34*123+1456) HEADING 'Результат расчета';

Команды SQL и блоки PL/SQL опознаются по ключевому слову (SELECT, DELETE и т.п.) и не требуют символа продолжения перед переходом на другую строку, так как "ждут" символа завершения команды ";" для команд SQL и "/" для блоков PL/SQL.

Если во время ввода команды обнаружена ошибка, которая находится в строке ввода, то для ее исправления можно стереть клавишей Backspace конец текста, включая неправильный текст, и заново ввести правильный его вариант. Если же ошибка обнаружена в предшествующих строках, то придется либо заново вводить всю команду, либо воспользоваться одним из редакторов текста. Дело в том, что текст вводимой (текущей) команды SQL или блока PL/SQL попадает в буфер SQL и хранится там до ввода другой команды. Текст буфера может модифицироваться либо с помощью команд редактирования либо с помощью системного редактора, вызываемого командой EDIT. Команды SQL*Plus не запоминаются в буфере и не могут модифицироваться текстовым редактором.

В таблице показаны команды, позволяющие проверять, изменять или перезапускать команды SQL или блоки PL/SQL без их нового ввода. Большинство из них (кроме CLEAR, LIST, RUN и SAVE) воздействуют на единственную строку, называемую текущей и помечаемую при просмотре (команда LIST) символом "*".

Таблица Команды редактирования

Команда

Абривиатура

Назначение

APPEND text

A text

добавляет указанный текст (text) в конец текущей строки

CHANGE

C/old/new/

заменяет старый текст (old) на новый (new) в текущей строке

CHANGE

C/text/

удаляет указанный текст (text) из текущей строки

CLEAR BUFFER

CL BUFF

удаляет все строки из буфера SQL

DEL

удаляет текущую строку, делая текущей следующую

RUN или /

R или /

запускает текущую команду SQL

SAVE file

SAV file

сохраняет содержимое буфера SQL в файле file

GET file

GET file

загружает файл в буфер SQL

При выполнении команды SQL> EDIT будет вызван текстовый редактор операционной системы, в который будет помещено содержимое буфера SQL. Редактирование текста буфера ничем не отличается от редактирования любого текста в вызванном редакторе. По окончании редактирования обновленный текст следует сохранить в буфере (команда SAVE текстового редактора) и, если необходимо, в файле (команда SAVE AS... текстового редактора).

Таким образом, с помощью системного редактора можно создавать и редактировать файлы, состоящие из любых допустимых последовательностей команд SQL, PL/SQL и SQL*Plus, а затем выполнять их с помощью команд "START", "@" или "@@".