查询时出现AWS RDS Oracle错误- ORA-00942:表或视图不存在

vzgqcmou  于 2023-05-28  发布在  Oracle
关注(0)|答案(1)|浏览(160)

AWS RDS Oracle查询时出错-
ORA-00942:表或视图不存在
我已经在AWS RDS数据库上完成了从MySQL到Oracle的测试数据迁移。迁移后,我运行了几个Select count(*)查询进行验证。错误:ORA-00942: table or view does not exist我正在从AWS EC2示例中使用SQL Developer作为客户端工具。我可以从SQL Developer的GUI中可视化示例数据。但是在运行查询时,我得到了错误。

相关查询不多:

1.
SHOW USER; --ADMIN

2.
SELECT owner FROM all_objects
WHERE object_type IN ('TABLE','VIEW')
AND object_name = 'ureentity'; --ADMIN

3.
Select count(*) from ADMIN.ureentity; --ORA-00942: table or view does not exist

4.
SELECT * FROM USER_TAB_PRIVS WHERE GRANTEE = 'ADMIN';

5.
GRANT SELECT ON ureentity TO ADMIN;

有人能帮忙吗?

wecizke3

wecizke31#

GRANT SELECT ON ureentity TO ADMIN;

您不需要向表的所有者授予对表的访问权限。访问是隐式和不可撤销的。

SELECT owner FROM all_objects
WHERE object_type IN ('TABLE','VIEW')
AND object_name = 'ureentity';

如果你从这个查询中得到输出,其中object_name被强制为小写,那么它意味着这个对象是用引号括起来的,并且小写:例如create table "ureentity" ...
由于对象是使用引号创建的,并且名称必须区分大小写,因此将来必须始终使用引号引用它,否则Oracle将默认阅读名称的大小写,并且不会找到对象。
在以ADMIN连接时尝试以下操作:

Select count(*) from "ureentity";

请注意,一般来说,在Oracle中创建区分大小写的名称被认为是不好的做法。DDL语句中的对象名不应该用引号括起来,那么ureentityUREENTITY可以不带引号使用,并且被认为是等效的。
它们是等效的,不区分大小写:

Select count(*) from ureentity;
Select count(*) from UREENTITY;
Select count(*) from UreEntity;

这些语句与前三个语句不等价,也不相互等价:

Select count(*) from "ureentity";
Select count(*) from "UREENTITY";
Select count(*) from "UreEntity";

相关问题