DeepEdit!

Программирование баз данных на Oracle, техническая документация, литература, статьи и публикации

  • Увеличить размер шрифта
  • Размер шрифта по умолчанию
  • Уменьшить размер шрифта

Используемые обозначения

В книге используются следующие условные обозначения: курсив
Применяется при написании адресов URL и для выделения новых терминов.
Моноширинный шрифт
Применяется при написании имен файлов, атрибутов, функций, типов данных, пакетов и др., а также в примерах кода.
Моноширинный жирный шрифт
Обозначает вводимые пользователем данные в примерах, иллюстрирующих работу в диалоге. Также в некоторых примерах выделяет обсуждаемые операторы.
Моноширинный курсив
В некоторых примерах кода обозначает подставляемый фрагмент (например, имя файла).
ВЕРХНИЙ РЕГИСТР
В примерах кода обычно используется для обозначения ключевых слов PL/SQL.
нижний регистр
В примерах кода обычно используется для обозначения пользовательских элементов, таких как переменные, параметры и т. д.
знаки пунктуации
Должны вводиться именно так, как это указано в примерах кода.
отступ
В примерах кода служит для визуализации структуры, не является обязательным.
В примерах кода двойной дефис обозначает начало однострочного комментария, который продолжается до конца строки.
/* и */
В примерах кода эти символы определяют границы многострочного комментария, который может переходить с одной строки на другую.
В примерах кода и соответствующих фрагментах текста точка обозначает ссылку, отделяя имя объекта от имени компонента. Например, точечная нотация используется для выбора полей записи и для объявлений внутри пакета.
[ ]
При описании синтаксиса в квадратные скобки заключаются необязательные элементы.
{ }
При описании синтаксиса в фигурные скобки заключается множество элементов, из которых следует выбрать только один.
I
При описании синтаксиса вертикальная черта разделяет элементы, заключенные в фигурные скобки, например {TRUE | FALSE}.
При описании синтаксиса многоточие обозначает повторяющиеся элементы. Кроме того, многоточие используется для того, чтобы показать, что были опущены не относящиеся к делу операторы или инструкции.
Обозначает совет, предложение или замечание. Например, указание на то, что какая-то конструкция присутствует только в определенных версиях.
Обозначает предупреждение. Например, мы хотим обратить внимание на то, что какая-то настройка может оказать негативное воздействие на систему.
Версии PL/SQL
Существует множество версий PL/SQL, и, возможно, вам как администратору базы придется работать с несколькими из них одновременно.
Базовой версией PL/SQL для нашей книги будет Oracle Database 10g. Однако при необходимости мы будем ссылаться на специальные возможности, введенные (или просто доступные) в других, более ранних версиях. Если какая-то функциональность напрямую зависит от версии, например, если ее можно использовать только в Oracle Database 10g Release 2, это будет особо отмечено в тексте.
Каждой версии базы данных Oracle соответствует собственная версия PL/SQL. Чем более свежую версию PL/SQL вы используете, тем больший спектр возможностей перед вами открыт. Пользователям PL/SQL следует всегда быть в курсе последних нововведений. Необходимо постоянно самосовершенствоваться, изучая новые возможности каждой версии, обдумывая, как можно было бы применить их в ваших приложениях, и определяя, есть ли среди предлагаемых новых приемов настолько полезные, что имеет смысл изменить уже существующие приложения, с тем чтобы воспользоваться новыми возможностями.
Основные элементы всех версий PL/SQL (прошлых и настоящей) представлены в табл. 1, которая дает самое общее представление о новых возможностях, предлагаемых в каждой версии.
Линия продуктов Oracle Developer также поставляется с собственной версией PL/SQL, которая обычно отстает от версии, доступной в самой СУБД Oracle. В этой главе (и в книге в целом) нас будет интересовать серверная реализация PL/SQL.
Таблица 1. Версии СУБД Oracle и соответствующие версии PL/SQL
Версия СУБД Oracle
Версия PL/SQL
Описание
6.0
1.0
Это исходная версия PL/SQL, которая использовалась главным образом как язык сценариев в SQL*Plus (еще не было возможности создания именованных, допус­кающих повторное использование и вызываемых про­грамм) и как язык программирования в SQL*Forms 3.
7.0
2.0
Значительное усовершенствование PL/SQL 1.0. Была добавлена поддержка хранимых процедур, функций, пакетов, определяемых программистом записей, таб­лиц PL/SQL, а также много пакетов расширения.
7.1
2.1
Данная версия поддерживала определяемые програм­мистом подтипы, разрешала использование храни­мых функций внутри команд SQL и предлагала дина­мический SQL в пакете DBMS_SQL. В версии PL/SQL 2.1 наконец появилась возможность исполнять коман­ды SQL DDL из программ PL/SQL.
7.3
2.3
Данная версия расширяла функциональность PL/ SQL-таблиц, улучшала управление удаленными зави­симостями, предоставляла возможности файлового ввода-вывода в PL/SQL с помощью пакета UTL_FILE и завершала реализацию курсорных переменных.
8.0
8.0
Номер новой версии отражал стремление корпорации Oracle к синхронизации номеров версий связанных продуктов. PL/SQL 8.0 - это версия PL/SQL, которая поддерживает новые возможности СУБД Oracle8, включая большие объекты (LOB), объектно-ориенти­рованные проектирование и разработку, коллекции (VARRAY и вложенные таблицы) и опцию Oracle AQ (Advanced Queuing).
8.1
8.1
Версия PL/SQL для первой из серии «i» версии Orac­le 8i предложила действительно впечатляющий набор дополнительных возможностей, включая новую вер­сию динамического SQL, поддержку Java в базе дан­ных, модель прав вызывающего, опцию полномочий на исполнение, автономные транзакции и высокопро­изводительные «массовые» операторы DML и запросы.

