我正在尝试执行以下查询“创建一个视图,该视图将员工用户对订单表的访问限制为9:00到18:00之间的工作时间。 对员工用户的权限。“
但是我很挣扎,到目前为止我用的是:
CREATE VIEW STAFF_RESTRICTORDERVIEW AS
SELECT TO_CHAR (SYSDATE, 'DD-MM-YYYY HH24:MI:SS'), ORDERNUMBER, CUSTOMERNUMBER, DATEORDERPLACED, DELIVERYINSTRUCTION, SCHEDULEID,
FROM ORDERS
WHERE STAFF_RESTRICTORDERVIEW (SYSDATE, 'DD-MM-YYYY HH24:MI:SS') NOT BETWEEN
(SYSDATE, 'DD-MM-YYYY 09:00:00') AND (SYSDATE, 'DD-MM-YYYY 18:00:00')
如果上面的代码有效,那么我就可以添加以下内容:
GRANT SELECT on STAFF_RESTRICTORDERVIEW TO 'STAFF_USER'
任何帮助将不胜感激,提前谢谢:)。
答案 0 :(得分:3)
试试这个:
CREATE VIEW STAFF_RESTRICTORDERVIEW (
current_sys_date,
ordernumber,
customernumber,
dateorderplaced,
deliveryinstruction,
scheduleid
) AS
SELECT
sysdate,
ORDERNUMBER,
CUSTOMERNUMBER,
DATEORDERPLACED,
DELIVERYINSTRUCTION,
SCHEDULEID
FROM ORDERS
WHERE SYSDATE NOT BETWEEN trunc(sysdate) + 9/24 and trunc(sysdate) + 18/24
我相信如果你在9:00到18:00之间运行它会返回一个空的记录集。如果你想反过来,只想在这些小时之间获得记录,那么从最后一行中删除NOT。