Which has the higher priority in your organization: Deploying a new database or securing the ones you already have?
Looking for a website, and resources, dedicated solely to securing Oracle databases? Check out DBSecWorx.
Purpose
This package replicates or provides the functionality of group of related WMSYS schema functions and operators of value in managing date data.
owm_vt_pkg.wm_contains(
p1 IN wmsys.wm_period,
p2 IN wmsys.wm_period)
RETURN NUMBER;
DECLARE
retVal INTEGER;
p1b DATE := TO_DATE('01-JAN-2021');
p1e DATE := TO_DATE('05-JAN-2021');
p2b DATE := TO_DATE('01-JAN-2021');
p2e DATE := TO_DATE('03-JAN-2021');
BEGIN
SELECT wmsys.owm_vt_pkg.wm_contains(WM_PERIOD(p1b, p1e), WM_PERIOD(p2b, p2e))
INTO retVal
FROM dual;
owm_vt_pkg.wm_equals(
p1 IN wmsys.wm_period,
p2 IN wmsys.wm_period)
RETURN NUMBER;
DECLARE
retVal INTEGER;
p1b DATE := TO_DATE('01-JAN-2021');
p1e DATE := TO_DATE('03-JAN-2021');
p2b DATE := TO_DATE('01-JAN-2021');
p2e DATE := TO_DATE('03-JAN-2021');
BEGIN
SELECT wmsys.owm_vt_pkg.wm_equals(WM_PERIOD(p1b, p1e), WM_PERIOD(p2b, p2e))
INTO retVal
FROM dual;
DECLARE
retVal INTEGER;
p1b DATE := TO_DATE('01-FEB-2021');
p1e DATE := TO_DATE('03-FEB-2021');
p2b DATE := TO_DATE('01-JAN-2021');
p2e DATE := TO_DATE('31-JAN-2021');
BEGIN
SELECT wmsys.owm_vt_pkg.wm_greaterthan(WM_PERIOD(p1b, p1e), WM_PERIOD(p2b, p2e))
INTO retVal
FROM dual;
DECLARE
retVal WM_PERIOD;
p1b DATE := TO_DATE('01-JAN-2021');
p1e DATE := TO_DATE('10-JAN-2021');
p2b DATE := TO_DATE('08-JAN-2021');
p2e DATE := TO_DATE('12-JAN-2021');
BEGIN
SELECT wmsys.owm_vt_pkg.wm_intersection(WM_PERIOD(p1b, p1e), WM_PERIOD(p2b, p2e))
INTO retVal
FROM dual;
dbms_output.put_line(retVal.validfrom);
dbms_output.put_line(retVal.validtill);
END;
/ 08-JAN-21 12.00.00.000000 AM +00:00
10-JAN-21 12.00.00.000000 AM +00:00
DECLARE
retVal WM_PERIOD;
p1b DATE := TO_DATE('01-NOV-2021');
p1e DATE := TO_DATE('31-DEC-2021');
p2b DATE := TO_DATE('29-NOV-2021');
p2e DATE := TO_DATE('01-DEC-2021');
BEGIN
SELECT wmsys.owm_vt_pkg.wm_ldiff(WM_PERIOD(p1b, p1e), WM_PERIOD(p2b, p2e))
INTO retval
FROM dual;
dbms_output.put_line(retVal.validfrom);
dbms_output.put_line(retVal.validtill);
END;
/ 01-NOV-21 12.00.00.000000 AM +00:00
29-NOV-21 12.00.00.000000 AM +00:00
DECLARE
retVal INTEGER;
p1b DATE := TO_DATE('01-JAN-2021');
p1e DATE := TO_DATE('02-JAN-2021');
p2b DATE := TO_DATE('03-JAN-2021');
p2e DATE := TO_DATE('16-JAN-2021');
BEGIN
SELECT wmsys.owm_vt_pkg.wm_lessthan(WM_PERIOD(p1b, p1e), WM_PERIOD(p2b, p2e))
INTO retval
FROM dual;
DECLARE
retval INTEGER;
p1b DATE := TO_DATE('01-JAN-2021');
p1e DATE := TO_DATE('03-JAN-2021');
p2b DATE := TO_DATE('03-JAN-2021');
p2e DATE := TO_DATE('06-JAN-2021');
BEGIN
SELECT wmsys.owm_vt_pkg.wm_meets(WM_PERIOD(p1b, p1e), WM_PERIOD(p2b, p2e))
INTO retval
FROM dual;
DECLARE
retval INTEGER;
p1b DATE := TO_DATE('01-JAN-2021');
p1e DATE := TO_DATE('31-JAN-2021');
p2b DATE := TO_DATE('31-DEC-2013');
p2e DATE := TO_DATE('02-JAN-2021');
BEGIN
SELECT wmsys.owm_vt_pkg.wm_overlaps(WM_PERIOD(p1b, p1e), WM_PERIOD(p2b, p2e))
INTO retval
FROM dual;
DECLARE
retval WM_PERIOD;
p1b DATE := TO_DATE('01-JAN-2021');
p1e DATE := TO_DATE('31-DEC-2021');
p2b DATE := TO_DATE('12-JAN-2020');
p2e DATE := TO_DATE('16-JAN-2021');
BEGIN
SELECT wmsys.owm_vt_pkg.wm_rdiff(WM_PERIOD(p1b, p1e), WM_PERIOD(p2b, p2e))
INTO retval
FROM dual;
dbms_output.put_line(retval.validfrom);
dbms_output.put_line(retval.validtill);
END;
/ 16-JAN-21 12.00.00.000000 AM +00:00
31-DEC-21 12.00.00.000000 AM +00:00