我想使用典型的 java 表示法。我需要一个计时器,但我不想创建一个只有两个变量(开始和结束时间,以及一些方法)的包。
我可以创建一个可以包含函数的内联包、类型或记录吗?
您可以使用对象:
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;
/