alter期间Oracle认为表不存在

问题描述 投票:0回答:4

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

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

这是我遇到的错误:

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

但是,我可以很好地查看该表并使用以下命令进行查询:

SELECT short_name FROM MY_SCHEMA.latest_workspace;

此外,所有正确的权限都授予我登录的用户。还有其他我忘记的事情可能会导致 ALTER 发生这种情况吗?

谢谢!

sql oracle-database oracle11g
4个回答
4
投票

看起来

MY_SCHEMA.latest_workspace
不是一张桌子。 它可能是一个视图,或者可能是其他模式中对象的同义词。 尝试这个查询来找出答案:

select object_type
from   user_objects
where object_name = 'LATEST_WORKSPACE';

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


0
投票

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

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


0
投票

我也遇到了这个问题,但这是因为表处于不同的架构中。我删除了一张表并在相同的架构中创建了它,所以它起作用了。


0
投票

我也遇到这个问题了。就我而言,它结果是一个同义词。在运行帖子发布后,这就是我修复它的方法。

首先检查表是否存在

SELECT table_name FROM user_tables WHERE table_name = 'latest_workspace';

返回空白。

然后检查该表是否存在于另一个模式中

SELECT owner, table_name FROM all_tables WHERE table_name ='latest_workspace';

它返回了一个很长的所有者列表,但我的所有者(SCHEMA)不在列表中。

然后我检查了SYNONYM

SELECT owner,table_owner, table_name FROM all_synonyms WHERE synonym_name = 'latest_workspace';

它很受欢迎。

然后我在alter语句中使用

table_owner
来执行它。

希望这有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.