В книге используются следующие условные обозначения: курсив
Применяется при написании адресов URL и для выделения новых терминов.
Моноширинный шрифт
Применяется при написании имен файлов, атрибутов, функций, типов данных, пакетов и др., а также в примерах кода.
Моноширинный жирный шрифт
Обозначает вводимые пользователем данные в примерах, иллюстрирующих работу в диалоге. Также в некоторых примерах выделяет обсуждаемые операторы.
Моноширинный курсив
В некоторых примерах кода обозначает подставляемый фрагмент (например, имя файла).
ВЕРХНИЙ РЕГИСТР
В примерах кода обычно используется для обозначения ключевых слов PL/SQL.
нижний регистр
В примерах кода обычно используется для обозначения пользовательских элементов, таких как переменные, параметры и т. д.
знаки пунктуации
Должны вводиться именно так, как это указано в примерах кода.
отступ
В примерах кода служит для визуализации структуры, не является обязательным.
В примерах кода двойной дефис обозначает начало однострочного комментария, который продолжается до конца строки.
/* и */
В примерах кода эти символы определяют границы многострочного комментария, который может переходить с одной строки на другую.
В примерах кода и соответствующих фрагментах текста точка обозначает ссылку, отделяя имя объекта от имени компонента. Например, точечная нотация используется для выбора полей записи и для объявлений внутри пакета.
При описании синтаксиса в квадратные скобки заключаются необязательные элементы.
{ }
При описании синтаксиса в фигурные скобки заключается множество элементов, из которых следует выбрать только один.
I
При описании синтаксиса вертикальная черта разделяет элементы, заключенные в фигурные скобки, например {TRUE | FALSE}.
При описании синтаксиса многоточие обозначает повторяющиеся элементы. Кроме того, многоточие используется для того, чтобы показать, что были опущены не относящиеся к делу операторы или инструкции.
Обозначает совет, предложение или замечание. Например, указание на то, что какая-то конструкция присутствует только в определенных версиях.
Обозначает предупреждение. Например, мы хотим обратить внимание на то, что какая-то настройка может оказать негативное воздействие на систему.
Существует множество версий 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» версии Oracle 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.
В последующих разделах будет приведен краткий обзор таких ресурсов. Многие из них находятся в свободном доступе или распространяются за весьма небольшую плату. Знакомство с ними поможет вам усовершенствовать свое знание языка (а следовательно, и создаваемый код).
Издаваемая на протяжении многих лет серия 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.
Присоединяйтесь к сети Oracle Technology Network (OTN), которая «предлагает услуги и ресурсы, необходимые разработчикам для создания, тестирования и развертывания приложений» на основе технологии Oracle. Собравшая в свои ряды миллионы членов, сеть OTN - замечательное место, откуда можно скачать программное обеспечение Oracle, документацию и массу примеров кода. http:// otn.oracle.com.
Рик Гринвальд и Дэвид Крейнс «Oracle. Справочник». - Пер. с англ. - СПб.: Символ-Плюс, 2005.
Quest Software предлагает присоединиться к «свободному интернет-сообществу, созданному для информирования, обучения и поощрения профессионалов в области IT во всем мире». Портал Quest Pipelines (первоначально называвшийся «PL/SQL Pipeline») предлагает дискуссионные форумы, ежемесячные подборки советов, ресурсы для скачивания и, самое главное, бесплатные консультации для разработчиков и администраторов баз данных всего мира для различных СУБД, включая Oracle, DB2, SQL Server и MySQL. http:// www.quest-pipelines.com.
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 - это программа с открытым кодом, предназначенная для тестирования модулей PL/SQL. Вы можете использовать ее для стандартизации и автоматизации процесса тестирования. http:// utplsql.sourceforge.net.
Qnxo (Quality In, Excellence Out) - это разработанный Стивеном Фейерштейном продукт для активного управления процессом разработки, помогающий более эффективно создавать, повторно использовать и тестировать код. В него входит репозиторий, содержащий сотни шаблонов и программ для повторного использования. http://www.qnxo.com.
Все фрагменты кода, использованные в книге, представлены на вебсайте книги, попасть на который можно с сайта O'Reilly:
http://www.oreilly.com/catalog/oracleplsqldba
и выберите ссылку «Examples» (Примеры).
Мы также рекомендуем посетить «PL/SQL-портал» Стивена Фейер- штейна по адресу:
http://www.oracleplsqlprogramming.com
где вы сможете найти обучающие материалы, примеры кода для скачивания и многое другое. На портале также доступны все примеры из нашей книги.
Для того чтобы найти на веб-сайте книги какой-то конкретный фрагмент кода, используйте имя файла, приведенное в тексте. В большинстве случаев имена файлов приводятся в начале соответствующих примеров в виде комментариев:

< Предыдущая | Следующая > |
---|