Oracle представила хранимые процедуры в своей базе данных в выпуске 8i. i расшифровывалось как «интернет», как и «готовый к интернету», что в основном было маркетингом. Но хранимые процедуры Java позволили Oracle значительно расширить диапазон функциональных возможностей, доступных в базе данных, используя огромное количество доступных библиотек Java. Многие новые функции базы данных в Oracle 8i были PL / SQL-обертками библиотек Java, особенно XML.
Значительно, Oracle переписал большую часть этой функциональности в собственный C в Oracle 9, потому что он работал намного быстрее, чем упакованный Java-контент. Я знаю, кажется, что.
Для нас, когда имеет смысл использовать хранимые процедуры Java? В основном, когда в Java доступны функции, недоступные на родном языке баз данных. Например, я написал JSP для упаковки Java-классов системного журнала ICE, чтобы мои процедуры записи в PL / SQL могли записывать в файлы системного журнала. Это указывает на очень распространенный вариант использования Java - расширение сферы применения наших баз данных в ОС. Возможно, наиболее распространенное использование JSP - это написание команды host
, которая позволяет программе PL / SQL запускать внешний исполняемый файл.
Я знаю некоторых разработчиков, которые пишут JSP, потому что они знают Java и не хотят изучать PL / SQL. Это не достаточно хорошо по двум причинам:
- Всегда лучше работать со встроенными модулями, чем заново изобретать колесо
- Как я уже упоминал, Java в базе данных работает не так хорошо, как собственный код.
Конечно, если вы работаете с продуктом, который должен работать с несколькими различными продуктами баз данных, то кросс-платформенность Java очень привлекательна. Разные варианты СУБД наиболее расходятся, когда речь заходит об их процедурных языках (T-SQL против PL / SQL и т. Д.), Потому что в отличие от SQL, для них нет стандарта.
Если вы хотите узнать о написании JSP в Oracle, электронная документация - хорошее место для начала. Если окажется, что вы используете другую базу данных, а не Oracle, я уверен, что у продукта есть свое собственное руководство.