Moved in source

This commit is contained in:
Jan Kvetina 2021-12-31 08:39:25 +01:00
parent 39eec6d8a8
commit 738d2e97c6
2 changed files with 90 additions and 97 deletions

View File

@ -495,6 +495,49 @@ CREATE OR REPLACE PACKAGE app AS
--
-- Convert date or timestamp into time bucket
--
FUNCTION get_time_bucket (
in_date DATE,
in_interval NUMBER
)
RETURN NUMBER
RESULT_CACHE;
--
-- Convert interval to human readable form
--
FUNCTION get_duration (
in_interval INTERVAL DAY TO SECOND
)
RETURN VARCHAR2;
--
-- Convert interval to human readable form
--
FUNCTION get_duration (
in_interval NUMBER
)
RETURN VARCHAR2;
--
-- Calculate human readable difference within two timestamps
--
FUNCTION get_duration (
in_start TIMESTAMP,
in_end TIMESTAMP := NULL
)
RETURN VARCHAR2;
--
-- Set item
--
@ -558,56 +601,6 @@ CREATE OR REPLACE PACKAGE app AS
-- ### Some conversion functions
--
--
-- Convert date or timestamp into time bucket
--
FUNCTION get_time_bucket (
in_date DATE,
in_interval NUMBER
)
RETURN NUMBER
RESULT_CACHE;
--
-- Convert interval to human readable form
--
FUNCTION get_duration (
in_interval INTERVAL DAY TO SECOND
)
RETURN VARCHAR2;
--
-- Convert interval to human readable form
--
FUNCTION get_duration (
in_interval NUMBER
)
RETURN VARCHAR2;
--
-- Calculate human readable difference within two timestamps
--
FUNCTION get_duration (
in_start TIMESTAMP,
in_end TIMESTAMP := NULL
)
RETURN VARCHAR2;
-- ### Logging
--

View File

@ -1053,6 +1053,53 @@ CREATE OR REPLACE PACKAGE BODY app AS
FUNCTION get_time_bucket (
in_date DATE,
in_interval NUMBER
)
RETURN NUMBER
RESULT_CACHE
AS
PRAGMA UDF;
BEGIN
RETURN FLOOR((in_date - TRUNC(in_date)) * 1440 / in_interval) + 1;
END;
FUNCTION get_duration (
in_interval INTERVAL DAY TO SECOND
)
RETURN VARCHAR2 AS
BEGIN
RETURN REGEXP_SUBSTR(in_interval, '(\d{2}:\d{2}:\d{2}\.\d{3})');
END;
FUNCTION get_duration (
in_interval NUMBER
)
RETURN VARCHAR2 AS
BEGIN
RETURN TO_CHAR(TRUNC(SYSDATE) + in_interval, 'HH24:MI:SS');
END;
FUNCTION get_duration (
in_start TIMESTAMP,
in_end TIMESTAMP := NULL
)
RETURN VARCHAR2
AS
v_end CONSTANT logs.created_at%TYPE := SYSTIMESTAMP; -- to prevent timezone shift, APEX_UTIL.GET_SESSION_TIME_ZONE
BEGIN
RETURN SUBSTR(TO_CHAR(COALESCE(in_end, v_end) - in_start), 12, 12); -- keep 00:00:00.000
END;
PROCEDURE set_item (
in_name VARCHAR2,
in_value VARCHAR2 := NULL,
@ -1208,53 +1255,6 @@ CREATE OR REPLACE PACKAGE BODY app AS
FUNCTION get_time_bucket (
in_date DATE,
in_interval NUMBER
)
RETURN NUMBER
RESULT_CACHE
AS
PRAGMA UDF;
BEGIN
RETURN FLOOR((in_date - TRUNC(in_date)) * 1440 / in_interval) + 1;
END;
FUNCTION get_duration (
in_interval INTERVAL DAY TO SECOND
)
RETURN VARCHAR2 AS
BEGIN
RETURN REGEXP_SUBSTR(in_interval, '(\d{2}:\d{2}:\d{2}\.\d{3})');
END;
FUNCTION get_duration (
in_interval NUMBER
)
RETURN VARCHAR2 AS
BEGIN
RETURN TO_CHAR(TRUNC(SYSDATE) + in_interval, 'HH24:MI:SS');
END;
FUNCTION get_duration (
in_start TIMESTAMP,
in_end TIMESTAMP := NULL
)
RETURN VARCHAR2
AS
v_end CONSTANT logs.created_at%TYPE := SYSTIMESTAMP; -- to prevent timezone shift, APEX_UTIL.GET_SESSION_TIME_ZONE
BEGIN
RETURN SUBSTR(TO_CHAR(COALESCE(in_end, v_end) - in_start), 12, 12); -- keep 00:00:00.000
END;
FUNCTION get_json_list (
in_arg1 VARCHAR2 := NULL,
in_arg2 VARCHAR2 := NULL,