Привет Хаброжители!
У нас вышло 6 переиздание книги

Прототип: Oracle PL/SQL Programming (Sixth Edition)
Paperback – March 3, 2014

Структура книги:

«Авторы и O’Reilly Media приложили максимум усилий, чтобы как можно более полно осветить процесс развития PL/SQL. В шестом издании книги описываются средства и возможности PL/SQL для Oracle12c Release 1; эта версия будет считаться «эталонной». Однако там, где это уместно, в книге будут упоминаться другие возможности, появившиеся в более ранних версиях (или доступные только в них). Список основных характеристик разных версий приведен в разделе «История PL/SQL» главы 1. Язык PL/SQL прошел долгий путь с момента выхода версии 1.0 для Oracle 6. В книгу также были внесены серьезные изменения, посвященные новшествам PL/SQL, и был добавлен новый материал.

Главным изменением шестого издания является подробное описание всех новых возможностей PL/SQL в Oracle Database 12c Release 1. Сводка этих нововведений приведена в главе 1 со ссылками на главы, в которых эти нововведения рассматриваются подробно. Я(автор) очень доволен результатами своего труда и надеюсь, что ими будете довольны и вы. Книга содержит больше информации, чем любое из предыдущих изданий, но как мне кажется, нам удалось сохранить чувство юмора и разговорный стиль изложения, благодаря которому, как мне сообщали читатели за прошедшие годы, эта книга легко читалась, была понятной и полезной».

Часть I. «Программирование на PL/SQL». Глава 1 начинается с самого начала: как появился SQL? Для чего он нужен? Далее приводится краткий обзор основных возможностей PL/SQL. Глава 2 построена таким образом, чтобы вы могли сходу взяться за программирование: она содержит четкие и простые инструкции по выполнению кода PL/SQL в среде разработки SQL*Plus и некоторых других распространенных средах.В главе 3 рассказывается об основах языка PL/SQL: что собой представляют операторы, какова структура блока, как создавать комментарии и т. п.

Часть II. «Структура программы PL/SQL». В главах 4–6 рассматриваются условные (IF и CASE) и последовательные (GOTO и NULL) операторы управления порядком выполнения команд; циклы и оператор CONTINUE, появившийся в Oracle11; средства обработки исключений в PL/SQL. Эта часть книги учит составлять блоки программного кода, соответствующие сложным требованиям ваших приложений.

Часть III. «Работа с данными в PL/SQL». Почти любая написанная вами программа будет заниматься обработкой данных, которые часто являются локальными для процедуры или функции PL/SQL. Главы 7–13 посвящены различным типам программных данных, определяемым непосредственно в PL/SQL: числам, строкам, датам, временным меткам, записям и коллекциям. Вы узнаете о новых типах данных Oracle11g (SIMPLE_INTEGER, SIMPLE_FLOAT и SIMPLE_DOUBLE), а также о многих типах для работы с двоичными данными, датой и временем, введенных в других версиях. Кроме того, мы расскажем о встроенных функциях, предоставляемых Oracle для выполнения различных операций с данными.

Часть IV. «SQL и PL/SQL». В главах 14–16 рассказано об одном из центральных аспектов программирования на PL/SQL: подключении к базе данных, осуществляемом из кода SQL. Из них вы узнаете, как определяются транзакции обновления, вставки, слияния и удаления таблиц базы данных; как запросить из базы данных информацию для обработки в программах PL/SQL и как динамически выполнять SQL-инструкции средствами NDS (Native Dynamic SQL).

