|
|
|
Книги: [Классика] [Базы данных] [Internet/WWW] [Сети] [Программирование] [UNIX] [Windows] [Безопасность] [Графика] [Software Engineering] [ERP-системы] [Hardware]
Полное содержание
Предисловие
Задачи этой книги
Структура книги
Используемые соглашения
Платформа и версия
О программном коде
Комментарии и вопросы
Благодарности
От издательства
Часть I. Программирование на PL/SQL
Глава 1. Введение в PL/SQL
- История PL/SQL
- Истоки PL/SQL
- Повышение переносимости приложений
- Улучшенная защита приложений и защита целостности транзакций
- Скромное начало, постоянное усовершенствование
- Так вот что такое PL/SQL...
- Интеграция с SQL
- Последовательность и условия выполнения строк программы
- Когда что-то пошло не так
- О версиях PL/SQL
- Новые возможности Oracle8i
- Новые возможности Oracle9i
- Работа с несколькими версиями PL/SQL
- Ресурсы для разработчиков PL/SQL
- Книги о PL/SQL от O'Reilly
- Другие печатные ресурсы
- PL/SQL в Интернете
- Средства разработки и утилиты
- Несколько советов
- Не стоит торопиться!
- Не бойтесь обращаться за помощью
- Поощряйте творческий, и даже радикальный, подход к разработке кода
Глава 2. Написание и запуск кода PL/SQL
- SQL*Plus
- Запуск SQL*Plus
- Выполнение SQL-инструкции
- Запуск программы на языке PL/SQL
- Запуск сценария
- Другие задачи SQL*Plus
- Обработка ошибок в SQL*Plus
- Достоинства и недостатки SQL*Plus
- Выполнение базовых операций PL/SQL
- Создание хранимой программы
- Выполнение хранимой программы
- Вывод хранимых программ
- Управление привилегиями и создание синонимов хранимых программ
- Удаление хранимой программы
- Как скрыть исходный код хранимой программы
- Средства разработки Oracle PL/SQL
- Перенос программ на PL/SQL между клиентским компьютером и сервером
- Вызов PL/SQL из других языков
- C, с использованием прекомпилятора Oracle (Pro*C)
- Java, с использованием JDBC
- Perl, с использованием Perl DBI и DBD::Oracle
- PL/SQL Server Pages
- Что же дальше
Глава 3. Основы языка
- Структура блока PL/SQL
- Разделы блока PL/SQL
- Анонимные блоки
- Именованные блоки
- Вложенные блоки
- Область действия
- Видимость переменной
- Набор символов PL/SQL
- Идентификаторы
- Зарезервированные слова
- Отступы и ключевые слова
- Литералы
- Одинарные кавычки внутри строки
- Числовые литералы
- Логические (булевы) литералы
- Разделитель в виде точки с запятой
Комментарии
- Однострочные комментарии
- Многострочные комментарии
- Ключевое слово PRAGMA
Метки
Часть II. Структура программы PL/SQL
Глава 4. Условные операторы и переходы
- Операторы IF
- Конструкция IF...THEN
- Конструкция IF...THEN...ELSE
- Конструкция IF...THEN...ELSIF
- Вложенные операторы IF
- Оператор CASE
- Простые операторы CASE
- Поисковый оператор CASE
- Вложенные операторы CASE
- Выражения CASE
- Оператор GOTO
- Ограничения на использование
- Оператор NULL
- Повышение читабельности программы
- Обработка исключений с помощью оператора NULL
- Использование оператора NULL после метки
Глава 5. Циклы
- Основы циклов
- Примеры разных циклов
- Структура циклов PL/SQL
- Простой цикл
- Завершение простого цикла: операторы EXIT и EXIT WHEN
- Эмуляция цикла REPEAT UNTIL
- Цикл WHILE
Использование счетчика в цикле FOR
- Правила для циклов FOR с числовым счетчиком
- Примеры циклов FOR с числовым счетчиком
- Обработка нетривиальных приращений
- Использование курсора в цикле FOR
- Примеры цикла FOR с курсором
- Метки цикла
Полезные советы
- Использование для счетчиков циклов понятных имен
- Как правильно попрощаться
- Получение информации о выполнении цикла FOR
- SQL-инструкция в качестве цикла
Глава 6. Обработка исключений
- Как в PL/SQL обрабатываются ошибки
- Стратегия обработки исключений
- Концепции и терминология обработки исключений
- Определение исключений
- Объявление именованных исключений
- Как связать имя исключения с кодом ошибки
- Об именованных системных исключениях
- Область действия исключения
- Как инициировать исключение
- Оператор RAISE
- Использование процедуры RAISE_APPLICATION_ERROR
- Обработка исключений
- Объединение нескольких исключений в одном обработчике
- Необработанные исключения
- Использование функций SQLCODE и SQLERRM в обработчиках исключений
- Продолжение работы после инициирования исключения
- Передача необработанного исключения
- Использование стандартизированных программ обработки ошибок
Часть III. Работа с данными в PL/SQL
Глава 7. Работа с программными данными
- Именование программных данных
Обзор типов данных PL/SQL
- Символьные типы данных
- Числовые типы данных
- Типы данных DATE TIMESTAMP и INTERVAL
- Тип данных BOOLEAN
- Двоичные данные
- Типы данных ROWID и UROWID
- Тип данных REF CURSOR
- Типы данных для поддержки Интернета
- Типы данных "any"
- Типы данных, определяемые пользователем
- Объявление программных данных
- Объявление переменной
- Объявление константы
- Объявления с ограничениями
- NOT NULL
- Объявления c привязкой
- Привязка к курсорам и таблицам
- Преимущества объявлений с привязкой
- Объявления с привязкой и ограничение NOT NULL
- Подтипы данных, определяемые программистом
Преобразование типов данных
- Неявное преобразование типов
- Явное преобразование типов
Глава 8. Строки
- Наборы символов
- Что такое набор символов
- Типы наборов символов
- Набор символов базы данных и набор символов национального языка
- Вопросы, связанные с наборами символов
- Строковые типы данных
- Тип данных VARCHAR2
- Тип данных CHAR
- Типы данных NCHAR и NVARCHAR2
- Строковые подтипы
- О работе со строками
- Пустая строка - это NULL
- Смешение значений CHAR и VARCHAR2
- Определение строковых констант
- Строковые функции
Глава 9. Числа
- Числовые типы данных
- Тип данных NUMBER
- Тип данных PLS_INTEGER
- Тип данных BINARY_INTEGER
- Числовые подтипы
- Числовые преобразования
- Модели форматирования чисел
- Функция TO_CHAR
- Использование функции CAST
- Неявные преобразования
- Числовые функции
Глава 10. Дата и время
- Типы данных даты и времени
- Тип данных DATE
- Типы данных TIMESTAMP
- Типы данных INTERVAL
- Преобразование типов данных DATE и TIMESTAMP
- Маски форматирования даты и времени
- Преобразование строк в даты
- Функция TO_DATE
- Преобразование даты в строку
- Функции CAST и EXTRACT
- Арифметические операции над значениями даты-времени
- Традиционные арифметические операции
- Арифметические действия с интервалами
- Функции обработки даты-времени
- Функции получения даты и времени
- Функции обработки информации о часовом поясе
- Функция ADD_MONTHS
- Функция FROM_TZ
- Функция LAST_DAY
- Функция MONTH_BETWEEN
- Функции ROUND и TRUNC
- Функция NEW_TIME
- Функция NEXT_DAY
Глава 11. Записи и коллекции
- Записи в PL/SQL
- Эффективность использования записей
- Объявление записей
- Коллекции в PL/SQL
- Определение типов коллекций и их объявление
- Использование коллекций
- Встроенные методы коллекций
- Работа с коллекциями
- Псевдофункции коллекций
- Сопутствующие операции
- Выбор типа коллекции
Глава 12. Другие типы данных
- Тип данных BOOLEAN
Тип данных RAW
Типы данных UROWID и ROWID
- Получение идентификаторов строк
- Использование идентификаторов строк
- Большие объекты данных
- Тип данных BFILE
- Тип данных BLOB
- Тип данных CLOB
- Тип данных NCLOB
- Обработка больших объектов
- Понятие локатора LOB
- Большие объекты - пустые и равные NULL
- Создание больших объектов
- Запись данных в объекты типа LOB
- Считывание данных из объектов типа LOB
- Особенности данных типа BFILE
- Временные объекты типа LOB
- Встроенные операции над объектами типа LOB в Oracle9i
- Функции преобразования объектов типа LOB
- Предопределенные объектные типы
- Тип данных XMLType
- Типы данных URI
- Типы данных "any"
Часть IV. SQL и PL/SQL
Глава 13. DML и управление транзакциями
- DML в PL/SQL
- Краткое введение в DML
- Атрибуты курсора для операций DML
- Предложение RETURNING в DML-инструкции
- DML и обработка исключений
- DML и записи
- Пакетные DML-операции и оператор FORALL
- Оператор FORALL
- Проблемы, вызываемые переключением контекста
- Примеры использования оператора FORALL
- Атрибуты курсора для оператора FORALL
- Откат изменений, выполняемых с помощью оператора FORALL
- Продолжение работы программы после исключения, инициированного
при выполнении оператора FORALL
- Управление транзакциями
- Инструкция COMMIT
- Инструкция ROLLBACK
- Инструкция SAVEPOINT
- Инструкция SET TRANSACTION
- Инструкция LOCK TABLE
- Автономные транзакции
- Определение автономной транзакции
- В каких случаях следует применять автономные транзакции
- Правила и ограничения на использование автономных транзакций
- Примеры автономных транзакций
Глава 14. Выборка данных
- Основы курсоров
- Некоторые термины, связанные с выборкой данных
- Типичные операции с запросами и курсорами
- Знакомство с атрибутами курсора
- Ссылки на переменные PL/SQL в курсоре
- Выбор между явным и неявным курсорами
- Работа с неявными курсорами
- Примеры неявных курсоров
- Обработка ошибок, связанных с неявными курсорами
- Атрибуты неявных курсоров
- Работа с явными курсорами
- Объявление явного курсора
- Открытие явного курсора
- Выборка данных из явного курсора
- Псевдонимы столбцов явного курсора
- Закрытие явного курсора
- Атрибуты явных курсоров
- Параметры курсора
- Предложение BULK COLLECT
- Ограничение на количество строк, возвращаемых инструкцией
с предложением BULK COLLECT
- Выборка более одного столбца
- Совместное использование предложений RETURNING и BULK COLLECT
- Инструкция SELECT с предложением FOR UPDATE
- Снятие блокировок инструкцией COMMIT
- Предложение WHERE CURRENT OF
- Курсорные переменные
- Для чего нужны курсорные переменные
- Сходство со статическими курсорами
- Объявление типов REF CURSOR
- Объявление курсорной переменной
- Открытие курсорной переменной
- Выборка данных из курсорной переменной
- Правила использования курсорных переменных
- Передача курсорных переменных в качестве аргументов
- Ограничения, связанные с курсорными переменными
- Курсорные выражения
- Использование курсорных выражений
- Ограничения, связанные с курсорными выражениями
Глава 15. Динамический SQL и динамический PL/SQL
- Инструкции NDS
- Инструкция EXECUTE IMMEDIATE
- Инструкция OPEN FOR
- Запросы с переменными-курсорами, возвращающие набор строк
- Считывание данных в переменные или записи
- Предложение USING в инструкции OPEN FOR
- Универсальная процедура для выполнения запросов
с предложением GROUP BY
- Универсальный пакет для выполнения запросов с предложением GROUP BY
- Передача значений параметров
- Подстановка и конкатенация
- Ограничения на использование метода подстановки
- Режимы использования параметров
- Дублирование формальных параметров
- Передача значения NULL
- Работа с объектами и коллекциями
Разработка приложений с использованием NDS
- Совместное применение программ с правами вызывающего
- Обработка ошибок
- Динамический PL/SQL
- Пакет NDS Utility
Сравнение возможностей динамического SQL и пакета DBMS_SQL
- Визуальное сравнение эквивалентных программ
- Какую технологию в каких случаях предпочтительнее использовать
Часть V. Создание приложений PL/SQL
Глава 16. Процедуры, функции и параметры
- Модульный код
Процедура
- Вызов процедуры
- Заголовок процедуры
- Тело процедуры
- Дескриптор END
- Оператор RETURN
- Функции
- Структура функции
- Типы возвращаемых данных
- Дескриптор END
- Вызов функции
- Функции без параметров
- Заголовок функции
- Тело функции
- Оператор RETURN
- Параметры
- Объявление параметров
- Формальные и фактические параметры
- Связывание формальных и фактических параметров
- Режимы использования параметра
- Методы передачи параметров
- Значения по умолчанию
- Локальные модули
- Преимущества локальной модуляризации
- Область видимости локальных модулей
- Локальные модули как средство повышения качества кода
- Перегрузка модулей
- Использование перегрузки
- Поддержка разных типов данных
- Ограничения на использование перегрузки
- Предобъявления
Дополнительные вопросы
- Вызов пользовательских функций в SQL
- Ограничения для пользовательских функций, вызываемых в SQL
- Директива RESTRICT_REFERENCE (Oracle8 и более ранние версии)
- Табличные функции
- Вызов функций в предложении FROM
- Конвейерные функции
- Функции трансформации
- Функции, доступные для параллельного выполнения
- Детерминированные функции
- Модульный подход - в жизнь!
Глава 17. Пакеты
- Для чего нужны пакеты
- Демонстрация возможностей пакетов
- Понятия и концепции, связанные с пакетами
- Диаграмма Буча
- Правила построения пакетов
- Спецификация пакета
- Тело пакета
- Инициализация пакетов
- Правила вызова элементов пакета
Работа с данными пакета
- Глобальные данные в одном сеансе Oracle
- Глобальные общие данные
- Пакетные курсоры
- Повторно инициализируемые пакеты
- В каких случаях следует использовать пакеты
- Инкапсуляция операций с данными
- Исключение жесткого кодирования литералов
- Устранение недостатков встроенных функций
- Группировка логически связанных функций
- Кэширование статических данных сеанса
- Пакеты и объектные типы
Глава 18. Триггеры
- Триггеры уровня инструкций DML
- Концепции триггеров
- Создание триггера
- Пример аудита, выполняемого с помощью триггера
- Триггеры одного типа
- Ошибки, возникающие при изменении таблицы: проблема и решение
- Триггеры уровня DDL
- Создание триггера
- События триггеров
- Параметры триггеров
- Применение событий и параметров
- Удаление неудаляемого триггера
- Триггеры событий базы данных
- Создание триггера события базы данных
- Триггеры STARTUP
- Триггеры SHUTDOWN
- Триггеры LOGON
- Триггеры LOGOFF
- Триггеры SERVERERROR
- Неработоспособные триггеры
- Триггеры INSTEAD OF
- Триггер INSTEAD OF INSERT
- Триггер INSTEAD OF UPDATE
- Триггер INSTEAD OF DELETE
- Заполнение таблиц
- Триггеры AFTER SUSPEND
- Предпосылки создания триггера
- Пример реализации
- Создание триггера
- Функция ORA_SPACE_ERROR_INFO
- Пакет DBMS_RESUMABLE
- Многократный запуск триггера
- Сопровождение триггеров
- Отключение, включение и удаление триггеров
- Просмотр триггеров
- Проверка состояния триггера VALID
Глава 19. Управление приложениями PL/SQL
- Управление программным кодом и его анализ в базе данных
- Представления словаря данных для программистов PL/SQL
- Вывод информации о хранимых объектах
- Вывод и поиск исходного кода
- Защита кода хранимой программы
- Как скрыть исходный код
- Работа со скрытым кодом
- Встроенная компиляция
- Настройка, выполняемая администратором базы данных
- Сравнение интерпретируемого и компилируемого режимов
- Тестирование программ PL/SQL
- Неэффективные технологии тестирования
- Где найти дополнительную информацию
- Отладка программ PL/SQL
- Неупорядоченная отладка
- Иррациональная отладка
- Советы и стратегии отладки
- Оптимизация программ PL/SQL
- Анализ производительности PL/SQL
- Трассировка выполнения кода
- Повышение производительности приложения
- Как избежать выполнения ненужного кода
- Умение слушать
- Использование пакетных данных для минимизации
- SQL-обращений к базе данных
- Использование предложения BULK COLLECT и оператора FORALL
Часть VI. Особые возможности PL/SQL
Глава 20. Выполнение программ PL/SQL
- Заглянем внутрь
- Концепции PL/SQL
- Хранение PL/SQL-кода на сервере
- Слишком большой DIANA-код
- Управление зависимостями
- Зависимости в серверном PL/SQL
- Восстановление работоспособности
- Взаимосвязи в клиентском PL/SQL
- Удаленные зависимости
- Как PL/SQL использует память сервера Oracle
- Память сервера
- Курсоры и память
- Советы по экономии памяти
- Трассировка памяти
- Выполнение серверного кода PL/SQL
- Компиляция анонимного блока
- Компиляция хранимого объекта
- Выполнение программ PL/SQL
- Клиентский код PL/SQL
- Поддерживаемые версии и функциональные возможности
- Ограничения, касающиеся удаленных вызовов в Oracle
- Клиентские библиотеки PL/SQL
- Модели разрешений
- Модель разрешений владельца
- Модель разрешений на выполнение программ
- Комбинированная модель разрешений
- Аппаратное обеспечение для PL/SQL: больше - лучше?
- Однопроцессорная система
- Симметричные мультипроцессорные системы
- Кластерные системы
- Что вам нужно знать
Глава 21. Объектно-ориентированные возможности PL/SQL
- Обзор объектных возможностей Oracle
Пример объектного приложения
- Иерархия типов
- Методы
- Запись, извлечение и использование хранимых объектов
- Эволюция и создание типов
- И снова указатели
- Типы данных "any"
- Все делаем сами
- Сравнение объектов
- Объектные представления
- Существующие реляционные системы
- Объектное представление с атрибутом-коллекцией
- Объектные подпредставления
- Объектное представление, реализующее обратное отношение
- Триггеры INSTEAD OF
- Различие между объектными представлениями и объектными таблицами
- Сопровождение объектных типов и объектных представлений
- Привилегии
- О целесообразности применения объектно-ориентированного подхода
Глава 22. Взаимодействие Java и PL/SQL
- Oracle и Java
Подготовка к использованию Java в Oracle
- Установка Java
- Проектирование и компиляция кода Java
- Определение привилегий, необходимых для разработки
- и выполнения Java-кода
- Примеры использования Java
- Выбор функциональных элементов
- Создание пользовательского класса Java
- Компиляция и загрузка класса в Oracle
- Создание оболочки PL/SQL
- Удаление файлов из PL/SQL
- Утилита loadjava
Утилита dropjava
Управление объектами Java в базе данных
- Пространство имен Java в Oracle
- Пакет DBMS_JAVA
- Функция LONGNAME: преобразование длинных имен Java
- Функция GET_ COMPILER_OPTION и процедуры SET_
- и RESET_COMPILER_OPTION: чтение и установка параметров компилятора
- Процедура SET_OUTPUT: управление выводом из Java
- Процедуры EXPORT_SOURCE, EXPORT_RESOURCE
- и EXPORT_CLASS: экспорт объектов схемы
- Как сделать методы Java доступными в PL/SQL
- Спецификация вызова
- Некоторые правила написания оболочек для Java-методов
- Сопоставление типов данных
- Вызов метода Java в SQL
- Обработка исключений с помощью Java
- Новые возможности файлового ввода-вывода
- Другие примеры использования Java
Глава 23. Внешние процедуры
- Концепция внешних процедур
- Пример выполнения команды операционной системы
- Механизм вызова внешних процедур
- Особенности выполнения внешних процедур в Oracle
- Конфигурирование Oracle Net
- Настройка параметров конфигурации листенера
- Уровень защиты, установленный в данной конфигурации
- Создание библиотеки Oracle
Вызов внешней функции
- Спецификация вызова
- Список внешних параметров
- Сопоставление параметров
- Синтаксис предложения PARAMETERS
- Свойства параметров
- Инициирование исключений из программ на языке С
Агенты, отличные от используемых по умолчанию
Сопровождение внешних процедур
- Удаление библиотек
- Словарь данных
- Советы по использованию внешних процедур
Алфавитный указатель
Начало
Cодержание
Глава 3. Основы языка
Рецензия (В.Абрамов, А.Бачин, журнал Oracle Magazine RE)
[Заказать книгу в магазине "Мистраль"]
|
|
|
|
|
|
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее... |
|