Oracle: PLSQL with classes



我想使用典型的java表示法。我需要一个Timer,但我不想创建一个只有两个变量(开始和结束时间,以及一些方法)的Package。

我可以创建一个可以包含函数的内联包、类型或记录吗?

您可以使用对象:

CREATE OR REPLACE TYPE timer  AS OBJECT
(
  start_time  DATE
, end_time    DATE 
, CONSTRUCTOR FUNCTION timer
  RETURN SELF AS RESULT
, MEMBER FUNCTION get_duration
  RETURN NUMBER
)
;
/
CREATE OR REPLACE TYPE BODY timer IS

  CONSTRUCTOR FUNCTION timer      
  RETURN SELF AS RESULT
  IS
  BEGIN
    SELF.start_time := SYSDATE;
    RETURN;
  END;
  MEMBER FUNCTION get_duration
  RETURN NUMBER
  IS
  BEGIN
    RETURN  NVL(SELF.end_time, SYSDATE) - SELF.start_time;
  END get_duration;
END;
/

最新更新