关闭

Oracle视图

90人阅读 评论(0) 收藏 举报
create or replace view v_emp as select empno,ename,sal from emp;

select * from v_emp;  --使用视图
update v_emp set sal=5555 where empno=7782;  --可以更新
commit;

--只读视图
create or replace view v_emp 
as select empno,ename,sal from emp  order by sal with read only; --只读


--在视图上也可以使用修改数据的DML语句,如INSERT、UPDATE和DELETE 
--视图上的DML语句有如下限制: 
--只能修改一个底层的基表 
--如果修改违反了基表的约束条件,则无法更新视图 
--如果视图包含连接操作符、DISTINCT 关键字、集合操作符、聚合函数或
--GROUP BY 子句,则将无法更新视图 
--如果视图包含伪列或表达式,则将无法更新视图


--连接视图使用DML只能修改单个基表  
create or replace view v_emp_dept
as
 select e.empno,e.ename,e.sal,d.deptno,d.dname from emp e
 inner join dept d on e.deptno=d.deptno;


--重新编译视图   基表使用alter table修改后视图将失效 需要重新编译
alter view v_emp_dept compile
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:12780次
    • 积分:381
    • 等级:
    • 排名:千里之外
    • 原创:30篇
    • 转载:0篇
    • 译文:0篇
    • 评论:1条
    文章存档
    最新评论