Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лаврентев Освоение СQЛ 2009

.pdf
Скачиваний:
63
Добавлен:
16.08.2013
Размер:
2.47 Mб
Скачать

1

Федеральное агентство по образованию Национальный исследовательский ядерный университет ―МИФИ‖

В.С. Лаврентьев

Освоение SQL и PL/SQL Oracle

Лабораторные работы

Учебное пособие

Москва 2009

2

УДК 681.3.06 ББК 32.973.2 Л 57

Лаврентьев В.С. [Электронный ресурс] Освоение SQL и PL/SQL Oracle. Лабораторные работы: учебное пособие.- М.:МИФИ, 2009.-105с.

Данное учебное пособие не является учебником по SQL и PL/SQL Oracle. Цель пособия – представить студентам образец выполнения лабораторных работ с тем, чтобы в соответствии с этим образцом они выполняли лабораторные работы на выдаваемой преподавателем другой предметной области, для каждого студента группы – отдельной, не совпадающей с другими. Запросы и другие команды SQL скомпонованы в шесть тем, каждая из которых соответствует одной лабораторной работе. Образец выполнения лабораторных работ по освоению SQL представлен для предметной области торговой фирмы. В качестве образца для выполнения лабораторных работ по освоению PL/SQL использованы прямые ссылки на предметную область и скрипты из книги Скотта Урмана «Oracle8. Программирование на языке PL/SQL (М.: "Лори", 1999)», на которые и делается ссылка в пособии. В соответствии с компоновкой языковых конструкций PL/SQL в названной книге определены и темы восьми лабораторных работ по освоению PL/SQL.

Рецензент канд. техн. наук, доц. Т.В.Петрова Рекомендовано редсоветом МИФИ к изданию в качестве учебного пособия

ISBN 978-5-7262-1100-8

© Национальный иссследовательский ядерный университет «МИФИ», 2009

Редактор Е.Е.Шумакова

Прикладное программное обеспечение для выполнения лабораторных работ: Oracle® Database Express Edition 10g Release 2 (10.2) для Microsoft Windows.

Системные требования: PC не ниже класса Pentium IV минимум 256 мегабайт RAM, рекомендуется 512 мегабайт; свободное место на HDD 1,6 гигабайт, Windows 2000 Service Pack 4 или более поздняя, Windows Server 2003, Windows XP Professional Service Pack 1

или более поздняя; дисковод CD-ROM 2-х и выше, мышь, клавиатура. Уч.-изд л. 13.0.

Изд №048-1. Формат 60Х84 1/8.

Национальный исследовательский ядерный университет «МИФИ», 115409, Москва, Каширское ш., д.31

3

Оглавление

Предисловие….…………………………………………………………………………………4

Глава I. Общая последовательность этапов выполнения лабораторных работ по освоению языка SQL Oracle………………………………………………………………………………..5

Глава II. Образец для выполнения лабораторных работ по освоению SQL Oracle………..6 II.1. Утилита SQL*Plus, ее настройка и работа с ней при выполнении простых запросов выборки столбцов и строк………………………………………………….……6

II.1.1. Команды утилиты SQL*Plus и ее настройка…………….………………………6 II.1.2. Создание пользователя Oracle и таблиц его схемы……………………………..8 II.1.3. Переменные привязки в среде SQL*Plus……………...………………………..10 II.1.4. Переменные подстановки в среде SQL*Plus……………………....…………...11 II.1.5. Выборка столбцов таблицы………………….…………………………………..14 II.1.6. Выборка строк таблицы…………………………….…………………………....17

II.2. Выборка данных из нескольких таблиц…………………………………………….20 II.2.1. Подзапросы……………………………………………………………………….20 II.2.2. Коррелированные подзапросы……………………………………….…………..23 II.2.3. Использование подзапросов во фразе FROM……………………..….................25 II.2.4. Операторы над множествами……………………………………………………26 II.2.5. Объединения (внутренние)………………………………………………………27 II.2.6. Внешние объединения………………………..…………………………………..30 II.2.7. Иерархические запросы…………………………………………………………..32

II.3. Функции Oracle SQL…………………………………………………..…………........35 II.3.1. Некоторые символьные функции……………………………………………….35 II.3.2. Некоторые функции даты и времени…………………………………………...39 II.3.3. Некоторые функции преобразования…………………………………………..41 II.3.4. Функции DECODE, DUMP, ORA_HASH, VSIZE……………………………..46

