PL/SQL особенно подходит для работы с Oracle благодаря своей интеграции с SQL. Фактически, именно для этого язык и был создан. Для иных задач предназначаются другие языки программирования. Например, С хорошо подходит для задач с большим объемом вычислительной работы и для интеграции с файловой системой и другими системными устройствами. Java является прекрасным переносимым языком с хорошо определенной моделью безопасности, применяемой в приложениях Интернета. Если приложению приходится выполнять самые разные задачи, необходимо обеспечить коммуникацию между модулями приложения, написанными на различных языках.
До единственным способом коммуникации между PL/SQL и другим языком (таким, как С) было использование модулей DBMS_PIPE и/или DBMS_ALERT. Обычно это требовало настройки процесса-демона, написанного с помощью OCI (Oracle Call Interface - интерфейс вызова Oracle) или прекомпиляторов.
В коммуникации были упрощены за счет применения внешних подпрограмм.
Внешняя подпрограмма — это процедура или функция, написанная на языке, отличном от PL/SQL, но вызываемая из программы PL/SQL. Это делается путем публикации внешней подпрограммы в
PL/SQL с помощью вызываемой в PL/SQL точки входа (называемой также оболочкой), которая отображается в реальный внешний код. Программа PL/SQL вызывает затем оболочку, которая в свою очередь вызывает внешний код. Внешние подпрограммы были первоначально введены в
(где они назывались внешними процедурами)
PL/SQL с помощью вызываемой в PL/SQL точки входа (называемой также оболочкой), которая отображается в реальный внешний код. Программа PL/SQL вызывает затем оболочку, которая в свою очередь вызывает внешний код. Внешние подпрограммы были первоначально введены в
(где они назывались внешними процедурами)
В единственным поддерживаемым языком для внешних подпрограмм был С. Для создания оболочки PL/SQL применялось предложение AS EXTERNAL.
Oraclc8 расширил механизм внешних подпрограмм для поддержки Java. Оболочки PL/SQL также были расширены для включения спецификаций вызова. Спецификация вызова является средством публикации внешней подпрограммы (независимо от ее собственного языка программирования) в
PL/SQL. Спецификации вызова используют предложение AS LANGUAGE.
< Предыдущая | Следующая > |
---|