Огромное количество разработчиков приложений и администраторов баз данных во всем мире используют программное обеспечение компании Oracle для создания сложных систем управления, большими объемами данных. Сердцем программного обеспечения Oracle является PL/SQL – язык программирования, представляющий собой процедурное расширение Oracle-версии языка SQL (Structured Query Language) и использующийся для разработки приложений в среде Oracle Developer.
PL/SQL включается в состав практически каждого нового продукта, Oracle. Профессиональные программисты пользуются им для выполнения самых разнообразных задач:
- реализации бизнес-логики в Oracle Server с помощью хранимых процедур PL/SQL и триггеров базы данных;
- формирования XML-документов, их хранения в базе данных, а также для выполнения операций с этими документами;
- связывания web-страниц с базой данных Oracle;
- выполнения и автоматизации задач администрирования базы данных – от защиты на уровне строк до управления сегментами отката в программах PL/SQL
PL/SQL создан по образцу языка Ada, разработанного в свое время для целей Министерства обороны США. Это высокоуровневый язык, в основу которого положены концепции абстракции данных, сокрытия информации и другие современные стратегии разработки программного обеспечения. Oracle включила в него самые прогрессивные элементы процедурных языков программирования (причем в очень удачном сочетании!), благодаря чему получился исключительно мощный, гибкий и в то же время простой язык. Перечислим главные из них:
- полный диапазон типов данных, от чисел и строк до таких комплексных структур, как записи (аналогичны строкам таблиц реляционной базы данных), коллекции (Oracle-версия массивов) и даже тип XMLType, предназначенный для управления XML-документами, которые обычно хранятся в базе данных Oracle;
- явно определяемая и наглядная структура блоков, облегчающая расширение и сопровождение приложений PL/SQL;
- операторы управления потоком, в том числе операторы условного перехода, оператор CASE и три вида циклов;
- обработчики исключений для обработки ошибок;
- повторно используемые именованные блоки кода, такие как функции, процедуры, триггеры, объектные типы (подобные классам в объектно-ориентированных языках программирования) и пакеты (наборы логически связанных программ и переменных).
PL/SQL тесно интегрирован в язык SQL Oracle: SQL-инструкции можно выполнять непосредственно из процедурной программы, без помощи какого-либо промежуточного API (программного интерфейса) вроде JDBC (Java DataBase Connectivity) или ODBC (Open DataBase Connectivity). Более того, с помощью инструкций SQL можно вызывать собственноручно написанные функции PL/SQL.
Разработчики приложений Oracle, не желающие отставать от времени, должны максимально полно использовать возможности языка PL/SQL. Для этого им сначала нужно освоить отдельные функциональные компоненты PL/SQL, набор которых постоянно расширяется, а затем научиться их совместному применению при разработке сложных приложений.
Стала очевидной потребность разработчиков приложений Oracle в справочнике с подробнейшим изложением основ PL/SQL, где содержались бы не только описания базовых блоков языка, но и примеры программ и приложений с их использованием. Лишь при этом условии читатели смогут осваивать язык не методом проб и ошибок, а наиболее быстрым и эффективным способом — опираясь на опыт, наработанный другими программистами. Как и в любом другом языке, в PL/SQL практически любую задачу можно выполнить несколькими способами, но не все они подходят для конкретного случая. Настоящий сайт призван помочь вам сориентироваться в море возможностей, предоставляемых этим языком, научиться наиболее эффективному и продуктивному его использованию.
- Изучение всех возможностей PL/SQL. В документации Oracle описаны все функциональные компоненты PL/SQL, но ничего не говорится о том, как их следует применять для достижения максимального эффекта. Обычно в учебных пособиях и руководствах освещаются одни и те же стандартные темы одним и тем же, часто весьма ограниченным, образом. Мы пытаемся рассмотреть наряду со стандартными и нетривиальные, часто более эффективные методы решения тех или иных задач.
- Использование PL/SQL для решения повседневных задач. В описсании проанализирован ряд интересных и наиболее целесообразных подходов к решению типичных задач, с которыми ежедневно приходится сталкиваться разработчикам.
- Поэтому здесь приведено много примеров, причем не только небольших фрагментов кода, но и достаточно крупных компонентов приложений, которые, возможно с определенными модификациями, читатели смогут интегрировать в собственные проекты. Многие примеры демонстрируют, процесс выработки эффективных решений. Вы поймете, как на практике применять предлагаемые PL/SQL средства, пользуясь нестандартными или недокументированными возможностями и методами.Создание эффективного кода, который легко сопровождать. PL/SQL обладает огромным потенциалом, позволяющим в рекордно быстрые сроки разрабатывать достаточно сложные приложения. Однако после создания приложения его жизненный цикл не заканчивается, а, наоборот, часто лишь начинается. И уже готовое приложение в дальнейшем может претерпевать множество изменений, связанных с его совершенствованием, адаптацией к изменяющимся требованиям и условиям, расширением и т. д. Мы хотим помочь вам освоить принципы и приобрести навыки построения гибких приложений, программный код которых легко читается, понятен, без труда модифицируется — одним словом, требует минимальных затрат на сопровождение и доработку.