Oracle表结构修改触发视图无法正常使用问题
2014-05-24 13:49
344 查看
一.问题描述
当对视图使用的基表进行表结构修改后,会触发视图的无效以及编译出错问题,必须重建视图解决。
二.问题再现
1.Oracle10g环境
1.1 创建视图测试用两张基表:TestTable和TestUser
1.2 创建测试视图VW_TABLEUSERALL和VW_TABLEUSER
前者使用了TestTable.*, 后者显示指定列。
查询视图的状态如下:全部是Valid状态
1.3 修改TestTable表结构:增加一列Col1
再次查询视图的状态如下:全部是INVALID状态
1.4 重新编译两张视图
重新查询视图的状态如下:全部是Valid状态:
查询视图的数据:VW_TableUserAll查询出错。
1.5 视图重建
重新查询视图的数据:VW_TableUserAll查询正常: 新增的Col1出现了!
2. Oracle11g环境
2.1 环境准备
和Orale10g下的1.1 和1.2 步骤一致
2.2 修改TestTable表结构:增加一列Col1
查询视图的状态如下:全部是VALID状态
2.3 查询视图VW_TableUserAll,没有新增的Col1这一列!
但是基表TestTable中存在Col1这一列
2.4 重新编译视图,依旧查不到Col1这一列
2.5 重建视图,问题解决
3. 问题结论
Oracle10g环境下:
对视图基表的修改会触发view的无效。[b]如果视图中使用了修改的基表表结构,重新编译视图无法解决问题,视图需要重建。[/b]
Oracle11g环境下:
[b][b]对视图基表的修改不会触发view的无效。[b]如果视图中使用了修改的基表表结构,重新编译视图无法解决问题,视图需要重建。[/b][/b][/b]
[b][b][b]因此:[/b][/b][/b]
如果修改了视图使用到的基表的表结构被修改了,恰如视图中涉及了修改后的表结构,重新编译视图操作,仍无法查询到修改的列,必须进行视图重建。
当对视图使用的基表进行表结构修改后,会触发视图的无效以及编译出错问题,必须重建视图解决。
二.问题再现
1.Oracle10g环境
1.1 创建视图测试用两张基表:TestTable和TestUser
1.2 创建测试视图VW_TABLEUSERALL和VW_TABLEUSER
前者使用了TestTable.*, 后者显示指定列。
查询视图的状态如下:全部是Valid状态
1.3 修改TestTable表结构:增加一列Col1
再次查询视图的状态如下:全部是INVALID状态
1.4 重新编译两张视图
重新查询视图的状态如下:全部是Valid状态:
查询视图的数据:VW_TableUserAll查询出错。
1.5 视图重建
重新查询视图的数据:VW_TableUserAll查询正常: 新增的Col1出现了!
2. Oracle11g环境
2.1 环境准备
和Orale10g下的1.1 和1.2 步骤一致
2.2 修改TestTable表结构:增加一列Col1
查询视图的状态如下:全部是VALID状态
2.3 查询视图VW_TableUserAll,没有新增的Col1这一列!
但是基表TestTable中存在Col1这一列
2.4 重新编译视图,依旧查不到Col1这一列
2.5 重建视图,问题解决
3. 问题结论
Oracle10g环境下:
对视图基表的修改会触发view的无效。[b]如果视图中使用了修改的基表表结构,重新编译视图无法解决问题,视图需要重建。[/b]
Oracle11g环境下:
[b][b]对视图基表的修改不会触发view的无效。[b]如果视图中使用了修改的基表表结构,重新编译视图无法解决问题,视图需要重建。[/b][/b][/b]
[b][b][b]因此:[/b][/b][/b]
如果修改了视图使用到的基表的表结构被修改了,恰如视图中涉及了修改后的表结构,重新编译视图操作,仍无法查询到修改的列,必须进行视图重建。
相关文章推荐
- Oracle表结构修改触发视图无法正常使用问题
- 导入SourceSafe过程中项目结构无法修改问题的解决方案。
- 使用NHibernate, Oracle Clob/NClob无法插入、乱码问题
- freetype使用日记 -- 解决宋体,楷体中文在某些字号下无法正常显示的问题
- 解决eWebEditor编辑器在IE7跟IE8中无法正常使用的问题
- Oracle10g 修改SYSMAN密码导致em的dbconsole无法正常使用
- 关于使用Adoeb SVG Viewer在IE中无法正常显示SVG文档的问题
- 解决修改计算机名Oracle无法启动的问题
- 如何解决SqlServer2008修改表结构后无法保存的问题
- oracle可执行文件s位导致的Cluster资源组无法正常启动的问题解决
- oracle 视图 创建 操作 简单 复杂 基表 不存在 增 删 改 插入 修改 删除 查看 结构
- 解决PING指令无法正常使用问题
- .NET----使用母版页后,控件名称自动生成导致js无法正常操作.net控件的问题
- Hibernate3不使用事务无法保存或修改数据问题
- Oracle出现了问题“无法使用系统回滚段”并解决
- 解决打过震荡波补丁之后oracle无法正常启动的问题
- MySQL Connector/Net 5.20安装后无法在VS2008中正常使用的问题
- Win2003 SP1下delphi7无法正常使用的问题
- 折腾Oracle问题小菜记[分页存储过程/查询所有表、视图、存储过程/查询表、视图、存储过程字段结构与参数](三)
- 密钥发行中心(KDC)找不到相应的证书用于智能卡登录,或者无法验证 KDC 证书。如果不解决该问题,智能卡登录可能不会正常工作。若要更正该问题,请使用 certutil.exe 验证现有的 KDC 证书或注册新的 KDC 证书。