II.3.5. Агрегатные и аналитические функции…………………………………………49 II.4. Другие команды языка манипулирования данными DМL и обработка транзакций…………………………………………………………………………………...55

II.4.1. Команды DML insert, update, delete……………………………………………...55 II.4.2. Обработка транзакций……………………………………………………………60 II.5. Создание и изменение структуры таблиц средствами DDL………………………...62 II.6. Другие объекты базы данных…………………………………………………………67

Глава III. Общая последовательность этапов выполнения лабораторных работ по освоению языка PL/SQL Oracle…………………………………………………..……………72 Библиографический список…………….……………………………………………………...75

Приложение 1. Скрипт demo.sql создания предметной области пользователя DEMO …..76 Приложение 2. Содержимое таблиц пользователя DEMO...………………………………..88 Приложение 3. Решения отдельных задач SQL олимпиады 2007г.………………………..99

4

Предисловие

Учебные курсы «Базы данных» и «Безопасность систем баз данных I» в качестве практической базы для проведения лабораторных работ по освоению SQL и процедурного языка СУБД предполагают использование программного продукта корпорации Oracle – Oracle10g EE. Названный программный продукт получен МИФИ -

участником программы «ORACLE ACADEMY ADVANCED COMPUTER SCIENCE &BUSINESS». В соответствии с договором между МИФИ и корпорацией Oracle, каждый студент кафедр 29 и 43, выполняющий лабораторные работы по названным выше учебным курсам, может установить на домашнем компьютере Oracle10g EE, полученный МИФИ от Oracle (взяв у преподавателя соответствующую DVD копию), но при этом от студента требуется регистрация на сайте http://oai.oracle.com/pls/oai/sel onchange.main?cmd=s SET lang. Студенты, не желающие регистрироваться, для выполнения лабораторных работ могут воспользоваться установкой разрешенной к практически неограниченному использованию версией Oracle10g Express Edition, скачав ее с сайта www.oracle.com.

Следует подчеркнуть важность установки студентом СУБД Oracle на домашнем компьютере для обеспечения возможности самостоятельной работы. Необходимость самостоятельной работы объясняется насыщенностью того материала, который должен осваивать студент на занятиях в дисплейном классе. Хорошо известен афоризм выдающегося физика Фейнмана: «..понять, значит – привыкнуть и научиться использовать». Времени занятий в дисплейном классе, конечно, не хватает для того, чтобы «привыкнуть» к SQL и PL/SQL Oracle и уж тем более научиться их использовать. Пожалуй, основная сложность, которую приходится преодолевать при освоении технологий современной СУБД, такой, как Oracle – гигантская размерность этого программного продукта, интегрирующего практически все современные информационные технологии. Предлагаемые в настоящем учебно-практическом издании лабораторные работы при их осмысленном выполнении, в сочетании с лекционным материалом, обучение отдельным технологиям Oracle в следующем семестре (уже после освоения SQL и PL/SQL) постепенно, шаг за шагом вводят студента в эту гигантскую размерность с тем, чтобы далее студент мог двигаться в интересующем его направлении уже в значительной степени самостоятельно.

Задания на лабораторные работы по освоению PL/SQL формулируются с использованием прямых ссылок на /2/, имеющуюся в библиотеке МИФИ. Программные скрипты из /2/, по образцу которых студенты должны выполнять задания, в свое время были выложены на сайте издательства этой книги и поэтому имеются в распоряжении студентов.

Что касается основной по объему части учебного пособия, представляющей образец выполнения лабораторных работ по SQL такой книги, как /2/, с готовыми к использованию скриптами по всем SQL лабораторным работам, т.е. такими скриптами, которые студенту не надо самому набирать на клавиатуре компьютера, в распоряжении студентов не имеется.

Поэтому автор подготовил в электронном виде образец выполнения лабораторных работ по освоению SQL. При подготовке образца автором использована общая последовательность подачи материала, семантика многих запросов SQL, представленные в /1/, с корректировками на другие таблицы измененной предметной области. По сравнению с /1/ существенно расширен раздел «Функции SQL», добавлены типы запросов, учитывающие отдельные аспекты развития SQL в последующих версиях Oracle со ссылками на /3/,/4/.

5

Глава I. Общая последовательность этапов выполнения лабораторных

работ по освоению языка SQL

