【问题标题】:could not drop oracle view because view does not exist but the view still there无法删除 oracle 视图,因为视图不存在但视图仍然存在
【发布时间】:2014-08-29 16:38:06
【问题描述】:

所以我想删除一个视图...但它说它不存在但我仍然可以查看它并描述它,它怎么会发生?

http://i58.tinypic.com/23upo37.png

抱歉,我还不能发布图片。

【问题讨论】:

  • 对不起,我的代理不支持这个链接。您尝试使用架构名称作为前缀?
  • 我也试过了
  • 不发布图片,只需复制并粘贴文本

标签: sql oracle view ddl


【解决方案1】:

看着您提供的屏幕,我意识到您正在尝试删除 USER_CONS_COLUMNS 视图。 USER_CONS_COLUMNS 是一个不能删除的系统视图。

【讨论】:

  • 嗯,不太对。如果你真的想,你可以放弃这个视图。
  • 我表达的不是很好,我想说题主千万不要放弃这个观点,因为以后数据库有问题。不过还是谢谢你这么好的观点。
【解决方案2】:

USER_CONS_COLUMNS 是同名数据字典视图的公共同义词。您收到错误是因为您尝试使用 DROP VIEW 删除公共同义词:

SQL> create view test_view as select * from dual;

View created.

SQL> create public synonym test_view_syn for test_view;

Synonym created.

SQL> desc test_view_syn;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 DUMMY                                              VARCHAR2(1)

SQL> drop view test_view_syn;
drop view test_view_syn
*
ERROR at line 1:
ORA-00942: table or view does not exist

如果你真的想,你可以放弃公共同义词USER_CONS_COLUMNS

SQL> drop public synonym user_cons_columns;

Synonym dropped.

然后它似乎已经消失了,除了SYS之外的所有用户:

SQL> desc user_cons_columns
ERROR:
ORA-04043: object user_cons_columns does not exist

取回它相当容易。以SYS 运行:

SQL> create public synonym user_cons_columns for sys.user_cons_columns;

Synonym created.

但是你到底为什么要放弃这个观点呢?

【讨论】:

  • 我一直在尝试为我的项目生成 EF,总是收到有关某些系统视图有错误的错误。我找不到修复它们以生成模型的方法...
  • @NoobieCoder:我认为你最好问一个关于如何修复你提到的错误的问题(并且在问题中包含实际的错误)。也许有人能找到修复它们的方法。删除部分 Oracle 绝不是一个好主意,因为您可能希望与 Oracle 数据库一起使用的其他应用程序可能会假定它们存在。
  • 说实话,Entity Framework 里面有很多黑盒的东西。困扰我的问题有时指向映射问题,有时指向 Oracle 视图错误...这就是为什么我试图删除它们但看起来不是 Oracle。
猜你喜欢
  • 2013-02-25
  • 2014-11-02
  • 1970-01-01
  • 2016-07-28
  • 1970-01-01
  • 1970-01-01
  • 2011-06-23
  • 2016-07-08
  • 1970-01-01
相关资源
最近更新 更多