设为首页 加入收藏

TOP

日常监控邮件预警(视图无效测试分析)
2019-09-17 19:03:30 】 浏览:38
Tags:日常 监控 邮件 预警 无效 测试 分析

第一次在博客园写博客,写的不好,请大家多多评论,也希望自己以后对技术探索的更深。

今天下班之后,由于晚上要发版本,所以开发同事必须留下,突然收到一封公司监控预警邮件。

瞄了几眼,大致的意思就是说 视图无效。由于视图查询的是表,所以开始做实验测试。

 

实验一: 当基表drop列的时候,视图是否还是有效?

1.新建一张基表:

create table test1(row_id number,cust_no varchar2(100));

2.查看表的表结构

select a.owner,
a.TABLE_NAME,
c.comments,
a.COLUMN_NAME,
a.DATA_TYPE,
a.CHAR_LENGTH,
a.DATA_DEFAULT,
b.comments
from dba_tab_columns a
inner join dba_col_comments b
on a.OWNER = b.owner
and a.TABLE_NAME = b.table_name
and a.COLUMN_NAME = b.column_name
inner join dba_tab_comments c
on a.TABLE_NAME = c.table_name
and a.OWNER = c.owner
where a.owner = upper('SCOTT')
and a.TABLE_NAME = upper('test1')
order by a.COLUMN_ID;

3.创建一张视图

create or replace view v_test1 as select * from test1;

4.查看视图的状态:

5.删除CUST_NO列,表结构如下:

 -- Drop columns 

alter table TEST1 drop column cust_no;

 

6.查看视图是否还是有效? 此时看到视图已经无效了

 

实验二:

当表新增列的时候,视图是否还是有效的昵?

1.新建一张测试表,表结构如下:

create table test_add_col(row_id varchar(10),cust_no varchar2(20));

2.创建一张视图,命令如下:

create or replace view v_test_add_col as select * from test_add_col;

3.查看视图的状态,如下:

4.对test_add_col表新增一列,脚本如下:

-- Add/modify columns
alter table TEST_ADD_COL add cust_name VARCHAR2(100);

5.最后查看视图v_test_add_col 是否还是有效?

select t.status,t.* from dba_objects t where t.OBJECT_NAME = upper('v_test_add_col');

结论:当对表drop列的时候,对访问这张表的视图有影响,要相应的修改视图。

        当对表add列的时候,对访问这张表的视图没有影响。

        当对表的列的数据类型发生更改的时候,对访问这张表的视图没有影响。

 

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇深入理解SQL的四种连接-左外连接.. 下一篇辅助排序和Mapreduce整体流程

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目