1. Получение от преподавателя схемы (Entity Relationship диаграммы) и скриптов (на языке SQL) индивидуальной предметной области для выполнения лабораторных работ. 2. Ознакомление с примерами выполнения SQL запросов по шести разным темам на предметной области пользователя DEMO. Примеры выполнения запросов по этим шести темам представлены в главе 2. «Образец для выполнения лабораторных работ по освоению SQL Oracle» настоящего учебного пособия.

Содержание тем:

Тема 1. Утилита SQL*Plus, ее настройка и работа с ней при выполнении простых запросов выборки столбцов и строк. Тема 1 включает раздел по созданию пользователя DEMO, наделению его необходимыми полномочиями и созданию таблиц предметной области. Тема 2. Выборка данных из нескольких таблиц.

Тема 3. Функции Oracle SQL.

Тема 4. Другие команды языка манипулирования данными DМL и обработка транзакций. Тема 5. Создание и изменение таблиц средствами DDL.

Тема 6. Другие объекты базы данных.

3. Выполнение на заданной преподавателем по п.1 предметной области SQL запросов по шести приведенным в п.2. темам. Запросы должны быть такого же типа и в таком же количестве, как и в главе 2. «Образец для выполнения лабораторных работ по освоению SQL Oracle» настоящего учебного пособия. Запросы должны предваряться их формулировкой на естественном языке.

При выполнении лабораторных работ студенту может потребоваться выполнить корректировку «своей» предметной области (добавить столбец в таблицу, определить его внешним ключем, заполнить его; добавить новую таблицу и заполнить ее; заполнить новыми данными ранее существовавшую таблицу и т.д.). Такая корректировка может потребоваться, например, для демонстрации на своей предметной области иерархических запросов, запросов с использованием агрегированных функций и т.д. Все эти

корректировки должны быть скомпонованы в отдельном скрипте, который, как и spool –файлы (протоколы выполнения) лабораторных работ, предъявляются преподавателю при сдаче лабораторных работ.

Лабораторные работы могут выполняться студентом вне дисплейного класса, а на занятиях – предъявляться преподавателю для их сдачи. Лабораторные работы по освоению SQL завершаются в первой половине семестра написанием контрольной работы «SQL запросы» (на седьмой – восьмой неделях семестра). Во второй половине семестра выполняются лабораторные работы, связанные с освоением процедурного языка программирования Oracle PL/SQL. Вторая половина семестра также завершается контрольной работой «Хранимые процедуры и триггера на языке PL/SQL».

Программами учебных курсов «Базы данных» и «Безопасность систем баз данных I» предусмотрено 2 часа аудиторных лабораторных занятий в неделю – для каждого студента. В ходе лабораторной работы на начальном ее этапе определенное время тратится на запуск приложений Oracle, подготовку студентом изменений в базе данных, необходимых для демонстрации преподавателю выполненных лабораторных работ (создание пользователя, наделение его необходимыми привилегиями, создание объектов схемы этого пользователя, выполнение скриптов задания). Чтобы уменьшить относительный вес этих накладных расходов, график выполнения лабораторных работ по названным учебным курсам предусматривает длительность аудиторной лабораторной работы для каждого студента четыре академических часа раз в две недели. Поэтому на

каждом из первых трех занятий (шесть первых недель семестра) студент должен сдавать преподавателю лабораторные работы по двум темам, чтобы к контрольной работе по SQL выполнить все шесть тем.

6

Глава II. Образец для выполнения лабораторных работ по освоению

SQL Oracle

II.1. Утилита SQL*Plus, ее настройка и работа с ней при выполнении простых запросов выборки столбцов и строк

II.1. 1. Команды утилиты SQL*Plus и ее настройка

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

Алфавитный список команд SQL*Plus включает до 50 команд

