Как вызвать хранимую функцию из хранимой процедуры и сохранить возвращаемое значение

Когда я делаю это в моей хранимой процедуре:

   create procedure Proc1(
       startdate IN TIMESTAMP,
       ENDDATE IN TIMESTAMP
   )
   declare test_result number --line 55
    test_result:=Stored_function1(startdate,enddate,11,13); --line 56
END;

SQL Developer выдает 2 ошибки:

PLS-00103: Обнаружен символ "TEST_RESULT" при ожидании одного из следующего::= . ( @ %; символ по умолчанию - не нулевой диапазон. Символ "." был заменен на "TEST_RESULT" для продолжения.

PLS-00103: Обнаружен символ "КОНЕЦ" при ожидании одного из следующих действий: начало прагма функция тип подтипа текущий удаление курсора ранее существовало

Stored_function1 определяется пользователем, принимает 4 параметра и не принадлежит ни к одному пакету. Где я сделал не так и как мне это исправить? Благодарю.

1 ответ

Решение

Не видя больше этого, трудно сказать, но кажется, что в вашей процедуре есть некоторые синтаксические ошибки. нет DECLARE необходимо, точка с запятой должна быть в конце строки 55 и BEGIN как минимум до строки 56

Вот основной скелет:

Create or replace procedure my_procedure as
  test_result number;
BEGIN
  test_result := Stored_function1(startdate, enddate, 11, 13); 
END;
Другие вопросы по тегам