Версия
Версия
Описание
СУБД Oracle
PL/SQL

9.1
9.1
Версия СУБД Oracle 9i Release 1 буквально наступала на пятки своей предшественнице. Она включала насле­дование объектных типов, табличные функции и кур­сорные выражения (что позволило распараллеливать исполнение функций PL/SQL), поддерживала много­уровневые коллекции, оператор и выражение CASE.
9.2
9.2
В версии СУБД Oracle 9i Release 2 основное внимание уделялось языку XML (Extensible Markup Language), а также были предоставлены многие другие дополни­тельные возможности, такие как ассоциативные мас­сивы, для индексирования которых в дополнение к целым числам могли использоваться строки VAR- CHAR2, записеориентированные операторы DML (позво­ляющие, например, выполнить вставку с использова­нием записи) и множество усовершенствований UTL_FILE (для поддержки чтения/записи файлов из программы PL/SQL).
10.1
10.1
Версия Oracle Database 10g Release 1 была выпущена в 2004 году и посвящена поддержке распределенных вычислений, при этом особое внимание уделялось усо­вершенствованию и автоматизации управления базой данных. Очевидно, что для разработчиков PL/SQL важнейшими новыми возможностями были оптими­зированный компилятор и предупреждения, выдавае­мые в процессе компиляции.
10.2
10.2
Версия Oracle 10g Release 2, появившаяся осенью 2005, предложила разработчикам PL/SQL несколько новых возможностей, наиболее значимой из которых явля­лась поддержка синтаксиса препроцессора, делающая возможной условную компиляцию частей программы в зависимости от пользовательских логических выра­жений.



Обзор ресурсов по PL/SQL

