ITPub博客

首页 > 数据库 > Oracle > [20140529]建立视图问题.txt

[20140529]建立视图问题.txt

原创 Oracle 作者:lfree 时间:2014-05-29 08:53:09 0 删除 编辑

[20140529]建立视图问题.txt

--昨天想将在10g下建立的视图移植到11g,遇到一个奇怪的问题,自己做一个记录。

orcl> @ver

BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi

orcl> create table t  ( id number,c1 varchar2(20),c2 varchar2(20));
Table created.

orcl> create or replace  force view v_t (id ,c1) as select id ,c1,c2 from t ;
Warning: View created with compilation errors.

orcl> show error
No errors.

--可以发现编译有错,少了1个字段。

orcl> select * from v_t;
select * from v_t
                *
ERROR at line 1:
ORA-01730: invalid number of column names specified

orcl> select id,c1 from v_t;
no rows selected

--可以发现如果查询这个视图有问题,只要不设计c2字段,问题消失。很奇怪的是在toad看没有报错。

--在11G下重复测试:

SCOTT@test> @ver

BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production

SCOTT@test> create table t ( id number,c1 varchar2(20),c2 varchar2(20));
Table created.

SCOTT@test> create or replace  force view v_t (id ,c1) as select id ,c1,c2 from t ;
Warning: View created with compilation errors.

SCOTT@test> show error
No errors.

SCOTT@test> select id,c1 from v_t;
select id,c1 from v_t
                  *
ERROR at line 1:
ORA-04063: view "SCOTT.V_T" has errors

--可以发现在11g下无法使用。因为在10g下"工作正常",所以浪费了大量时间查找问题,我业务上的视图更长,字段更多,导致当时定位
--浪费了大量时间。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/267265/viewspace-1172150/,如需转载,请注明出处,否则将追究法律责任。

全部评论
熟悉oracle相关技术,擅长sql优化,rman备份与恢复,熟悉linux shell编程。

注册时间:2008-01-03

  • 博文量
    2701
  • 访问量
    6491858