Имена локальных подпрограмм PL/SQL являются идентификаторами, поэтому они должны быть объявлены до их использования. Обычно это не вызывает проблем, но когда подпрограммы ссылаются друг на друга, возникают трудности. Рассмотрим пример:
Эту программу скомпилировать невозможно. Процедура А вызывает процедуру В, поэтому В должна быть объявлена раньше А. В свою очередь процедура В вызывает процедуру А, поэтому А должна быть объявлена раньше В. Одновременно эти условия не могут быть выполнены. Для того чтобы исправить сложившуюся ситуацию, можно воспользоваться предварительным объявлением (forward declaration), в котором указывается имя процедуры и формальные параметры. Это позволяет создавать процедуры, ссылающиеся друг на друга. Предварительное объявление применяется также в заголовках модулей. Приведем пример:
Перегрузка локальных подпрограмм
Как показано в главе 9, подпрограммы, объявленные в модулях, можно перегружать. Это справедливо и для локальных подпрограмм, например:
< Предыдущая | Следующая > |
---|