【问题标题】:Procedure invalid identifier when trying to use in SQL / PLSQL尝试在 SQL / PLSQL 中使用时的过程标识符无效
【发布时间】:2019-03-25 06:17:47
【问题描述】:

我正在尝试在 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 是

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

【问题讨论】:

  • 您已将years_between 声明为存储过程。您需要创建一个函数。

标签: sql oracle plsql procedure


【解决方案1】:

如果你想在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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多