如何实现在限定的时间内允许访问视图? 今天从Oracle介绍VPD的白皮书上看到一种说法,翻译过来是这样的:视图可根据上下文限制对数据的访问,例如,设想你的公司策略是员工只能在正常的工作时间查看员工的工资信息。你可以创建一个视图,并对这个视图增加限制使其只能在上午9:00到下午5:00访问。请问如何实现,谢谢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 产生视图的时候加个where条件啊where to_char(sysdate,'hh24')>=9 and to_char(sysdate,'hh24')<=17这样时间不对就返回空集 SQL> select * from emp where sysdate between sysdate-0.1 and sysdate+0.1; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO---------- ---------- --------- ---------- -------------- ---------- ---------- ---------- 7369 SMITH CLERK 7902 17-12月-80 800 20 7499 ALLEN SALESMAN 7698 20-2月 -81 1600 300 30 7521 WARD SALESMAN 7698 22-2月 -81 1250 500 30 7566 JONES MANAGER 7839 02-4月 -81 2975 20 7654 MARTIN SALESMAN 7698 28-9月 -81 1250 1400 30 7698 BLAKE MANAGER 7839 01-5月 -81 2850 30 7782 CLARK MANAGER 7839 09-6月 -81 2450 10 7788 SCOTT ANALYST 7566 19-4月 -87 3000 20 7839 KING PRESIDENT 17-11月-81 5000 10 7844 TURNER SALESMAN 7698 08-9月 -81 1500 0 30 7876 ADAMS CLERK 7788 23-5月 -87 1100 20 7900 JAMES CLERK 7698 03-12月-81 950 30 7902 FORD ANALYST 7566 03-12月-81 3000 20 7934 MILLER CLERK 7782 23-1月 -82 1300 10已选择14行。SQL> select * from emp where sysdate between sysdate+0.1 and sysdate+0.2; 应该可以的吧。在创建设置上下文的包里进行控制,判断当前时间,如果不在指定的时间段内,raise一个异常,我没试过,呵呵。 oracle安装问题 哪位大哥帮我看看这个问题 监听服务没有了? oracle 7 下获取用户可访问表的名称 請教﹕怎樣調整db_block_buffers 怎样打开以前的数据库? 求ORACLE命中率太低的解决方法 请教:DATE型字段做主键有什么优缺点 SQLServer的数据导入Oracle8i时遇到的问题? 多级集合无法创建问题,求救 关与批处理的问题 一个批处理调用SQLplus SQLplus又执行别的 如何按照时间段来查询?非常着急!谢谢
where to_char(sysdate,'hh24')>=9 and to_char(sysdate,'hh24')<=17
这样时间不对就返回空集
---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
7369 SMITH CLERK 7902 17-12月-80 800 20
7499 ALLEN SALESMAN 7698 20-2月 -81 1600 300 30
7521 WARD SALESMAN 7698 22-2月 -81 1250 500 30
7566 JONES MANAGER 7839 02-4月 -81 2975 20
7654 MARTIN SALESMAN 7698 28-9月 -81 1250 1400 30
7698 BLAKE MANAGER 7839 01-5月 -81 2850 30
7782 CLARK MANAGER 7839 09-6月 -81 2450 10
7788 SCOTT ANALYST 7566 19-4月 -87 3000 20
7839 KING PRESIDENT 17-11月-81 5000 10
7844 TURNER SALESMAN 7698 08-9月 -81 1500 0 30
7876 ADAMS CLERK 7788 23-5月 -87 1100 20
7900 JAMES CLERK 7698 03-12月-81 950 30
7902 FORD ANALYST 7566 03-12月-81 3000 20
7934 MILLER CLERK 7782 23-1月 -82 1300 10已选择14行。SQL> select * from emp where sysdate between sysdate+0.1 and sysdate+0.2;
在创建设置上下文的包里进行控制,判断当前时间,如果不在指定的时间段内,raise一个异常,我没试过,呵呵。