Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
VPS/VDS серверы. 30 локаций на выбор

Серверы VPS/VDS с большим диском

Хорошие условия для реселлеров

4VPS.SU - VPS в 17-ти странах

2Gbit/s безлимит

Современное железо!

Бесплатный конструктор сайтов и Landing Page

Хостинг с DDoS защитой от 2.5$ + Бесплатный SSL и Домен

SSD VPS в Нидерландах под различные задачи от 2.6$

✅ Дешевый VPS-хостинг на AMD EPYC: 1vCore, 3GB DDR4, 15GB NVMe всего за €3,50!

🔥 Anti-DDoS защита 12 Тбит/с!

Книги: [Классика] [Базы данных] [Internet/WWW] [Сети] [Программирование] [UNIX] [Windows] [Безопасность] [Графика] [Software Engineering] [ERP-системы] [Hardware]

     

Oracle PL/SQL для профессионалов

Фейерштейн С., Прибыл Б.

Издано: Издательский дом "Питер"
ISBN: 5318005284
Твердый переплет, 944 стр.

Начало
Cодержание
Глава 3. Основы языка
Рецензия (В.Абрамов, А.Бачин, журнал Oracle Magazine RE)

[Заказать книгу в магазине "Мистраль"]

Полное содержание

Предисловие
Задачи этой книги
Структура книги
Используемые соглашения
Платформа и версия
О программном коде
Комментарии и вопросы
Благодарности
От издательства

Часть 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)

[Заказать книгу в магазине "Мистраль"]

 

VPS в 21 локации

От 104 рублей в месяц

Безлимитный трафик. Защита от ДДоС.

🔥 VPS до 5.7 ГГц под любые задачи с AntiDDoS в 7 локациях

💸 Гифткод CITFORUM (250р на баланс) и попробуйте уже сейчас!

🛒 Скидка 15% на первый платеж (в течение 24ч)

Скидка до 20% на услуги дата-центра. Аренда серверной стойки. Colocation от 1U!

Миграция в облако #SotelCloud. Виртуальный сервер в облаке. Выбрать конфигурацию на сайте!

Виртуальная АТС для вашего бизнеса. Приветственные бонусы для новых клиентов!

Виртуальные VPS серверы в РФ и ЕС

Dedicated серверы в РФ и ЕС

По промокоду CITFORUM скидка 30% на заказ VPS\VDS

Новости мира IT:

Архив новостей

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 7861149
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2019 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...