Часть V. «Создание приложений PL/SQL». В этой части книги сводится воедино все, о чем говорилось ранее. Приступая к ее изучению, вы уже будете знать, как объявлять переменные и как с ними работать, освоите важнейшие принципы обработки ошибок и построения циклов. В главах 17–22 рассказывается о самых крупных структурных элементах приложений: процедурах, функциях, триггерах и пакетах, а также об организации ввода и вывода информации в приложениях PL/SQL. В главе 20 также обсуждаются вопросы управления кодом PL/SQL, его тестирования, отладки и управления зависимостями; также здесь представлен обзор механизма оперативной замены, введенного в Oracle11g Release 2. Глава 21 посвящена использованию различных инструментов и приемов для достижения оптимального быстродействия в программах PL/SQL. В главе 22 описаны средства ввода/вывода PL/SQL, от пакетов DBMS_OUTPUT (вывода на экран) и UTL_FILE (чтение и запись файлов) до UTL_MAIL (отправка электронной почты) и UTL_HTTP (получение данных с веб-страниц).

Часть VI. «Особые возможности PL/SQL». Язык PL/SQL, столь мощный и богатый, содержит немало функциональных возможностей и структурных элементов, которые не используются в повседневной работе, но позволяют максимально просто и эффективно решать задачи, справиться с которыми другими способами было бы очень трудно. В главе 23 описаны проблемы безопасности, с которыми мы сталкиваемся при создании программ PL/SQL. В главе 24 рассматривается архитектура PL/SQL, в том числе использование памяти. Глава 25 содержит полезный материал для разработчиков, которым необходимо решать проблемы глобализации и локализации в своих приложениях. Глава 26 содержит вводный курс по объектно-ориентированным возможностям Oracle (объектным типам и представлениям).

В приложениях А–В содержится информация о синтаксисе регулярных выражений, форматах чисел и дат.Главы, посвященные выполнению кода Java и C из приложений PL/SQL, входившие в печатное четвертое издание, были перемещены на веб-сайт книги.

Какие темы не рассматриваются:

Даже в самой толстой книге нельзя рассказать обо всем. Oraclе - огромная и сложная система, а мы рассматриваем только основные возможности языка PL/SQL. Ниже перечислены темы, которые не вошли в рамки нашего издания и поэтому лишь поверхностно
упоминаются время от времени.

Язык SQL. Предполагается, что читатель уже знает язык SQL и умеет составлять инструкции SELECT, INSERT, UPDATE, MERGE и DELETE.

Администрирование баз данных Oracle. Администраторы баз данных почерпнут из этой книги немало полезного и интересного - в частности, научатся писать PL/SQL-программы для создания и обслуживания баз данных. Тем не менее у нас не было возможности рассказать о нюансах языка определения данных (DDL), входящего в Oracle SQL.

Оптимизация приложений и баз данных. Тема оптимизации также рассматривается лишь поверхностно, хотя в главе 21 обсуждаются многие приемы и инструменты, которые пригодятся вам при оптимизации быстродействия ваших программ PL/SQL.

Технологии разработки приложений Oracle, независимые от PL/SQL. Книга даже не пытается демонстрировать построение приложений с использованием таких инструментов, как Oracle Forms Developer, несмотря на то, что в них также используется язык PL/SQL. Я решил сконцентрироваться на фундаментальных возможностях языка и на тех операциях, которые с его помощью можно выполнять в базах данных. Однако большая часть материала книги относится и к использованию PL/SQL в Forms Developer и Reports Developer.

Более подробно можно ознакомиться

Добрый день вашему внимаю предоставляется очередная цифровая книга "Oracle PL/SQL. Для профессионалов (6-е изд.) ". Данная книга является подробнейшим руководством по языку PL/SQL, представляющему собой процедурное языковое расширение для SQL . В ней детально рассмотрены основы PL/SQL, структура программы, основные принципы работы с программными данными, а также методика применения операторов и инструкций для доступа к реляционным базам данных. Большое внимание уделяется вопросам безопасности, влиянию объектных технологий на PL/SQL и интеграции PL/SQL с XML и Java. За последние 18 лет, в течение которых переиздается эта книга, она стала незаменимым руководством по PL/SQL для сотен тысяч программистов, как начинающих, так и профессионалов. Шестое издание книги полностью обновлено под версию Oracle12

Описание Oracle PL/SQL. Для профессионалов (6-е изд.)

