13. Pl/sql oracle
13.1. Обзор по продуктам oracle
Система Oracle является одним из наиболее популярных продуктов в области разработки программных решений, которые заставляют функционировать Интернет. Основатели – Лари Элисон, Боб Майнер и Эд Оутс – 1977.
1978 ORACLE версия 1.0 на языке ассемблера на PDP-11;
1980 версия 2.0 на PDP-11 на ассемблере;
1983 версия 3, предназначена для мейнфреймов и мини-компьютеров, написана на языке С;
1984 версия 4 поддерживается переносимость между серверами и ПК;
1986 версия 5.0 - выпуск первой РСУБД с поддержкой распределенных вычислений;
1988 версия 6. Выпущен пакет финансовых программ, а также комплект CASE-средств;
1992 выпущена версия 7 под управление ОС Unix. Начинается разработка программных приложений, как у Microsoft. (Word, Excel, PowerPoint);
1994-1995 выходит версия для персональных компьютеров;
1996 реализация идеи сетевого компьютера.
Появляются приложения:
- Oracle Financials (Финансы);
- Oracle Supply Chain Management (Управление цепочками поставок);
- Oracle Manufacturing (Управление производством);
- Oracle Project Systems (Системы проектирования);
- Oracle Human Resources (Управление персоналом);
- Oracle Market Management (Управление маркетингом).
1997 версия 8, обеспечивает работу большого числа пользователей с большим объемом данных. Отказывается от архитектуры клиент-сервер, концентрируется на Интернет - приложениях;
1998 разрабатываются продукты для ОС Linux. Разрабатываются приложения на основе браузера;
2000 версия Oracle9i. Продукт Oracle становится базой данных номер один для Интернета. Далее выходит версия Oracle Database10g. В настоящее время появилась и 11 версия.
Конкуренты:
Computer Associates – база данных Ingres; IBM – DB/2; Informix – Informix; Microsoft – Access, SQL Server; Software AG – ADABAS; PostgressSQL – общедоступная БД с открытым исходным кодом.
В чем отличие. Корпорация Oracle является производителем программного обеспечения, предназначенного для управления информацией. Данное программное обеспечение включает СУБД, средства разработки приложений, системы бизнес-анализа и инструменты разработки Интернет-приложений для бизнеса.
Продукты Oracle можно разделить на пять категорий:
Oracle database;
Oracle Application Server (Сервер приложений);
Internet Development Suite (Комплект продуктов для Интернет разработок);
Data Warehousing and Business Development (Средства для работы с хранилищем данных и организации бизнеса);
Oracle E-business Suite (Набор комплексных приложений для электронного бизнеса).
13.2. Pl/sql – Procedural Language/Structured Query Language
(Процедурный язык / Язык структурированных запросов)
Впервые PL/SQL появился в шестой версии Oracle в 1988г.
PL/SQL – язык программирования, напоминающий языки ADA и C.
PL/SQL используется для считывания информации, заполнения БД, создания хранимых объектов и даже для отображения Web – страниц.
Oracle – это не просто база данных, она является также и процессором, поддерживающим различные языки программирования. Так Oracle9i содержит процессор Java со встроенной виртуальной машиной Java (Java Virtual Machine – JVM), а также процессор PL/SQL. Oracle является развитой системой, и поэтому не требует других программных продуктов. Процессор PL/SQL тесно интегрирован с базой данных.
Рис.13.1 Архитектура PL/SQL
Рис.13.1 демонстрирует процесс работы PL/SQL внутри базы данных и за ее пределами. Центральное положение занимает сервер Oracle, который является основным процессором БД. Он координирует все обращения к базе данных. Когда программа посылает на сервер запрос, БД Oracle загружает откомпилированный код в память, после чего процессоры PL/SQL и SQL выполняют этот код.
Структура программы PL/SQL
[DECLARE]
Переменные, курсоры
BEGIN
- Команды SQL
- Команды PL/SQL
[EXEPTION]
Действия при возникновении ошибок
END;
/
Программы в PL/SQL обычно называют блоками. Фактически блоки представляют собой завершение программы, которые могут быть успешно выполнены. Каждая программная единица PL/SQL состоит из одного или нескольких блоков. Эти блоки могут быть полностью автономными или вложенными один в другой. Для описания программ используются комментарии.
При этом различают следующие комментарии:
-- однострочные, /* --- */ многострочные.
Типы блоков.
Существуют три типа блоков, из которых может быть выстроена программа PL/SQL: анонимные блоки; процедурные; функции (рис.13.2).
Рис.13.2. Типы блоков
Анонимные блоки не имеют имен. Эти блоки не хранятся в базе данных. Они передаются на исполнение машине PL/SQL во время выполнения приложения. Подпрограммы (subprograms) – это именованные блоки PL/SQL, хранимые в базе данных. Они могут быть вызваны из любой точки приложения. Объявлять их можно как процедуры или функции. Обычно процедура используется для выполнения действия, а функция - для вычисления и возврата значений.
Среды программирования на PL/SQL
Oracle JDeveloper 10g - интегрированная среда разработки.
Позволяет:
- производить навигацию по присоединенной базе данных и доступ к ее объектам;
- создание пользователей и объектов базы данных;
- создание, выполнение и отладка программ на PL/SQL (например, процедур, функций и пакетов).
iSQL*Plus – это интерфейс к SQL*Plus, предоставляемый из браузера.
Рис.13.3. Архитектура iSQL*Plus
Переменные PL/SQL:
Скалярные
Составные
Ссылочные
LOB (большие объекты)
Наиболее часто встречаются следующие типы данных:
VARCHAR2, NUMBER, DATE, BOOLEAN
Инициализация переменных производится по следующей схеме:
Имя_переменной тип_переменной := значение;
Также можно определять переменные в теле основной программы:
Имя_переменной := значение;
Примеры
DECLARE
L_name VARCHAR2(30);
L_today DATE := sysdate;
L_counter NUMBER :=0;
L_average_amount NUMBER(12,2);
Flag BOOLEAN := FALSE;
Атрибут %TYPE позволяет объявить переменную на основе уже объявленной переменной или столбца базы данных. Это позволит избежать ошибок, вызванных несоответствием в типах данных или неверной точностью.
Например.
Balance NUMBER(7,2);
Min_balance balance%TYPE:=1000;
В PL/SQL имеются переменные подстановки, которые используются для ввода данных во время выполнения. В блоке перед именем переменной подстановки ставится амперсанд.
Empno NUMBER(6) := &empno;
Команда DEFINE используется для определения пользовательской переменной
DEFINE lname :=Urman