(file:……doc/server.102/b14356/toc.htm#CFAJHBCH)1). В этом разделе мы

приведем минимум команд SQL*Plus, необходимых для выполнения лабораторных работ. В табл. II.1 приведены наиболее часто используемые команды SQL*Plus.

 

Таблица II.1

Команда

Назначение

 

SPOOL путь и имя

Инициализирует запись протокола работы SQL*Plus в текстовый

файла

файл, расположенный по указанному пути

 

 

 

 

 

SPOOL OFF|ON

OFF ION отключает/возобновляет запись протокола работы

 

SQL*Plus в текстовый файл

 

DESC[RIBE] имя таблицы Выводит в окне SQL*Plus структуру таблицы

 

 

 

HOST команда ОС

Выполняет команду операционной системы из SQL*Plus

 

CONNECT имя/пароль

Соединение с сервером Oracle под другим именем/паролем

 

 

 

COL[UMN]

При выводе столбца символьного типа с указанным именем его

название_столбца

выводимый размер примет значение n символов

FORMAT An

 

 

 

 

 

COL[UMN]

При выводе столбца числового типа с указанным именем выводимый

название_столбца

размер примет значение стольких разрядов целой части, сколько

FORMAT 9--9.9--9

девяток поставлено перед точкой, с добавлением стольких разрядов

 

дробной части, сколько девяток было поставлено после точки

 

 

 

ED|IT

Вызов редактора, в котором можно править последнюю команду в

 

буфере SQL*Plus

 

EXIT

Выход из SQL*Plus

 

SET LINESIZE N

Устанавливает длину выводимой строки в n символов

 

SET PAGESIZE N

Устанавливает размер выводимой страницы, равным n строк

 

SET SERVEROUTPUT

Обеспечивает возможность работы пакета (программного модуля)

ON

DBMS_OUTPUT, обеспечивающего вывод информации при работе

 

программ PL/SQL

 

SET SQLPROMPT

Выводит подсказку «текст»

‗текст‘

 

 

SET ECHO {ON |

Устанавливает или прекращает вывод в окне SQL*Plus выполняемых

OFF}

команд в sql скриптах

 

 

 

 

 

SET TERM[OUT]

Устанавливает или прекращает вывод в окне SQL*Plus результатов

{ON | OFF}

выполнения команд в sql скриптах

 

 

 

 

 

SAVE название

Запоминание скрипта последнего запроса в файле «название скрипта»

скрипта

 

 

 

 

 

@название SQL

Запустить на выполнение SQL скрипт

скрипта

 

 

1) Эту строку надо вставлять, как URL, в браузере, указав путь к документации Oracle10g на своем компьютере»

7

Команды в SQL*Plus пишутся сразу после выводимой подсказки (сразу после установки – это «SQL>»). Регистр написания команд SQL*Plus не важен. Отметим здесь, что команды языка SQL и команды SQL*Plus – не одно и то же. В отдельных частях команд SQL, там, где задаются значения строк или столбцов хранимых таблиц, регистр важен.

Команды SQL, вводимые в окне SQL*Plus, могут занимать несколько строк, заканчиваются точкой с запятой и выполняются после нажатия клавиши «Enter». Другой способ выполнения: на последней строке SQL команды ввести символ «/» и нажать клавишу «Enter». Последняя введенная команда хранится в буфере SQL*Plus.

SQL*Plus можно запускать в интерфейсе Windows (D:\oracle\product\10.2.0\db_1\BIN\ sqlplusw.exe)1), а также – в окне DOS (D:\oracle\product\10.2.0\db_1\BIN\ sqlplus.exe).

Ссылка на SQL*Plus в интерфейсе Windows есть в панели задач отдельной строкой, откуда его обычно и запускают. Для запуска SQL*Plus в окне DOS достаточно выполнить в нем команду sqlplus без указания пути. Для получения читаемых сообщений на кириллице в свойствах окна DOS надо установить шрифт TT Lucida Console и изменить кодовую страницу командой «chcp 1251» или шрифт в свойствах окна DOS надо оставить без изменения (точечный), кодовую страницу установить командой «chcp 866» и

затем выполнить команду «set nls_lang= RUSSIAN_CIS.RU8PC866». Названные настройки «срабатывают» для русскоязычной версии Windows.

Зачастую при работе с SQL*Plus важно видеть, какой пользователь работает с базой данных и с какой базой данных он работает. У автора настоящего пособия на компьютере постоянно находится несколько баз данных с разными версиями Oracle (Oracle9i, Oracle10g Enteprise EditionE, Oracle10g Express Edition). Для того чтобы иметь ответы на эти вопросы, достаточно изменить подсказку по умолчанию в окне SQL*Plus (SQL>) на подсказку из двух частей: имени пользователя и имени базы, разделенных знаком, например , «@». Способ такой настройки указан в первом томе книги Тома Кайта «Oracle для профессионалов». Этот способ был предложен Томом Кайтом на момент его работы с Oracle9i. В версии Oracle10g настройка существенно упростилась по сравнению с предложенной Кайтом. Параметры SQL*Plus определены в скрипте glogin.sql. Этот скрипт расположен в директории D:\oracle\product\10.2.0\db_1\sqlplus\admin1. Каждый раз при соединении пользователя с сервером Oracle посредством SQL*Plus автоматически запускается скрипт glogin.sql.

