|
|
|
Книги: [Классика] [Базы данных] [Internet/WWW] [Сети] [Программирование] [UNIX] [Windows] [Безопасность] [Графика] [Software Engineering] [ERP-системы] [Hardware]
Содержание
1 Введение в PL/SQL
Почему PL/SQL?
Модель клиент/сервер
Стандарты
Средства PL/SQL
Блочная структура
Обработка ошибок
Переменные и типы
Циклические конструкции
Курсоры
Соглашения, принятые в этой книге
PL/SQL и версии Oracle
Документация Oracle
Содержимое компакт-диска
Местонахождение примеров
Примеры таблиц
Student_sequence
students
major_stats
rooms
classes
registered_students
RS_audit
log_table
temp_table
debug_table
Итоги
2 Основы PL/SQL
Блок PL/SQL
Структура блока
Лексические единицы
Идентификаторы
Зарезервированные слова
Идентификаторы в кавычках
Ограничители
Литералы
Символьные литералы
Числовые литералы
Логические литералы
Комментарии
Однострочные комментарии
Многострочные комментарии
Объявление переменных
Синтаксис объявления
Инициализация переменных
Типы PL/SQL
Скалярные типы
Семейство числовых типов
Семейство символьных типов
Семейство типов без обработки
Семейство типов даты
Семейство типов ROWID
Семейство логических типов
Семейство типов Trusted
Составные типы
Ссылочные типы
Типы LOB
Исользование % ТYРЕ
Подтипы, определяемые пользователями
Преобразование типов данных
Явное преобразование типов данных
Неявное преобразование типов данных
Области действия и области видимости переменных
Выражения и операции
Присваивание
Выражения
Символьные выражения
Логические выражения
Управляющие структуры PL/SQL
IF-THEN-ELSE
NULL-условия
Циклы
Простые циклы
Циклы WHILE
Числовые циклы FOR
Операторы СОТО и метки
Ограничения при использовании GOTO
Помеченные циклы
Рекомендации по использованию GOTO
NULL как оператор
Прагмы
Стиль программирования на PL/SQL
Комментарии
Имена переменных
Выделение заглавными буквами
Структурирование текста
Общий стиль
Итоги
3 Записи и таблицы
Записи PL/SQL
Присваивание записей
Использование %ROWTYPE
Таблицы
Таблицы и массивы
Атрибуты таблиц
COUNT
DELETE
EXISTS
FIRST и LAST
NEXT и PRIOR
Рекомендации по использованию таблиц PL/SQL
Итоги
4 SQL в PL/SQL
SQL-операторы
Использование SQL в PL/SQL
DML в PL/SQL
SELECT
INSERT
UPDATE
DELETE
Условие WHERE
Имена переменных
Сравнение символов
Ссылки на таблицы
Связи баз данных
Синонимы
Псевдостолбцы
CURRVAL и NEXTVAL
LEVEL
ROWID
ROWNUM
GRANT, REVOKE и привилегии
Объектные и системные привилегии
GRANT и REVOKE
GRANT
REVOKE
Роли
Управление транзакциями
COMMIT и ROLLBACK
Точки сохранения
Транзакции и блоки
Итоги
5 Встроенные SQL-функции
Введение
Символьные функции, возвращающие символьные значения
CHR
CONCAT
INITCAP
LOWER
LPAD
LTRIM
NLS_JNITCAP
NLS_LOWER
NLS_UPPER
REPLACE
RPAD
RTRIM
SOUNDEX
SUBSTR
SUBSTRB
TRANSLATE
UPPER
Символьные функции, возвращающие числовые значения
ASCII
INSTR
INSTRB
LENGTH
LENGTHB
NLSSORT
Числовые функции
ABS
ACOS
ASIN
ATAN
ATAN2
CEIL
COS
COSH
EXP
FLOOR
LN
LOG
MOD
POWER
ROUND
SIGN
SIN
SINH
SQRT
TAN
TANH
TRUNC
Временные функции
ADD_MONTHS
LAST_JDAY
MONTHS_BETWEEN
NEW_TIME
NEXT_DAY
ROUND
SYSDATE
TRUNC
Арифметические операции с датами
Функции преобразования
CHARTOROWID
CONVERT
HEXTORAW
RAWTOHEX
ROWIDTOCHAR
TO_CHAR (даты)
TO_CHAR (метки)
TO_CHAR (числа)
TO_DATE
TO_LABEL
TO_MULTI_BYTE
TO_NUMBER
TO_SINGLE_BYTE
Групповые функции
AVG
COUNT
GLB
LUB
MAX
MIN
STDDEV
SUM
VARIANCE
Другие функции
BFILENAME
DECODE
DUMP
EMPTY_CLOB/EMPTY_BLOB
GREATEST
GREATEST_LB
LEAST
LEAST_UB
NVL
UID
USER
USERENV
VSIZE
PL/SQL в работе: печать чисел прописью
Итоги
6 Курсоры
Определение курсора
Обработка явных курсоров
Объявление курсора
Открытие курсора
Считывание строк из курсора
Закрытие курсора
Курсорные атрибуты
Параметризованные курсоры
Обработка неявных курсоров
Циклы выборки
Простые циклы
Циклы WHILE
Курсорные циклы FOR
NO_DATA_FOUND и %NOTFOUND
Курсоры SELECT FOR UPDATE
FOR UPDATE
WHERE CURRENT OF
Размещение оператора COMMIT при считывании строк
Курсорные переменные
Объявление курсорной переменной
Ограниченные и неограниченные курсорные переменные
Выделение памяти курсорным переменным
Использование ЕХЕС SQL ALLOCATE
Автоматическое выделение памяти
Открытие курсорной переменной для запроса
Закрытие курсорных переменных
Пример курсорной переменной 1
Пример курсорной переменной 2
Ограничения на использование курсорных переменных
Итоги
7 Подпрограммы: процедуры и функции
Создание процедур и функций
Создание процедуры
Параметры и их виды
Тело процедуры
Ограничения на формальные параметры
Позиционное и именное представления
Значения параметров по умолчанию
Создание функций
Описание функций
Оператор RETURN
Свойства функций
Исключительные ситуации, устанавливаемые в подпрограммах
Удаление процедур и функций
Размещение подпрограмм
Хранимые подпрограммы и словарь данных
Локальные подпрограммы
Предварительное объявление
Хранимые и локальные подпрограммы
Зависимости в подпрограммах
Определение зависимостей
Модель временных меток
Модель подписей
Привилегии и хранимые подпрограммы
Привилегия ЕХЕCUTE
Хранимые подпрограммы и роли
Итоги
8 Модули
Модули
Онисание модуля
Тело модуля
Модули и области действия
Переопределение модульных подпрограмм
Инициализация модуля
Модули и зависимости
Использованиe хранимых функций в SQL-операторах
Уровни строгости
Прагма RESTRICT_REFERENCES
Параметры по умолчанию
PL/SQL в работе: экспортер схем PL/SQL
Итоги
9 Триггеры
Создание триггеров
Элементы триггера
Имена триггеров
Типы триггеров
Триггеры INSTEAD OF
Ограничения, налагаемые на триггеры
Триггеры и словарь данных
Представления словаря данных
Удаление и запрещение триггеров
Р-код триггера
Порядок активизации триггера
Использование :old и :new в строковых триггерах
Условие WHEN
Использование триггерных предикатов
INSERTING, UPDATING и DELETING
Изменяющиеся таблицы
Пример изменяющейся таблицы
Как избежать ошибок, связанных с изменяющимися таблицами
PL/SQL в работе: реализация каскадного обновления данных
Состав утилиты
uc.sql
demobld.sql
unindex.sql
generate.sql
Функционирование утилиты
Итоги
10 Обработка ошибок
Понятие исключительной ситуации
Объявление исключительных ситуаций
Исключительные ситуации, определяемые пользователями
Стандартные исключительные ситуации
Установление исключительных ситуаций
Обработка исключительных ситуаций
Обработчик OTHERS
Прагма EXCEPTION_INIT
Использование функции RAISE_APPLICATION_ERROR
Передача исключительных ситуаций
Исключительные ситуации, устанавливаемые в выполняемом разделе
Пример 1
Пример 2
Пример 3
Исключительные ситуации, устанавливаемые в разделе объявлений
Пример 4
Пример 5
Исключительные ситуации, устанавливаемые в разделе
исключительных ситуаций
Пример 6
Пример 7
Пример 8
Рекомендации по использованию исключительных ситуаций
Область действия исключительной ситуации
Недопущение необрабатываемых исключительных ситуаций
Обнаружение ошибок
PL/SQL в работе: универсальный обработчик ошибок
Итоги
11 Объекты
Вступление
Основы объектно-ориентированного программирования
Абстракция
Объекты и экземпляры объектов
Объектно-реляционные базы данных
Объектные типы
Создание объектных типов
Объявление и инициализация объектов
Инициализация объектов
NULL-объекты и NULL-атрибуты
Предварительное объявление типов
Методы
Вызов метода
Ключевое слово SELF
Использование атрибута %TYPE с объектами
Исключительные ситуации и атрибуты объектных типов
Изменение и удаление типов
ALTER TYPE ... COMPILE
ALTER TYPE ... REPLACE AS OBLECT
DROP TYPE
Зависимости объектов
Объекты в базе данных
Размещение объектов
Устойчивые и неустойчивые объекты
Идентификаторы объектов и ссылки на объекты
Объекты в операторах DML
INSERT
UPDATE
DELETE
Объекты-столбцы в операторах SELECT
Объекты-строки в операторах SELECT
Конструкция RETURNING
Методы MAP и ORDER
MAP
ORDER
Рекомендации по использованию методов MAP и ORDER
Итоги
12 Сборные конструкции
Вложенные таблицы
Объявление вложенной таблицы
Инициализация таблиц
Добавление элементов в существующую таблицу
Вложенные таблицы в базе данных
Работа с таблицей целиком
Работа с отдельными строками
Вложенные и индексные таблицы
Изменяемые массивы
Объявление изменяемого массива
Инициализация изменяемых массивов
Работа с элементами изменяемых массивов
Изменяемые массивы в базе данных
Работа с хранимыми изменяемыми массивами
Изменяемые массивы и вложенные таблицы
Методы сборных конструкций
EXISTS
COUNT
LIMIT
FIRST и IAST
NEXT и PRIOR
EXTEND
TRIM
DELETE
Итоги
13 Среды выполнения программ PL/SQL
Различные системы поддержки PL/SQL
Замечания относительно PL/SQL на станции клиента
PL/SQL на сервере
SQL*Plus
Управление блоками в SQL*Plus
Переменные подстановки
Переменные привязки SQL*Plus
Вызов хранимых процедур с помощью EXECUTE
Использование файлов
Использование команды SHOW ERRORS
Предкомпиляторы Oracle
Переменные привязки в предкомпиляторах
Встраивание блока в программу
Переменные-индикаторы
Обработка ошибок
Параметры, необходимые для работы предкомпилятора
OCI
Рекомендации по использованию блоков PL/SQL в OCI
Структура вызовов OCI
SQL-Station
Среда функционирования кодировщика
Вызов хранимой процедуры
Выполнение SQL-сценария
PL/SQL на станции клиента
Назначение клиентской системы
Oracle Forms
PL/SQL Editor
Object Navigator
Procedure Builder
Область просмотра
Область командной строки
Отладка PL/SQL в диалоговом режиме
Оболочка PL/SQL
Запуск оболочки
Входные и выходные файлы
Проверка синтаксиса и семантики
Рекомендации по работе с оболочкой
Итоги
14 Тестирование и отладка
Диагностика неисправностей
Рекомендации по отладке программ
Поиск места возникновения ошибки
Определение вида ошибки
Сокращение программы для построения тестового примера
Создание среды тестирования
Модуль Debug
Ввод данных в тестовые таблицы
Ситуация 1
Ситуация 1: модуль Debug
Ситуация 1: использование модуля Debug
Ситуация 1: комментарии
DBMS.OUTPUT
Модуль DBMS_OUTPUT
Процедуры в DBMS_OUTPUT
Использование модуля DBMS_OUTPUT
Ситуация 2
Ситуация 2: модуль Debug
Ситуация 2: использование модуля Debug
Ситуация 2: комментарии
Отладчики PL/SQL
Procedure Builder
Ситуация З
Ситуация 3: отладка с помощью Procedure Builder
Ситуация 3: комментарии
SQL-Station
Ситуация 4
Ситуация 4: Отладчик SQL-Station
Ситуация 4: комментарии
Сравнение Procedure Builder и SQL-Station
Методологии программирования
Модульное программирование
Нисходящее проектирование
Абстрактное представление данных
Итоги
15 Динамический PL/SQL
Введение
Статический и динамический SQL
Обзор модуля DBMS_SQL
Обработка операторов DML, не являющихся запросами, и операторов DDL
Открытие курсора
Грамматический разбор оператора
Привязка входных переменных
Выполнение оператора
Закрытие курсора
Пример
Обработка операторов DDL
Обработка запросов
Грамматический разбор оператора
Определение выходных переменных
Считывание строк
Запись результатов в переменные PL/SQL
Пример
Обработка блоков PL/SQL
Грамматический разбор оператора
Считывание значений выходных переменных
Пример
Использование параметра out_value_size
PL/SQL в работе: выполнение произвольных хранимых процедур
Новые возможности DBMS_SQL в PL/SQL 8.0
Грамматический разбор больших строк символов SQL
Обработка массивов с помощью DBMS_SQL
BIND_ARRAY
DEFINE_ARRAY
Пример обработки массивов
Описание списка выбора
Другие процедуры
Считывание данных типа LONG
DEFINE_COLUMN_LONG
COLUMN_VALUE_LONG
Дополнительные функции по обработке ошибок
LAST_ERROR_POSITION
LAST_ROW_COUNT
LAST_ROW_ID
LAST_SQL_FUNCTION_CODE
IS OPEN
PL/SQL в работе: запись данных LONG в файл
Привилегии и DBMS_SQL
Привилегии, необходимые для работы с DBMS_SQL
Роли и DBMS_SQL
Сравнение DBMS_SQL с другими динамическими средствами
Описание списка выбора
Обработка массивов
Операции над фрагментами данных типа LONG
Различия в интерфейсах
Советы и рекомендации
Повторное использование курсоров
Полномочия
Операции DDL и зависание
Итоги
16 Взаимодействие между соединениями
DBMS_PIPE
Посылка сообщений
PACK_MESSAGE
SEND_MESSAGE
Получение сообщений
RECEIVE_MESSAGE
NEXT_ITEM_TYPE
UNPACK_MESSAGE
Создание программных каналов и управление ими
Программные каналы и разделяемый пул
Общие и частные программные каналы
Процедура PURGE
Привилегии и безопасность
Частные каналы
Установление протокола связи
Форматирование данных
Адресация данных
Пример
Debug.pc
Модуль Debug
Комментарии
Модуль DBMS_ALERT
Посылка оповещений
Получение оповещений
Регистрация
Ожидание конкретного оповещения
Ожидание любого из оповещений
Другие процедуры
Отмена регистрации
Интервалы опроса
Оповещения и словарь данных
Сравнение модулей DBMS_PIPE и DBMS_ALERT
Итоги
17 Улучшенная организация очередей Oracle
Введение
Компоненты средства Advanced Queuing
Операция ENQUEUE
Операция DEQUEUE
Очереди
Таблицы очередей
Агенты
Менеджер времени
Реализация Advanced Queuing
Операции над очередями
Вспомогательные типы
SYS.AQ$_AGENT
AQ$_RECIPIENT_LIST_T
MESSAGE_PROPERTIES_T
ENQUEUE_OPTIONS_T
DEQUEUE_OPTIONS_T
Константы перечислимого типа
ENQUEUE
DEQUEUE
Администрирование очередей
Подпрограммы модуля DBMS_AQADM
CREATE_QUEUE_TABLE
DROP_QUEUE_TABLE
CREATE_QUEUE
DROP_QUEUE
ALTER_QUEUE
START_QUEUE
STOP_QUEUE
ADD_SUBSCRIBER
REMOVE_SUBSCRIBER
QUEUE_SUBSCRIBERS
GRANT_TYPE_ACCESS
START_TIME_MANAGER
STOP_TIME_MANAGER
Привилегии на работу с очередями
AQ_ADMINISTRATOR_ROLE
AQ_USER_ROLE
Доступ к объектным типам Oracle Advanced Queuing
Очереди и словарь данных
Представление для таблицы очередей
DBA_QUEUE_TABLES/USER_QUEUE_TABLES
DBA_QUEUES/USER_QUEUES
Подробные примеры
Создание очередей и таблиц очередей
Простая постановка в очередь и простой вывод из очереди
Очистка очереди
Постановка в очередь и вывод из очереди по приоритету
Постановка в очередь и вывод из нее при помощи идентификатора
сообщения или идентификатора корреляции
Просмотр очереди
Работа с очередями исключительных ситуаций
Удаление очередей
Итоги
18 Задания для баз данных и файловый ввод/вывод
Задания для баз данных
Фоновые процессы
Выполнение заданий
SUBMIT
RUN
Неработоспособные задания
Удаление задания
Изменение задания
Просмотр заданий в словаре данных
Среды выполнения заданий
Файловый ввод/вывод
Безопасность
Безопасность базы данных
Безопасность операционной системы
Исключительные ситуации, устанавливаемые в UTL_FILE
Открытие и закрытие файлов
FOPEN
FCLOSE
IS_OPEN
FCLOSE_ALL
Файловый вывод
PUT
NEW_LINE
PUT_LINE
PUTF
FFLUSH
Файловый ввод
Примеры
Модуль Debug
Загрузка информации о студентах
Печать характеристик студентов
Итоги
19 Программа Oracle Webserver
Среда Webserver
Агент PL/SQL
Описатель соединения с базой данных
Сравнение CGI и WRB
Указание параметров процедур
Web-пакет PL/SQL
НТР и HTF
Печать
Константы
Заголовок
Тело
Списки
Форматирование символов
Физическое форматирование
Формы
Таблицы
OWA_UTIL
Утилиты HTML
Утилиты динамического SQL
Временные утилиты
OWA_IMAGE
OWA_COOKIE
Типы данных
SEND
GET
GET.ALL
REMOVE
Пример
Среды разработки процедур OWA
OWA_UTIL.SHOWPAGE
SQL-Station Coder
Итоги
20 Внешние процедуры
Понятие внешней процедуры
Порядок вызова внешней процедуры
Создание процедуры
Конфигурирование прослушивающего процесса SQL*Net
Создание библиотеки
Создание процедуры-оболочки
Отображение параметров
Сравнение типов данных PL/SQL и типов данных С
Виды параметров
Свойства параметров
Внешние функции и модульные процедуры
Значения, возвращаемые функциями
Переопределение
RESTRICT_REFERENCES
Обратные вызовы базы данных
Служебные подпрограммы
OCIExtProcRaiseExcp
OCIExtProcRaiseExcpWithMsg
OCIExtProcAllocCallMemory
Выполнение SQL-операторов во внешней процедуре
OCIExtProcGetEnv
Ограничения
Советы, рекомендации и ограничения
Отладка внешних процедур
Прямой вызов из С
Соединение с процессом extproc с помощью отладчика
Рекомендации
Ограничения
Итоги
21 Большие объекты
Понятие объекта LOB
Хранение объектов LOB
Объекты LOB в DML
Инициализация столбца LOB
Пример
Работа с объектами BFILE
Каталоги
Привилегии, необходимые для работы с каталогами
Каталоги в словаре данных
Удаление каталогов
Открытие и закрытие объектов BFILE
Объекты BFILE в DML
Инициализация столбцов BFILE
Сравнение семантики копирования и ссылочной семантики
Удаление локаторов объектов BFILE
Модуль DBMS_LOB
Подпрограммы DBMS_LOB
APPEND
COMPARE
COPY
ERASE
FILECLOSE
FILECLOSEALL
FILEEXISTS
FILEGETNAME
FILEISOPEN
FILEOPEN
GETLENGTH
INSTR
LOADFROMFILE
READ
SUBSTR
TRIM
WRITE
Исключительные ситуации, устанавливаемые подпрограммами
модуля DBMS_LOB
Сравнение DBMS_LOB и OCI
PL/SQL в работе: копирование данных LONG в объект LOB
Итоги
22 Производительность и настройка
Разделяемый пул
Структура экземпляра Oracle
Процессы
Память
Файлы
Функционирование разделяемого пула
Сбрасывание содержимого разделяемого пула
Триггеры и разделяемый пул
Разделяемый пул и многопоточный сервер
Определение размера разделяемого пула
Размеры хранимых подпрограмм
Память сеанса
Закрепление объектов
KEEP
UNKEEP
SIZES
Настройка SQL-операторов
Определение плана выполнения
EXPLAIN PLAN
Утилита TKPROF
SQL-Station Plan Analyzer
Использование плана
NESTED LOOP
TABLE ACCESS(FULL)
TABLE ACCESS(BY ROWID)
Работа с сетью
Использование клиентского PL/SQL
Недопущение повторного грамматического разбора
Обработка массивов
Итоги
Приложения
А Зарезервированные слова PL/SQL
В Руководство по работе со встроенными модулями DBMS
Создание модулей
Описание модулей
DBMS_ALERT
DBMS_APPLICATION_INFO
SET_MODULE
READ_MODULE
SET_ACTION
SET_CLIENT_INFO
READ_CLIENT_INFO
DBM_AQ и DBMS_AQADM
DBMS_DEFER, DBMS_DEFER_SYS и DBMS_DEFER_QUERY
DBMS_DDL
ALTER_COMPILE
ANALYZE_OBJECT
DBMS_DESCRIBE
DESCRIBE_PROCEDURE
DBMS_JOB
DBMS_LOB
DBMS_LOCK
ALLOCATE_UNIQUE
REQUEST
CONVERT
RELEASE
SLEEP
DBMS_OUTPUT
DBMS_PIPE
DBMS_REFRESH и DBMS_SNAPSHOT
DBMS_REPCAT, DBMS_REPCAT_AUTH и DBMS_REPCAT_ADMIN
DBMS_ROWID
DBMS_SESSION
SET_ROLE
SET_SQL_TRACE
SET NLS
CLOSE_DATABASE_LINK
SET_LABEL
SET_MLS_LABEL_FORMAT
RESET_PACKAGE
UNIQUE_SESSION_ID
DBMS_SHARED_POOL
DBMS_SQL
DBMS_TRANSACTION
Команды SET TRANSACTION
Команды ALTER SESSION ADVISE
Команды COMMIT
Команды ROLLBACK и SAVEPOINT
BEGIN_DISCRETE_TRANSACTION
PURGE_MIXED
LOCAL_TRANSACTION_ID
STEP_ID
DBMS_UTILITY
COMPILE_SCHEMA
ANALYZE_SCHEMA
FORMAT_ERROR_STACK
FORMAT_CALL_STACK
IS_PARALLEL_SERVER
GET_TIME
NAME_RESOLVE
PORT_STRING
UTL_FILE
С Глоссарий средств PL/SQL
D Словарь данных
Понятие словаря данных
Соглашения по именованию
Полномочия
Представления словаря all_*/user_*/ dba_*
Dependencies (зависимости)
Collections (сборные конструкции)
Compile Errors (ошибки компиляции)
Directories (каталоги)
Jobs (задания)
Libraries (библиотеки)
LOBs (большие объекты)
Object Methods (объектные методы)
Object Method Parameters (параметры объектных методов)
Object Method Results (результаты объектных методов)
Object References (ссылки на объекты)
Object Type Attributes (атрибуты объектных типов)
Schema Objects (объекты схем)
Source Code (исходный программный текст)
Tables (таблицы)
Table Columns (столбцы таблиц)
Triggers (триггеры)
Trigger Columns (столбцы триггеров)
Views (представления)
Другие представления словаря
dbms_alert_info
dict_columns
Начало
Введение
Структура книги
Компакт-диск
Заказать книгу в магазине "Мистраль"
|
|
|
|
|
|
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее... |
|