【问题标题】:Oracle thinks table doesn't exist during alteroracle在alter期间认为表不存在
【发布时间】:2012-09-09 20:10:03
【问题描述】:

我正在尝试使用以下语法更改表中的列:

ALTER TABLE MY_SCHEMA.latest_workspace MODIFY (short_name VARCHAR2(10) NOT NULL);

这是我得到的错误:

从命令的第 1 行开始出错:ALTER TABLE MY_SCHEMA.latest_workspace MODIFY (short_name VARCHAR2(10) NOT NULL) 错误报告:SQL 错误:ORA-00942:表或视图不存在 00942. 00000 - “表或视图不存在” *原因:
*行动:

但是,我可以在物理上很好地查看该表并使用以下命令对其进行查询:

SELECT short_name FROM MY_SCHEMA.latest_workspace;

此外,所有正确的权限都授予我登录的用户。还有什么我忘记的东西会导致 ALTER 发生这种情况吗?

谢谢!

【问题讨论】:

  • 绝对是表格而不是视图?!

标签: sql oracle oracle11g


【解决方案1】:

看起来MY_SCHEMA.latest_workspace 不是表格。它可能是一个视图,也可能是其他模式中对象的同义词。试试这个查询来找出答案:

select object_type
from   user_objects
where object_name = 'LATEST_WORKSPACE';

您随后需要采取的行动取决于结果。

【讨论】:

  • 你说的都是对的。他们正在对数据库的某些部分使用工作区管理器,而我将此视图误认为是启用版本的表(愚蠢的星期一)。
【解决方案2】:

我发现解决此问题的唯一方法是重新创建表。 (重命名、删除约束和索引、重新创建原始表、插入记录)。

找不到原因,但听起来我像个错误。

【讨论】:

    猜你喜欢
    • 2011-03-29
    • 2021-09-27
    • 2019-05-11
    • 2021-12-06
    • 1970-01-01
    • 1970-01-01
    • 2014-05-03
    • 1970-01-01
    • 2014-07-31
    相关资源
    最近更新 更多