包错误。我究竟做错了什么?

时间:2014-04-29 12:21:21

标签: sql oracle function package oracle-apex

我试图创建一个可以计算两个日期之间天数的软件包,我知道我可能已经错了这个里程,我真的很难解决这个问题。我的知识在oracle上很低,我还是很陌生。我写的包裹如下,但我收到的错误显示在底部。

如何解决此问题?

CREATE OR REPLACE PACKAGE PACKNAME
   AS
   FUNCTION TIME_SCALE RETURN NUMBER;
   END;
/
    CREATE OR REPLACE PACKAGE BODY PACKNAME
   AS   closed_date := '28-APR-14'
   FUNCTION TIME_SCALE RETURN NUMBER;
   IS BEGIN
   TRUNC(mrc.closed_date - mrc.open_date) AS days_difference FROM     TASKS mrc;
   END;

Error at line 2: PLS-00103: Encountered the symbol "=" when expecting one of the     following: constant exception <an identifier> <a double-quoted delimited-identifier> table     long double ref char time timestamp interval date binary national character nchar

我已经取代了一些名字,让你更清楚地阅读。

该功能用于输出完成任务所需的天数。这些列基本上包括date_opened和date_closed,简单的术语以及其他一些我认为是序列的唯一ID。

1 个答案:

答案 0 :(得分:2)

试试这个:

CREATE OR REPLACE PACKAGE PACKNAME
AS
  FUNCTION TIME_SCALE
    RETURN NUMBER;
END;
/
CREATE OR REPLACE PACKAGE BODY PACKNAME
AS
  closed_date VARCHAR2(50):= '28-APR-14';
  days_difference NUMBER;
FUNCTION TIME_SCALE
  RETURN NUMBER
IS
BEGIN
  SELECT TRUNC(mrc.closed_date - mrc.open_date) INTO days_difference
  FROM TASKS mrc;
  RETURN days_difference;
END;
END;

出了什么问题:

1)您错过了closed_date的类型 2)你有一个&#39 ;;&#39;在函数声明中返回NUMBER后 3)你错过了函数
中的SELECT子句 4)您错过了包裹的结束