首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ORA-04063:视图有错误

ORA-04063:视图有错误
EN

Stack Overflow用户
提问于 2018-02-02 09:43:05
回答 2查看 50.6K关注 0票数 4

我的数据库中有3个用户(模式)。

用户A持有表X

我为用户B创建了视图Y,为用户C创建了视图Z。视图是相同的:

代码语言:javascript
复制
 CREATE OR REPLACE FORCE EDITIONABLE VIEW "user_name"."view_name" ("field_1", "field_2") AS 
  SELECT field1_1
,      field2_2
FROM   User_A.X;

第一个视图工作正常;对于第二个视图,我试图查看数据(来自)时出错如下:

ORA-04063:查看"User_C.Z“有错误。

我尝试用SQL +创建它:它是用编译错误创建的,但是“显示错误”命令返回“无错误”。

有什么建议吗?

EN

回答 2

Stack Overflow用户

发布于 2018-02-02 09:58:39

show errors SQL*Plus命令默认为为最后创建的PL/SQL对象报告错误。要显示视图的错误,必须指定它:

代码语言:javascript
复制
SQL> create or replace force view someview as select * from nosuchtable;

Warning: View created with compilation errors.

SQL> show errors
No errors.

SQL> show errors view someview
Errors for VIEW SOMEVIEW:

LINE/COL   ERROR
---------- --------------------------------------------------------------------
0/0        ORA-00942: table or view does not exist
0/0        ORA-54039: table must have at least one column that is not invisible

或者您只需查询user_errors

代码语言:javascript
复制
SQL> select line, text from user_errors where name = 'SOMEVIEW' order by sequence;
LINE TEXT
---- --------------------------------------------------------------------------------
   0 ORA-54039: table must have at least one column that is not invisible
   0 ORA-00942: table or view does not exist

如果您真的将它命名为"view_name" (双引号),那么您需要以完全相同的方式引用它,包括大小写和引号。

代码语言:javascript
复制
show errors view "someview"

select line, text from user_errors where name = 'someview' order by sequence;

或者,尝试在没有force选项的情况下创建视图:

代码语言:javascript
复制
SQL> create or replace view someview as select * from nosuchtable;
create or replace view someview as select * from nosuchtable
                                                 *
ERROR at line 1:
ORA-00942: table or view does not exist

或者,在没有create view部件的情况下单独测试查询:

代码语言:javascript
复制
SQL> select * from nosuchtable;
select * from nosuchtable
              *
ERROR at line 1:
ORA-00942: table or view does not exist
票数 11
EN

Stack Overflow用户

发布于 2018-09-24 06:47:04

通常,当从视图的任何表中修改或删除属性名称时,我也会遇到同样的问题,然后就会发生此错误。我从表中删除了一个列并得到了这个错误,为了解决这个错误,我在删除视图中存在但在表中不存在的属性之后重新创建了该视图。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48579812

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档