Год издания : 2015
Автор : Фейерштейн С., Прибыл Б.
Переводчик : Матвеев Е.
Жанр или тематика : Программирование
Издательство : Питер
ISBN : 978-5-496-01152-5, 978-1-4493-2445-2
Серия : Бестселлеры O’Reilly
Язык : Русский
Формат : PDF
Качество : Издательский макет или текст (eBook)
Интерактивное оглавление : Да
Количество страниц : 1024

  • Часть I. Программирование на PL/SQL
  • Глава 1. Введение в PL/SQL
  • Глава 2. Написание и запуск кода PL/SQL
  • Глава 3. Основы языка
  • Часть II. Структура программы PL/SQL
  • Глава 4. Условные команды и переходы
  • Глава 5. Циклы
  • Глава 6. Обработка исключений
  • Часть III. Работа с данными в PL/SQL
  • Глава 7. Работа с данными в программах
  • Глава 8. Строки
  • Глава 9. Числа
  • Глава 10. Дата и время
  • Глава 11. Записи
  • Глава 12. Коллекции
  • Глава 13. Другие типы данных
  • Часть IV. SQL и PL/SQL
  • Глава 14. DML и управление транзакциями
  • Глава 15. Выборка данных
  • Глава 16. Динамический SQL и динамический PL/SQL
  • Часть V. Создание приложений PL/SQL
  • Глава 17. Процедуры, функции и параметры
  • Глава 18. Пакеты
  • Глава 19. Триггеры
  • Глава 20. Управление приложениями PL/SQL
  • Глава 21. Оптимизация приложений PL/SQL
  • Глава 22. Ввод/вывод в PL/SQL
  • Часть VI. Особые возможности PL/SQL
  • Глава 23. Безопасность и PL/SQL
  • Глава 24. Архитектура PL/SQL
  • Глава 25. Глобализация и локализация в PL/SQL
  • Глава 26. Объектно-ориентированные возможности PL/SQL
  • Глава 27. Вызов Java -программ из PL/SQL
  • Глава 28. Внешние процедуры
  • Приложение А. Параметры функций и метасимволы регулярных выражений
  • Приложение Б. Числовые форматы
  • Приложение В. Маска формата даты

Oracle PL/SQL Programming has been an indispensable reference for both novice and experienced PL/SQL developers since its first edition. Now in its third edition, the book has been thoroughly revised and updated to include the latest Oracle releases--Oracle8i and Oracle9i--the "Internet databases" that communicate with other technologies, such as Java, to run powerful e-commerce applications. Oracle has made substantial changes to the PL/SQL language, and developers who want to take full advantage of its power will find the information they need in this book. Authored by renowned PL/SQL experts Steven Feuerstein and Bill Pribyl, the new edition of the book includes all PL/SQL language features up to and including Oracle 9i Release 2 (9.2). Regardless of the version you are using, from Oracle 7.3.4 to Oracle 9i, this book will answer your questions. In addition, Oracle PL/SQL Programming now contains much-requested new chapters on Oracle triggers, the internal architecture of PL/SQL in the Oracle database, and the use of PL/SQL with Java. The authors have carefully constructed each chapter of this new edition with three objectives: to help you take full advantage of PL/SQL, learn to use PL/SQL to solve your problems, and to write efficient, maintainable code.

Amazon.com Review If you"re doing database application development in the Oracle environment, you"re going to have to know PL/SQL, the company"s extended query and update language. If you want your programs to exploit the special capabilities of Oracle software, you"ll need to know the language well. That"s where the third edition of Oracle PL/SQL Programming comes into play. It"s an absolutely comprehensive reference (as well as a rather extensive tutorial) on PL/SQL, ideally suited to answering your questions about how to perform some programming tasks and reminding you of the characteristics of functions, triggers, and other elements of the database programmer"s toolkit. The new edition covers calls to Java methods from within PL/SQL programs, autonomous transactions, object type inheritance, and the new Timestamp and XMLType data types. There"s also more information about server internals--the way PL/SQL programs are run--than before, better enabling readers to optimize their code for fast and safe execution.

