DeepEdit!

Программирование баз данных на Oracle, техническая документация, литература, статьи и публикации

  • Увеличить размер шрифта
  • Размер шрифта по умолчанию
  • Уменьшить размер шрифта

Внешние подпрограммы

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 применялось предложение AS EXTERNAL.

Oraclc8 расширил механизм внешних подпрограмм для поддержки Java. Оболочки PL/SQL также были расширены для включения специфика­ций вызова. Спецификация вызова является средством публикации внешней подпрограммы (независимо от ее собственного языка программирования) в
PL/SQL. Спецификации вызова используют предложение AS LANGUAGE. 
 









jAntivirus