В этот скрипт glogin.sql надо добавить строку:

SET SQLPROMPT "_USER'@'_CONNECT_IDENTIFIER>"

Здесь _USER и _CONNECT_IDENTIFIER предопределенные (predefined) переменные SQL*Plus Release 10.2, первая из которых определяет текущего пользователя, вторая – идентификатор соединения, который обычно совпадает с первой частью (в нашем случае ORCL) глобального имени базы данных.

Файл glogin.sql приобретает такой, например, вид:

SET SERVEROUTPUT ON size 1000000

-- последняя команда включает по умолчанию поддержку

--пакета DBMS_OUTPUT (чтобы не нужно было набирать эту команду каждый раз); --устанавливает также максимально возможный размер буфера, используемого --при работе этого пакета

SET TRIMSPOOL ON

--последняя команда гарантирует, что в выдаваемом тексте хвостовые пробелы --будут отсекаться. Если используется стандартное значение этой установки (OFF), --выдаваемые строки будут иметь длину LINESIZE

1) Здесь и далее указанный путь предполагает, что при установке Oracle строка «Oracle Home» имеет значение «D:\oracle\product\10.2.0\db_1\».

8

SET LONG 5000

--последняя команда устанавливает количество байт, выдаваемых при выводе столбцов

--типа LONG и CLOB SET LINESIZE 200

--последняя команда устанавливает размер выводимой строки

SET PAGESIZE 9999

--последняя команда устанавливает, что названия столбцов будут повторяться только --после вывода указанного числа строк

SET SQLPROMPT "_USER'@'_CONNECT_IDENTIFIER>"

--нижеприводимые комментарии к командам и сами команды (за исключением последних --двух) служат для форматирования столбцов и представлены в «родном» glogin.sql,

--появляющемся при установке Oracle10g

--Used by Trusted Oracle

COLUMN ROWLABEL FORMAT A15

-- Used for the SHOW ERRORS command COLUMN LINE/COL FORMAT A8

COLUMN ERROR FORMAT A65 WORD_WRAPPED -- Used for the SHOW SGA command

COLUMN name_col_plus_show_sga FORMAT a24 COLUMN units_col_plus_show_sga FORMAT a15 -- Defaults for SHOW PARAMETERS

COLUMN name_col_plus_show_param FORMAT a36 HEADING NAME COLUMN value_col_plus_show_param FORMAT a30 HEADING VALUE -- Defaults for SHOW RECYCLEBIN

COLUMN origname_plus_show_recyc FORMAT a16 HEADING 'ORIGINAL NAME' COLUMN objectname_plus_show_recyc FORMAT a30 HEADING 'RECYCLEBIN NAME'

COLUMN objtype_plus_show_recyc

FORMAT a12 HEADING 'OBJECT TYPE'

COLUMN droptime_plus_show_recyc

FORMAT a19 HEADING 'DROP TIME'

--Defaults for SET AUTOTRACE EXPLAIN report

--These column definitions are only used when SQL*Plus

--is connected to Oracle 9.2 or earlier.

COLUMN id_plus_exp FORMAT 990 HEADING i COLUMN parent_id_plus_exp FORMAT 990 HEADING p COLUMN plan_plus_exp FORMAT a60

COLUMN object_node_plus_exp FORMAT a8 COLUMN other_tag_plus_exp FORMAT a29 COLUMN other_plus_exp FORMAT a44

-- Default for XQUERY

COLUMN result_plus_xquery HEADING 'Result Sequence' SET echo on

SET termout on

II.1. 2. Создание пользователя Oracle и таблиц его схемы

Большинство примеров по освоению SQL запросов в настоящем пособии «привязаны» к незначительно скорректированной предметной области, поставлявшейся в прежней версии Oracle. ERD диаграмма этой предметной области представлена на рис.1.

Корректировка заключается в сокращении размера нескольких записей в таблице «customer», сокращении размера трех столбцов и удалении одного столбца этой таблицы с целью обеспечения более удобного для восприятия вывода информации из этой таблицы. Добавлено также по паре строк в таблицы department b location. Скрипты создания и наполнения таблиц пользователя DEMO представлены в приложении 1.