Steven Feuerstein takes care to explain, with prose and example code, the characteristics of PL/SQL elements. In explaining number conversions, for example, he explores Oracle"s different ways of formatting numbers, then details the behavior of the to_number function under different conditions (with and without a specified format model, and with National Language Support information attached). It"s a helpful approach that will have readers using the index to locate places in which Feuerstein mentions language elements of interest. --David Wall

Topics covered: How to use Oracle PL/SQL in all its manifestations through Oracle9i . Fundamentals of program structure (loops, cases, exceptions, etc.) and execution get attention, as do data types, transaction management, triggers, and the object-oriented aspects of the language. There"s also coverage of calls to external Java and C programs.

Джо Селко

SQL для профессионалов. Программирование
М:. Издательство "Лори" (), 456 стр., 70x100/16, 2004, тир.1500, ISBN 5-85582-219-2,
переводчик И.Афанасьев, научный редактор А.Вендров.

Оригинал: SQL for smarties: advaced SQL programming. Second edition. Joe Selco. Morgan Kaufmann Publishers, San Francisco, 2000, ISBN-0-55860-576-2

М.Дж.Хернандес, Дж.Л.Вьескас

SQL-запросы для простых смертных.
Практическое руководство по манипулированию данными в SQL
М:. Издательство "Лори" (), 480 стр., 70x100/16, 2004, тир.3200, ISBN 5-85582-178-1,
переводчики А.Головко, научный редактор А.Киселева.
Аннотация от издательства “Лори”:

Оригинал: SQL Queries for Mere Mortales. A Hands-On Guide to Data Manipulation in SQL, by Michael J.Hernandez, John L.Viescas. ADDISON-WESLEY, Pearson Education,2000,ISBN-0-201-43336-2


Год назад в рецензии «SQL и SQLJ - две ступени одной лестницы» мы писали о книгах, написанными о как бы начальной (“SQL-запросы для простых смертных”) и одной из вершинных («ORACLE9i. Программирование на языке SQLJ») ступенях технологической лестницы программирования при разработке приложений на непроцедурных языках, а именно, SQL. Сегодня к этой лестнице прибавляется еще одна книга-ступенька - «Программирование на SQL для профессионалов». И поскольку эта «ступенька» следует за начальным курсом по языку SQL, мы для того, чтобы опереться и показать, чем же «… для профессионалов» отличается от «… для простых смертных», сочли возможным повторить в этом опусе несколько итоговых, результирующих предложений из старой рецензии, посвященных первой ступени в SQL-программировании.

Итак, “SQL-запросы для простых смертных” – это учебник, который можно использовать также и в качестве справочника по базовому языку SQL, а точнее, по его самому “красивому” и мощному SQL-оператору SELECT. Не даром же книга названа “SQL-запросы для простых смертных”, а SQL-запрос – это и есть предложение выборки записей из базы, то есть SELECT. Редко можно увидеть такое тщательное, подробное и последовательное развитие темы. Многочисленные примеры преобразования запросов с живого (английского) языка на программный язык SELECT-предложений читаются с удовольствием и должны снять любые опасения начинающих в плане его сложности или навороченности. Опытных разработчиков, несомненно, в первую очередь привлекут главы о внутренних (гл.8) и внешних (гл.9) соединениях. Oracle-разработчиков следует сразу предупредить, что в книге используется ANSI-стандарт языка SQL, в котором синтаксис внутренних и внешних соединений (LEFT/RIGHT/FULL OUTER Join, INNER JOIN) несколько отличается синтаксиса, принятого в SQL от Oracle. Эти различия несущественны в Oracle 9iR2.

