Сбой хранимой процедуры Oracle с привязанными параметрами

У меня есть хранимая процедура в пакете в Oracle, который принимает несколько NUMBER Типы в качестве аргументов и работает без проблем, когда целые числа передаются явно.

Однако при использовании связанных параметров (в SQL Developer) я получаю сообщение об ошибке Error report - Missing defines, Когда он запускается в PHP, он не работает тихо. Учитывая преимущества безопасности при использовании связанных параметров, я бы предпочел не объединять запрос в PHP и делать это таким образом (да, я мог бы использовать intval() и он справится с этим), поскольку эта проблема выходит за рамки только пакетов с целочисленными параметрами.

Это работает как при успешном запуске, так и при проверенных изменениях базы данных.

BEGIN package_name.procedure_name(
1,
2
); END;

Однако это не так.

BEGIN package_name.procedure_name(
:VARIABLE_1,
:VARIABLE_2
); END;

И не делает этого:

BEGIN package_name.procedure_name(
VARIABLE_1 => :VARIABLE_1,
VARIABLE_2 => :VARIABLE_2
); END;

Запуск отладки в SQL Developer предоставляет логику для объявления типов, а затем их передачи в качестве переменных, но добавление привязки там также не удается.

Любые идеи относительно того, почему возникает ошибка, учитывая, что процедура работает без проблем со статическими аргументами?

-1

Решение

Вы можете использовать таким образом:

SQL> variable VARIABLE_1 number;
SQL> variable VARIABLE_2 number;
SQL> BEGIN
package_name.procedure_name(
:VARIABLE_1,
:VARIABLE_2
);
END;/
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]