数据库:oracle 19.12
测试目标:视图所依赖的表被删除后,测试对该视图的影响.
操作过程:
SQL> create view v_emp90
2 as
3 select employee_id,last_name,salary
4 from emp;
View created.
SQL> desc emp;
Name Null? Type
----------------------------------------------------- -------- ------------------------------------
EMPLOYEE_ID NUMBER(6)
FIRST_NAME VARCHAR2(20)
LAST_NAME NOT NULL VARCHAR2(25)
EMAIL NOT NULL VARCHAR2(25)
PHONE_NUMBER VARCHAR2(20)
HIRE_DATE NOT NULL DATE
JOB_ID NOT NULL VARCHAR2(10)
SALARY NOT NULL NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
MANAGER_ID NUMBER(6)
DEPARTMENT_ID NUMBER(4)
SQL> drop table emp purge;
Table dropped.
SQL> select * from v_emp90;
select * from v_emp90
*
ERROR at line 1:
ORA-04063: view "ORA1.V_EMP90" has errors
SQL> desc v_emp90
ERROR:
ORA-24372: invalid object for describe
SQL> select object_name,object_type,to_char(created,'yyyy-mm-dd hh24:mi:ss') from user_objects where object_type='VIEW';
OBJECT_NAME OBJECT_TYPE TO_CHAR(CREATED,'YY
------------------------------ ----------------------- -------------------
V_EMP80 VIEW 2022-06-26 19:09:09
V_EMP50 VIEW 2022-06-26 19:19:58
V_EMP VIEW 2022-06-26 19:53:16
V_EMP20 VIEW 2022-06-26 19:58:40
V_EMP10 VIEW 2022-06-26 20:12:55
V_EMP90 VIEW 2022-06-29 13:20:29
6 rows selected.
SQL> drop view V_EMP90;
View dropped.
结论:当表被删除后,依赖该表的视图也变得无效,但是视图名字依然存在.