ORA-04063: 视图有错误

新手上路,请多包涵

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

用户 A 持有表 X

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

  CREATE OR REPLACE FORCE EDITIONABLE VIEW "user_name"."view_name" ("field_1", "field_2") AS
  SELECT field1_1
,      field2_2
FROM   User_A.X;

第一个视图工作正常;对于第二个我在尝试查看数据时出现以下错误(来自 SQL 开发人员):

ORA-04063: 视图 “User_C.Z” 有错误。

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

有什么建议吗?

原文由 Fab 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.8k
2 个回答

有关错误代码 ORA-04063 的 Oracle 文档包括以下内容

对于视图,问题可能是视图定义查询中对不存在的表的引用

不存在的表有时也意味着您无权访问的表。

您在谁的架构中创建了视图?

您在视图上授予了哪些权限?

您在基础表(即表 X)上授予了哪些权限?

原文由 Abra 发布,翻译遵循 CC BY-SA 3.0 许可协议

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

 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

 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" (双引号),那么您需要以完全相同的方式引用它,包括大小写和引号。

 show errors view "someview"

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

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

 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 部分的情况下自行测试查询:

 SQL> select * from nosuchtable;
select * from nosuchtable
              *
ERROR at line 1:
ORA-00942: table or view does not exist

原文由 William Robertson 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进