Поскольку значения копируются, фактический параметр, соответствующий параметру IN OUT или OUT, должен быть переменной и не может быть константой или выражением. Должна существовать область для хранения возвращаемого значения. Например, при вызове ModeTest можно заменить v_In литералом:
Проверка во время компиляции
При создании процедуры компилятор PL/SQL проверяет правильность операций присваивания. Например, если удалить знак комментария из строки с операцией присваивания для
p_InParameter и попытаться скомпилировать ModeTest, то будет выдано сообщение об ошибке:
□ PLS-363: expression ' P_INPARAMETER' cannot be used as an assignment target (выражение 'P INPAHAMETEFT нельзя использовать в качестве объекта операции присваивания)
Обойти это можно, объявив параметр OUT как IN OUT. В таблице 9.2 показано, в каких версиях Oracle допускается чтение параметров OUT, a в каких — нет.
< Предыдущая | Следующая > |
---|