У меня есть эта очень простая хранимая процедура в Oracle, которая выполняет последовательность и выдает следующий порядковый номер в качестве вывода.
create or replace PROCEDURE NEXT_NUMBER
(SEQUENCE_OUT OUT NUMBER)
IS
BEGIN
EXECUTE IMMEDIATE 'SELECT TEST_SEQUENCE.NEXTVAL FROM DUAL' INTO sequence_out;
END;
Как видите, в этой процедуре нет параметров IN, поэтому я озадачен, когда выполняю эту процедуру следующим образом: execute CRS_NEXT_CRC_NUMBER;
и я получаю следующую ошибку:
Error starting at line : 1 in command -
execute NEXT_NUMBER
Error report -
ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in call to 'CRS_NEXT_CRC_NUMBER'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
06550. 00000 - "line %s, column %s:\n%s"
*Cause: Usually a PL/SQL compilation error.
*Action:
Любая идея, почему это может происходить? Я могу без проблем вызвать функцию NEXTVAL для ПОСЛЕДОВАТЕЛЬНОСТИ вне процедуры.