PL/SQL
В течение многих лет PL/SQL является ведущим процедурным языком Oracle. Разработчики с ним хорошо знакомы, и он был расширен библиотечными пакетами, обеспечивающими, в частности, поддержку Oracle Webserver, файлового ввода-вывода и вызовов внешних API. Последняя версия этого языка (PL/SQL8) обладает еще большими возможностями. Она поддерживает большинство новшеств OracleS, за исключением кэша на стороне клиента (подробности см. в главе 5).
PL/SQL — единственный язык, программы на котором можно хранить и выполнять в самой базе данных. Тем не менее, как и в случае с SQL*Plus, трудно представить, что целое приложение может быть реализовано только на PL/SQL. Это очень хороший инструмент для разработки на стороне сервера, но в нем нет средств управления пользовательским интерфейсом.
Относительно недавно Oracle заявила о намерении поддерживать Java в своей СУБД, начиная с версии 8.1. В таком случае Java станет реальной альтернативой PL/SQL в качестве языка программирования сервера. Это позволит привлечь разрабатывающие фирмы, которые ориентируются в своей работе на один язык, являющийся промышленным стандартом. Однако до появления версии 8.1 (когда бы это ни случилось) выбора нет. Нам кажется, что некоторые фирмы ухватятся за эту возможность и станут предлагать средства преобразования PL/SQL-Java. Поэтому, если вы предпочитаете Java, но имеете дело с версией 8.0, не тревожьтесь.
С, C++ и OCI
Чтобы полностью использовать функциональные возможности OracleS, вам придется разрабатывать приложения на С или C++. Для большинства проектов это не очень привлекательный вариант. Не поймите нас неправильно: мы любим С и C++, но нужно смотреть на вещи реально — с их помощью невозможно разрабатывать программы так же быстро, как и в среде 4GL, и они, как правило, более сложны для сопровождения. Даже если задействовать богатый набор классов для разработки экранных форм и проектировать их с помощью "волшебников", все равно для получения полностью функционирующего приложения нужно написать огромное количество программного кода (по сравнению, например, с Oracle Forms и Visual Basic).
Несколько облегчить задачу программиста может использование генератора классов из Object Designer, который делает доступ к базе данных полностью прозрачным. В этом случае разработчик просто манипулирует методами объектов. Все остальное (включая управление кэшем на стороне клиента) выполняет генерируемый код.
116	Oracle 8