Прежде чем перейти к своей основной задаче - описанию необходимых именно для администратора базы данных возможностей языка PL/SQL, мы предоставим нашему читателю описание основ PL/SQL. Однако существует множество других книг и ресурсов, которые помогут вам получить более глубокие знания по PL/ SQL.
В последующих разделах будет приведен краткий обзор таких ресурсов. Многие из них находятся в свободном доступе или распространяются за весьма небольшую плату. Знакомство с ними поможет вам усовершенствовать свое знание языка (а следовательно, и создаваемый код).
Серия O'Reilly, посвященная PL/SQL
Издаваемая на протяжении многих лет серия Oracle PL/SQL издательства O'Reilly включает в себя длинный список книг. Мы приведем перечень изданий, опубликованных на настоящий момент. Гораздо более полную информацию вы сможете найти в разделе Oracle веб-сайта O'Reilly (http://oracle.oreilly.com).
«Learning Oracle PL/SQL» (Изучаем Oracle PL/SQL), авторы Билл Прибыл (Bill Pribyl) и Стивен Фейерштейн (Steven Feuerstein)
Несколько неформальное знакомство с языком, идеальное как для новичков в программировании, так и для тех, кто знаком с каким- то другим языком. Особое внимание уделено разработке веб-приложений на PL/SQL.
«Oracle PL/SQL Programming» (Программирование на Oracle PL/SQL), автор Стивен Фейерштейн (Steven Feuerstein) с участием Билла Прибыла (Bill Pribyl)
Эта книга, лежащая на столе у большинства профессиональных PL/SQL-программистов и администраторов баз данных, на 1200 страницах охватывает все возможности языка PL/SQL. Четвертое издание описывает функциональность вплоть до версии Oracle Database 10g Release 2.
«Oracle PL/SQL for DBAs» (Oracle PL/SQL для администраторов баз данных), авторы Аруп Нанда (Arup Nanda) и Стивен Фейерштейн (Steven Feuerstein)
В книге, которую вы сейчас читаете, приводится краткий обзор всех возможностей языка PL/SQL, а углубленно рассматриваются темы, имеющие особое значение для администраторов баз данных, такие как курсоры, табличные функции, шифрование и хеширование данных, контроль доступа на уровне строк, детальный аудит, генерация случайных значений и использование планировщика. Книга включает и описание возможностей Oracle Database 10g Release 2.
«Oracle PL/SQL Best Practices» (Oracle PL/SQL. Лучшие практические методы), автор Стивен Фейерштейн (Steven Feuerstein)
Небольшая книга, описывающая более 100 приемов, которые помогут вам писать качественный PL/SQL-код. С читателем делится своим опытом специалист по PL/SQL. Изначально книга создавалась для СУБД Oracle8i, но практически все данные в ней рекомендации применимы и для более новых версий.
«Oracle PL/SQL Developer's Workbook» (Задачник для разработчика на Oracle PL/SQL), авторы Стивен Фейерштейн (Steven Feuerstein) и Эндрю Одеван (Andrew Odewahn)
Сборник вопросов и ответов для проверки понимания языка разработчиками на PL/SQL. Актуально для СУБД Oracle8i.
«Oracle Built-in Packages» (Встроенные пакеты Oracle), авторы Стивен Фейерштейн (Steven Feuerstein), Чарльз Дай (Charles Dye) и Джон Бересниевич (John Beresniewicz)
Справочник по встроенным пакетам, которые Oracle поставляет вместе с сервером базы данных. Применение этих пакетов позволяет упростить сложные задачи и решить невыполнимые. Эта книга соответствует версии Oracle8, но обсуждение встроенных пакетов все еще представляет интерес. Более актуальные данные о синтаксисе спецификации пакетов вы найдете в «Oracle in a Nutshell»1 Рика Грин- вальда (Rick Greenwald) и Дэвида К. Крейнса (David C. Kreines).
«Oracle PL/SQL Language Pocket Reference» (Карманный справочник по языку Oracle PL/SQL), авторы Стивен Фейерштейн (Steven Feuerstein), Билл Прибыл (Bill Pribyl) и Чип Дэйвс (Chip Dawes)
Небольшой, но очень полезный краткий справочник, легко помещающийся в карман. Описывает синтаксис языка PL/SQL вплоть до версии Oracle Database 10g.
«Oracle PL/SQL Built-ins Pocket Reference» (Карманный справочник по встроенным пакетам и функциям Oracle PL/SQL), авторы Стивен Фейерштейн (Steven Feuerstein), Джон Бересниевич (John Beresniewicz) и Чип Дэйвс (Chip Dawes)
Еще одно полезное и лаконичное руководство по встроенным функциям и пакетам для Oracle8.
Компакт-диск «Oracle PL/SQL CD Bookshelf»
Предлагает электронные версии большинства из перечисленных выше книг. Актуален для СУБД Oracle8i.
PL/SQL в Интернете
Также существует несколько замечательных сетевых ресурсов, которые помогут вам усовершенствовать свои знания по PL/ SQL.
Oracle Technology Network
Присоединяйтесь к сети Oracle Technology Network (OTN), которая «предлагает услуги и ресурсы, необходимые разработчикам для создания, тестирования и развертывания приложений» на основе технологии Oracle. Собравшая в свои ряды миллионы членов, сеть OTN - замечательное место, откуда можно скачать программное обеспечение Oracle, документацию и массу примеров кода. http:// otn.oracle.com.
Рик Гринвальд и Дэвид Крейнс «Oracle. Справочник». - Пер. с англ. - СПб.: Символ-Плюс, 2005.
Quest Pipelines
Quest Software предлагает присоединиться к «свободному интернет-сообществу, созданному для информирования, обучения и поощрения профессионалов в области IT во всем мире». Портал Quest Pipelines (первоначально называвшийся «PL/SQL Pipeline») предлагает дискуссионные форумы, ежемесячные подборки советов, ресурсы для скачивания и, самое главное, бесплатные консультации для разработчиков и администраторов баз данных всего мира для различных СУБД, включая Oracle, DB2, SQL Server и MySQL. http:// www.quest-pipelines.com.
PLNet.org
PLNet.org - это хранилище программ с открытым кодом, написанных на PL/SQL и могущих быть полезными для разработчиков на PL/SQL, которое поддерживается Биллом Прибылом. Вы можете узнать больше из описания проекта или из ответов на часто задаваемые вопросы (FAQ). Вам предложат ряд полезных программ, например utPLSQL, используемую для автоматизированного тестирования модулей PL/SQL. http:// plnet.org.
Open Directory Project
Благодаря проекту «dmoz» (Directory Mozilla) здесь находится коллекция ссылок на сайты, посвященные PL/SQL. Имеется также подкаталог «Tools» (Инструменты) с большим набором ссылок на коммерческие и некоммерческие программы для разработчиков. http:// dmoz.org/Computers/Programming/Languages/PL-SQL/.
Сайт Стивена Фейерштейна Oracle PL/SQL Programming
На этом сайте предлагаются обучающие курсы, программы для скачивания и другие ресурсы для программистов на PL/SQL, разработанные главным образом Стивеном Фейерштейном. Вы можете скачать материалы всех его семинаров с приложенным кодом. Примеры из этой книги также находятся там. http://www.oracleplsqlpro- gramming.com.
utPLSQL
utPLSQL - это программа с открытым кодом, предназначенная для тестирования модулей PL/SQL. Вы можете использовать ее для стандартизации и автоматизации процесса тестирования. http:// utplsql.sourceforge.net.
Qnxo
Qnxo (Quality In, Excellence Out) - это разработанный Стивеном Фейерштейном продукт для активного управления процессом разработки, помогающий более эффективно создавать, повторно использовать и тестировать код. В него входит репозиторий, содержащий сотни шаблонов и программ для повторного использования. http://www.qnxo.com.
О коде
Все фрагменты кода, использованные в книге, представлены на вебсайте книги, попасть на который можно с сайта O'Reilly:
http://www.oreilly.com/catalog/oracleplsqldba
и выберите ссылку «Examples» (Примеры).
Мы также рекомендуем посетить «PL/SQL-портал» Стивена Фейер- штейна по адресу:
http://www.oracleplsqlprogramming.com
где вы сможете найти обучающие материалы, примеры кода для скачивания и многое другое. На портале также доступны все примеры из нашей книги.
Для того чтобы найти на веб-сайте книги какой-то конкретный фрагмент кода, используйте имя файла, приведенное в тексте. В большинстве случаев имена файлов приводятся в начале соответствующих примеров в виде комментариев: