with check option保证了通过视图进行的修改,必须也能通过该视图看到修改后的结果;
你插入,那么插入这条记录在刷新视图后必须可以看到;
如果修改,修改完的结果也必须能通过该视图看到;

scott登录了以后创建如下图语句的视图,带有With Check Option;权限不足,

oracle with check option 学习-LMLPHP
 

sys给scott授权创建视图;

oracle with check option 学习-LMLPHP 

创建视图;

oracle with check option 学习-LMLPHP 

创建成功,视图的数据;

oracle with check option 学习-LMLPHP 

然后对视图执行如下的插入语句;提示1行已插入;此时deptno是20,

oracle with check option 学习-LMLPHP 

如果改为如下,deptno为30,对视图执行插入,则会出错如下,视图 WITH CHECK OPTION where 子句违规;

oracle with check option 学习-LMLPHP 

因为创建视图时选择的数据都是deptno为20,如果用视图插入了deptno为30的数据,那么通过该视图会看不到此条数据, 这违背with check option;

03-04 03:46