Интересующихся вопросом различий синтаксиса внутренних и внешних соединений мы адресуем к статье Jim Czuprynski “Getting ANSI About Joins” (http://www.databasejournal.com/features/oracle/article.php/2209301).

В программистской литературе на русском языке, похоже, не было еще такой почти 500-страничной книги, которая была бы посвящена почти исключительно одному оператору, а именно, SELECT. В этом можно усмотреть определенную сложность для начинающих – ведь язык SQL состоит не только из оператора SELECT, а о языках собственно Манипулирования Данными (DML с операторами INSERT, UPDATE, DELETE), Определения Данных (DDL с операторами CREATE, ALTER, DROP,…), Управления Данными (DСL с операторами COMMIT, ROLLBACK, SET,…) в тексте книги нет ни слова. Справедливости ради, отметим, что в этом нет ничего удивительного - ведь сложность оператора SELECT превосходит сложность всех других вместе взятых операторов манипулирования данными (INSERT, UPDATE, DELETE), которые, в свою очередь, могут включать SELECT-подзапросы.

Полностью рецензия «SQL и SQLJ - две ступени одной лестницы» находится по адресу http://www.oracle.com/global/ru/oramag/aug2003/general_lory_sql.html , а аннотация и полное содержание книги - по адресу ).

Теперь перейдем к главному предмету рассмотрения – книге Джо Селко " ".

С самого начала надо повторить сделанное выше предупреждение, что эта книга, как и “SQL-запросы для простых смертных”, рассказывает о языке SQL в ANSI-стандартах SQL-89 и SQL-92, которые отличаются от языка SQL, принятого, например, в базах данных Oracle. SQL от Oracle, с одной стороны, расширяет ANSI-стандарт, а, с другой, - не всегда содержит абсолютно все его конструкции. И поэтому книга Джо Селко пригодна для всех SQL-профессионалов как для разработчиков приложений, так и администраторов всех SQL-баз данных (не только Oracle). Мы уверены, что любой профессиональный специалист, применяющий SQL, без особого труда и раздражения увидит различающиеся конструкции стандарта и конкретной применяемой реализации, сумеет их преодолеть в своей работе, а иногда и порадуется (как в случае с Oracle Database) расширениям, выходящим за рамки стандарта.

«Предполагается, что у читателя имеется хотя бы год практической работы.» - Уже в первом абзаце введения Джо Силко определяет, что его книга «предназначена для программистов SQL, желающих усовершенствовать свои знания путем освоения новых технологий и приемов программирования.» Поэтому, опуская присущие многим другим книгам вводные, исторические, объясняющие и, так скажем, «простые» положения, автор сразу начинает профессиональный разговор с читателем на четком и понятном техническом языке. (А рецензенты добавят, что язык книги отличается высокой литературностью, что необходимо поставить в заслугу не только ее автору, но и переводчику и редакторам книги.) Например, на трех страничках «Введения» ясно и очень коротко автор изложил различия процедурных и непроцедурных (SQL) языков, а также свои «Советы по программированию», задав, тем самым, уровень знакомства с предметом, на который нужно ориентироваться читателям. Начинается книга с «Проектирования базы данных», где называются и определяются основные понятия (схема, таблица (и связанные с ней DDL операторы), столбцы (и ограничения на них),…), но и в этом как бы обязательном для любой SQL-книги тексте содержатся изюминки. Например, различия файлов и таблиц (не все же читатели – АБД от Oracle, которым это должно быть вбито в сознание раз и навсегда) или «Примечание относительно дубликатов строк».

Вторая глава «Нормализация» является подлинным украшением книги, где на двадцати с небольшим страницах приводятся:

  • первая нормальная форма (1NF);
  • вторая нормальная форма (2NF);
  • третья нормальная форма (3NF);
  • CASE-средства для нормализации;
  • нормальная форма Бойса-Кодда (BCNF);
  • четвертая нормальная форма (4NF);
  • пятая нормальная форма (5 NF);
  • нормальная форма «домен-ключ» (DKNF);
  • практические советы по нормализации;
  • практические советы по денормализации.
Все ли наши читатели смогут вспомнить эти нормальные формы?! Ну, скажем, что для большинства это, может быть, и не надо, но знать источник, где это четко, понятно и коротко описано, по нашему мнению, необходимо.
Конечно, объем рецензии не позволяет с так подробно представлять каждую главу, но достаточно перечислить названия некоторых разделов, чтобы «желающий усовершенствовать свои знания» читатель, которому предназначена книга, понял, какие мощные в ней заложены знания, какие сведения он может почерпнуть.
  • «Числовые данные в языке SQL», «Типы данных времени в стандарте SQL», «Символьные типы данных в SQL»;
  • «Неопределенные значения - отсутствующие данные в SQL» – речь идет о Null-значениях;
  • «Сравнения или операции Theta»;
  • «Предикаты значений», «Предикаты LIKE и SIMILAR», «Предикаты BETWEEN и OVERLAPS», «Предикат IN», «Предикат EXISTS()»;
  • «Кванторизированные предикаты подзапросов»;
  • «Представления и временные таблицы»;
  • «Агрегативные функции»;
  • «Статистическая обработка информации в SQL»;
  • «Структуры массивов в языке SQL»;
  • «Операции со множествами», «Подмножества»;
  • «Модель списка смежных вершин деревьев в SQL» и «Модель вложенных множеств деревьев в SQL»;
  • «Графы в SQL»
- всего 31 глава от 10 до 20 страниц каждая (самая большая глава на 40 стр., конечно, «Оператор SELECT»).

Несколько раз в книге приводятся и сравниваются различные решения одной и той же задачи, что делает работу с ней увлекательным и еще более познавательным делом. Например, «задача о распределении классных комнат учебным группам (class_size < room_size)» cначала решается как бы обычным образом, а потом приводятся «Хорватское решение», «Шведское решение» и «Колумбийское решение» (стр. 210-218). Читая книгу, бросается в глаза, что в ней очень часты ссылки на основополагающие работы Э.Кодда (E.Codd), К.Дейта (K.Date) и др. При этом автор иногда спорит с авторитетами, приводя конкретные примеры недостаточности конструкций классической теории реляционных баз данных, например, в уже упоминавшемся «Примечании относительно дубликатов строк».

Как в «старых и добрых времен» научной книге в «SQL для профессионалов» почти 20 страниц отведено на библиографию, ссылки и указатель рекомендуемой литературы. Жаль, конечно, что верхний временной предел ограничен 2000 годом, ведь за последние несколько лет количество книг по программированию выросло многократно. Но надо полагать, что первая на русском языке книга Джо Селко – не есть последняя, и, доверяя пунктуальности автора, можно надеяться на исчерпывающий библиографический указатель в следующий раз.

В рецензии положено говорить не только о достоинствах произведения, но и о недостатках. Вряд ли их так уж много, но на одну досадную корявость все же следует обратить внимание. Цитата (стр.13): «Компания Oracle позволяет использовать физический адрес строки на жестком диске – это специальная переменная под названием ROWID… Однако такая реализация физической структуры на логическом уровне требует использования для строк таблицы сплошного дискового пространства. Это приводит к невозможности работы с хешированными, распределенными БД, … или невозможности реализации любыхновых технологий работы с БД большого объема (VLDB).» Собственно говоря, это настолько существенное незнание архитектуры базы данных именно СУБД Oracle, что, скорее всего, следует грешить на неправильный перевод, но этот же пассаж указывает на те полезные расширения (как например, псевдостолбец ROWID), которые Oracle внес в свою реализацию SQL.

Общий вывод: книга Джо Селко «Программирование на SQL для профессионалов» очень полезна для всех разработчиков приложений на SQL, работающих на самых разных SQL-базах данных: Oracle, Sybase, MS SQL Server и многих других. Особенно стоит ее рекомендовать преподавателям программистских дисциплин в ВУЗах и студентам старших курсов, так как SQL-решения и другие вопросы, излагаемые в книге, не зависят от привязки к конкретным СУБД, но рассматриваются в их концептуальной сути.


Виктор Абрамов,
научный редактор "Oracle Magazine/Русское Издание"
Анатолий Бачин,
главный редактор "Oracle Magazine/Русское Издание"