Совершенствование приложений Oracle Forms
Покупка
Тематика:
Системы управления базами данных (СУБД)
Издательство:
ИНТУИТ
Автор:
Сергеенко Сергей Васильевич
Год издания: 2016
Кол-во страниц: 239
Дополнительно
Курс расширяет для разработчика возможности Oracle Forms, позволяя создавать многомодульные приложения, встраивать в приложения отчеты, меню, библиотеки и программные единицы.
В курсе подробно рассматривается язык PL/SQL, создание различных программных единиц на его основе и их применение для обработки событий и использования встроенных возможностей Forms Builder. Слушатель научится создавать приложения, взаимодействующие с Microsoft Office, а также интегрировать различные приложения в форму, такие как Adobe Acrobat, Windows Media Player, Explorer и др.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.03: Прикладная информатика
- 09.03.04: Программная инженерия
- ВО - Магистратура
- 09.04.01: Информатика и вычислительная техника
- 09.04.02: Информационные системы и технологии
- 09.04.03: Прикладная информатика
- 09.04.04: Программная инженерия
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Совершенствование приложений Oracle Forms 2-е издание, исправленное Сергеенко С.В. Национальный Открытый Университет “ИНТУИТ”
Совершенствование приложений Oracle Forms/ С.В. Сергеенко - М.: Национальный Открытый Университет “ИНТУИТ”, 2016 Курс расширяет для разработчика возможности Oracle Forms, позволяя создавать многомодульные приложения, встраивать в приложения отчеты, меню, библиотеки и программные единицы. В курсе подробно рассматривается язык PL/SQL, создание различных программных единиц на его основе и их применение для обработки событий и использования встроенных возможностей Forms Builder. Слушатель научится создавать приложения, взаимодействующие с Microsoft Office, а также интегрировать различные приложения в форму, такие как Adobe Acrobat, Windows Media Player, Explorer и др. (c) ООО “ИНТУИТ.РУ”, 2009-2016 (c) Сергеенко С.В., 2009-2016
PL/SQL в Oracle Forms. Блоки и переменные PL/SQL В этой лекции слушатель ознакомится с декларативной средой PL/SQL и ее возможностями, научится создавать блоки и переменные PL/SQL. PL/SQL - это язык программирования, объединяющий в себе возможности процедурных языков и SQL. Иначе говоря, он представляет собой процедурное расширение языка SQL, отсюда и название - Procedural Language SQL. PL/SQL является родным языком Oracle, так как он интегрирован с сервером базы данных и его код выполняется непосредственно сервером, поэтому программы, написанные на PL/SQL, работают быстро и эффективно. Возможность использовать SQL в блоках PL/SQL - одна из важнейших его характеристик. PL/SQL применяется для доступа к базам данных Oracle из различных сред разработки, одной из которой является Oracle Forms. В этой главе мы ознакомимся с декларативной средой PL/SQL и ее возможностями, научимся создавать блоки и переменные PL/SQL. Блоки PL/SQL PL/SQL, как и любой другой процедурный язык программирования, состоит из логически связанных элементов, объединенных в программные единицы, которые называются блоками. Каждый модуль PL/SQL состоит как минимум из одного блока. Блоки PL/SQL могут содержать любое количество подблоков, то есть иметь различный уровень вложенности. Блок как структурная единица логически связанных элементов определяет область их действия, делает код читабельным и простым для понимания. В PL/SQL различают два типа блока: анонимные блоки; именованные блоки. Анонимные блоки Анонимные блоки - это блоки, которые не имеют имени. Анонимные блоки не могут быть вызваны другими блоками, так как у них нет имени, на которое можно ссылаться. Триггеры Oracle Forms и Reports, которые также называются клиентскими триггерами, являются анонимными блоками PL/SQL. Триггеры базы данных и сценарии в SQL*Plus, заключенные в операторские скобки BEGIN и END, также являются анонимными блоками. Ниже приведена структура анонимного блока: DECLARE <имя переменной > <тип данных><(значение)>; BEGIN < исполняемый оператор>; EXCEPTION < оператор обработки исключения >;
DECLARE - раздел объявлений. В этом разделе идентифицируются переменные,
курсоры и вложенные блоки, на которые имеются ссылки в исполняемом блоке и
блоке исключений. Этот раздел необязательный.
BEGIN - END - исполняемый раздел. В этом разделе находятся операторы, которые
выполняются ядром PL/SQL во время работы вашего приложения. Этот раздел
является обязательным.
EXCEPTION - раздел исключений. В этом разделе обрабатываются различные
исключения, предупреждения и ошибки. Этот раздел необязателен.
Из всех ключевых слов в представленной структуре для анонимного блока ключевые
слова BEGIN и END являются обязательными, и между ними должен быть как минимум
один исполняемый оператор:
BEGIN
Null;
END;
Несмотря на то что ключевые слова BEGIN и END обязательны, в Oracle Forms их
можно опустить. Так, к примеру, простейший анонимный блок имеет вид:
BEGIN
Message ('Hello!');
END;
В Oracle Forms этот анонимный блок можно записать и без ключевых слов BEGIN и
END:
Message ('Hello!');
Рассмотрим различные виды анонимных блоков.
1. Блок с разделом объявлений и исключений:
DECLARE
<имя переменной > <тип данных><(значение)>;
BEGIN
< исполняемый оператор>;
EXCEPTION
< оператор обработки исключения >;
END;
Пример:
BEGIN
NULL;
EXCEPTION
WHEN OTHERS THEN NULL; 2. Вложенный блок - это такой вид блока, когда один блок объявляется в исполняемом разделе другого. В большинстве случаев вложенный блок создается с целью размещения в нем раздела EXCEPTION для обработки исключений. Это очень удобно, так как в случае возникновения исключения программа не завершается с ошибкой, а продолжает функционировать, обработав ошибку. Ниже приведен пример вложенного блока: Синтаксис: BEGIN < исполняемый оператор >; BEGIN < исполняемый оператор >; EXCEPTION < оператор обработки исключения >; END; EXCEPTION < оператор обработки исключения >; END; Практический пример: BEGIN NULL; BEGIN NULL; EXCEPTION WHEN OTHERS THEN NULL; END; NULL; EXCEPTION WHEN OTHERS THEN NULL; END; 3. Вложенный анонимный блок с разделом объявлений и исключений: Синтаксис: DECLARE <имя переменной > <тип данных><(значение)>; BEGIN < исполняемый оператор >; BEGIN < исполняемый оператор >; EXCEPTION
< оператор обработки исключения >;
EXCEPTION
< оператор обработки исключения >;
END;
Практический пример:
DECLARE
x NUMBER(4);
BEGIN
x := 1000;
BEGIN
x := x + 100;
EXCEPTION
WHEN OTHERS THEN x := x + 2;
END;
x := x + 10;
DBMS_OUTPUT.PUT_LINE(x);
EXCEPTION
WHEN OTHERS THEN
x := x + 3;
END;
Когда вы связываете код PL/SQL с триггером или полем, пользуясь таким
инструментальным средством, как Forms Builder, этот код составляет анонимный блок
PL/SQL. При этом можно создать полный блок с объявлениями, исполняемыми
операторами и разделом обработки исключений или же ограничиться только
исполняемыми операторами.
Именованные блоки
Именованные блоки - это блоки, которые имеют имя, например, функция или
процедура. Несмотря на то что анонимные блоки используются часто, каждый
разработчик пытается оформить свою PL/SQL-программу как именованный блок.
Преимущество именованного блока в том, что у него есть имя и на него можно
ссылаться из других блоков. Если считать главным отличием между анонимным
блоком и именованным отсутствие имени у первого, то тогда в Forms понятие
анонимного блока очень размыто. В Oracle Forms, несмотря на то что
пользовательский
триггер будет считаться анонимным блоком, его все же можно вызвать и на него
можно ссылаться. Ниже приведен пример именованного блока функции и процедуры:
PROCEDURE [схема.] имя [(параметр [, параметр ...])]
[AUID {DEFINER | CURRENT_USER}]
FUNCTION [схема.] имя [(параметр [, параметр ...])]
RETURN тип_возвращаемых_данных
[AUID {DEFINER | CURRENT_USER}]
[DETERMINISTIC]
[PARALLEL ENABLE ...]
[PIPELINED]
Заголовок функции отличается от заголовка процедуры лишь ключевым словом
RETURN.
Именованные блоки, так же как и анонимные, могут быть вложенными, причем
анонимный блок может быть вложен в именованный блок. Ниже приведен пример
такого блока:
PROCEDURE calc_totals
IS
year_total NUMBER;
BEGIN
year_total := 0;
/* Начало вложенного блока */
DECLARE
month_total NUMBER;
BEGIN
month_total := year_total / 12;
END set_month_total;
/* Конец вложенного блока */
END;
В этом разделе мы ознакомились с понятием блока в PL/SQL, научились определять
типы блоков и их структуру. Остается лишь сделать вывод из всего
вышеперечисленного: PL/SQL предоставляет разработчику возможность писать
удобочитаемый и гибкий код, подходить к написанию программы как к творческому
процессу, требующему нестандартного мышления.
Переменные PL/SQL
Традиционно в программировании принято считать, что переменная - это именованная
ячейка памяти, имя которой используется для доступа к данным. Можно сказать
просто, что переменная - это обозначение, заменяющее какое-либо значение, будь то
число, массив, строка или еще какой-нибудь тип. Переменные используются для
следующих целей:
Временное хранение данных.
Манипуляция хранимыми значениями.
Возможность многократного использования.
Простота обслуживания.
Повышение читаемости программы.
С понятием переменная чаще всего связываются такие понятия, как область видимости переменной, идентификаторы, ее тип и имя. Типы переменных PL/SQL PL/SQL, как и любой другой язык программирования, оперирует различными типами данных (табл. 15.1). Переменные PL/SQL: Скалярные (Scalar) - скалярные типы данных содержат одно значение. К скалярным типам данных относятся все основные типы данных сервера Oracle, за исключением Boolean, которые не могут быть назначены для столбцов. Таблица 15.1. Типы данных PL/SQL Типы данных Описание CHAR (size) Строка фиксированной длины Максимум 255 символов Умолчание - 1 байт VARCHAR2(size) Переменная длина записи Максимально - 2000 байт. Не допускается для применения в параметрах функций FLOAT (p) Числа с плавающей точкой (позиция точки не зафиксирована) Максимально FLOAT (126) NUMBER (p, s) Фиксированные с фиксированной позицией точки. Максимально 38 значащих цифр DATE Формат типа дата. Хранение в Юлианском календаре (количество дней после 1 января 4712 до нашей эры; максимальная дата 31 декабря 4712 нашей эры) Формат преобразования по умолчанию определяется переменной NLS_DATE_FORMAT или ALTER SESSION параметром Составные (Composite) - это составной тип данных, такой как записи, который позволяет объявить группу полей и манипулировать ей блоком PL/SQL. Ссылочные (Reference) - ссылочные типы данных содержат значения, называемые указателями. LOB (Large Objects) - позволяют хранить неструктурированные данные (картинки, текстовые файлы, видео, звук) объемом до 4 гигабайт. LOB поддерживает произвольный доступ к данным. Различают четыре типа LOB: CLOB (character large object) - позволяет хранить большие блоки символьных данных; BLOB (binary large objects) - служит для хранения больших бинарных объектов; BFILE (binary file) - служит для хранения больших бинарных объектов за пределами Базы Данных; NCLOB (national-language character large objects) - служит для хранения больших single-byte или fixed-width NCHAR Unicode данных; EXPR - любое значение, которое подходит по смыслу и типу данных. Примечание: в PL/SQL также используются связываемые переменные (bind variable) и переменные операционной системы, но они не относятся к PL/SQL.
Объявление переменных
Все переменные PL/SQL необходимо объявлять в декларативном разделе - DECLARE.
Рассмотрим синтаксис объявления переменной:
Identifier [CONSTANT] datatype [NOT NULL] [:=| DEFAULT expr]
Identifier - имя переменной. После объявления имени переменой на нее можно
ссылаться по имени из любой части программы.
CONSTANT - это переменная, значение которой нельзя изменить. Эта переменная должна
быть инициализирована. Инициализация в данном контексте означает, что значение
переменной при создании должно быть определенно, то есть значение этой переменной
необходимо присвоить в разделе DECLARE. Инициализация переменной производится с
помощью оператора присвоения (:=) или ключевого слова DEFAULT.
Datatype - определяет тип данных: скалярный, составной, ссылочный и LOB.
NOT NULL - ограничение, которое говорит о том, что значение переменой не может
быть пустым. Эта переменная должна быть инициализирована.
Рассмотрим пример объявления некоторых типов переменных.
1. Создайте новую форму и сохраните под именем Var.fmb.
2. Перейдите в узел “Блоки Данных”. Правым щелчком мыши вызовите
всплывающее меню и выберите пункт “Редактор Разметки”.
3. Разместите новую кнопку на канве. После того как вы разместите кнопку на канве,
Oracle Forms автоматически создаст блок.
4. Выделите кнопку и вызовите всплывающее меню. Во всплывающем меню
выберите пункт Универсальные триггеры | WHEN-BUTTON-PRESSED. В появившемся
PL/SQL-редакторе наберите и скомпилируйте нижеприведенный код:
DECLARE
Height NUMBER (5, 2) := 172.43;
Age NUMBER:= 21;
Weight CONSTANT NUMBER := 74.5;
Name VARCHAR2 (10) := 'Сергей';
S_name CHAR (20) := NULL;
F_name VARCHAR2 (20) NOT NULL:= 'Васильевич';
Man BOOLEAN NOT NULL:= TRUE;
City VARCHAR2 (50) DEFAULT 'Мариуполь';
Born DATE default sysdate;
BEGIN
Message('height: '||height);
Message('Age: '||age);
Message('Weight: '||weight);
Message('Name: '||name);
Message('S_name: '||s_name);