3

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

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

4

1 回答 1

3

您可以使用对象:

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;
/
于 2012-07-19T10:22:23.823 回答