Недопустимый идентификатор процедуры при попытке использования в SQL / PLSQL - PullRequest
0 голосов
/ 20 октября 2018

Я пытаюсь сделать очень простую процедуру на PLSQL, но когда я пытаюсь использовать ее в SQL, он возвращает неверный идентификатор.

create or replace PROCEDURE YEARS_BETWEEN(date1 IN date , date2 IN date, p_result out number)
IS
    v_months number;
BEGIN
    v_months := months_between(date1, date2);

    p_result := TRUNC(v_months / 12, 0);
END years_between;

Может кто-нибудь сказать мне, что не так?

SQL IS

select YEARS_BETWEEN(GBDATUM, SYSDATE) as leeftijd  FROM medewerkers;

1 Ответ

0 голосов
/ 20 октября 2018

Вам нужна функция , а не процедура , если вы хотите вызвать ее в select:

create or replace function years_between (in_date1 in date , in_date2 in date)
return number as
    v_months number;
begin
    v_months := months_between(date1, date2);

    return(trunc(v_months / 12, 0));
end;  --  years_between
...