CUSTOMER

 

EMPLOYEE

 

# CUSTOMER_ID

 

# EMPLOYEE_ID

 

o NAME

 

o LAST_NAME

 

o ADDRESS

 

o FIRST_NAME

 

o CITY

 

o MIDDLE_INITIAL

 

o STATE

 

o JOB_ID

FK

o ZIP_CODE

 

o MANAGER_ID

 

o AREA_CODE

 

o HIRE_DATE

 

o PHONE_NUMBER

 

o SALARY

 

* SALESPERSON_ID FK

 

o COMMISSION

 

 

 

o CREDIT_LIMIT

 

* DEPARTMENT_ID FK

SALES_ORDER

# ORDER_ID

o ORDER_DATE

* CUSTOMER_ID FK o SHIP_DATE

o TOTAL

 

ITEM

 

 

# ITEM_ID

 

SALARY_GRADE

# ORDER_ID

FK

 

o PRODUCT_ID

FK

# GRADE_ID

o ACTUAL_PRICE

 

LOWER_BOUND

o QUANTITY

 

UPPER_BOUND

o TOTAL

 

9

JOB

# JOB_ID

* FUNCTION

DEPARTMENT

# DEPARTMENT_ID o NAME

o LOCATION_ID FK

LOCATION

# LOCATION_ID

o REGIONAL_GROUP

PRODUCT

# PRODUCT_ID o DESCRIPTION

PRICE

#PRODUCT_ID FK

#START_DATE

o LIST_PRICE o MIN_PRICE o END_DATE

Рис.II.1 Server Model Diagram предметной области, используемой в этом учебном пособии для освоения SQL

10

Создание предметной области состоит из нескольких шагов:

a.Создание пользователя.

b.Назначение привилегий пользователю.

с. Соединение созданного пользователя с Oracle и запуск на исполнение скрипта, создающего и заполняющего таблицы предметной области.

Для создания пользователя DEMO надо «войти» в SQL*Plus пользователем SYSTEM. По умолчанию при установке Oracle этот пользователь имеет пароль manager (отметим здесь, что регистрозависимый пароль «появился» только в Oracle11g, поэтому пароль, как и имя пользователя, можно вводить на любом регистре). Подсказка «system@10g» появится, если предварительно создать и разместить в вышеуказанном месте

%ORACLE_HOME%\sqlplus\admin файл glogin.sql в соответствии с п. II.1.1.

SYSTEM@ORCL> CREATE USER demo IDENTIFIED BY demo DEFAULT TABLESPACE users

TEMPORARY TABLESPACE temp QUOTA 1M ON users;

Пользователь создан.

SYSTEM@ORCL> GRANT CONNECT, RESOURCE, CREATE VIEW TO demo;

Привилегии предоставлены.

Эта команда позволит пользователю DEMO соединяться с сервером Oracle и создавать объекты (таблицы, программные объекты, представления и т.д.) базы данных.

SYSTEM@ORCL> CONNECT demo/demo

Соединено.

Таков будет результат выполнения этой команды, если предварительно выполнена настройка утилиты SQL*Plus в соответствии с пунктом II.1. 1.

Пользователь DEMO теперь должен запустить скрипт создания и заполнения таблиц. Чтобы такой скрипт «появился», скопируйте текст приложения 1 в блокнот (notepad.exe) и разместите его в папке c:\tmp, например, с именем demo.sql. После этого выполните команду:

SYSTEM@ORCL> @c:\tmp\demo.sql

II.1.3. Переменные привязки в среде SQL*Plus

В SQL*Plus можно также выделять именованную область памяти для хранения некоторой информации. Такая область используется внутри программ PL/SQL и SQL операторов, однако находится вне программных блоков, поэтому можно по очереди выделять ее разным программным блокам и после выполнения каждого из них выводить ее содержимое. Эта именованная область памяти называется переменной привязки bind variable /1,2/. Переменная привязки (в приведенном ниже примере «var1») в SQL*Plus создается с помощью команды VARIABLE. Переменная привязки может быть использована внутри программы PL/SQL и при использовании в ней пишется, предваряясь двоеточием.

Q1_1 (Query 1 по теме 1). Создание, обращение к и вывод переменной привязки. DEMO@ORCL>VARIABLE var1 CHAR(10)

DEMO@ORCL>BEGIN :var1:='Oracle'; END;

/

Процедура PL/SQL успешно завершена.