首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ORA-00942找不到表

ORA-00942找不到表
EN

Stack Overflow用户
提问于 2021-09-06 16:20:10
回答 1查看 30关注 0票数 0

我运行了以下语句:

代码语言:javascript
复制
create table SAMPLE(
     ID INT
     );
     
INSERT INTO SAMPLE VALUES(1);
COMMIT;

GRANT INSERT, SELECT, UPDATE, DELETE ON SAMPLE TO NEWLEC;
COMMIT;

但是Eclipse说找不到表。

我怎么解决它呢?

EN

回答 1

Stack Overflow用户

发布于 2021-09-06 16:30:55

您是以newlec用户身份连接的,对表的非限定引用将在该模式中查找它们,而不是在其他用户下查找它们。

您可以限定表名:

代码语言:javascript
复制
SELECT * FROM real_owner.SAMPLE

例如,如果您在创建表时以HR身份连接,则应执行以下操作:

代码语言:javascript
复制
SELECT * FROM HR.SAMPLE

您还可以创建一个公共同义词,这可能过于夸张,可能会导致其他问题和混乱;或者为指向rea表的newlec用户创建一个私有同义词,例如:

代码语言:javascript
复制
CREATE SYNONYM SAMPLE FOR real_owner.SAMPLE;
SELECT * FROM SAMPLE;

因此,未限定的查询现在可以看到同义词,并通过该同义词看到其他人拥有的真正的表。或者您可以在登录后设置您的current_schema

代码语言:javascript
复制
ALTER SESSION SET CURRENT_SCHEMA=real_owner;
SELECT * FROM SAMPLE;

因此,所有未限定的查询现在都可以看到属于该用户的对象,而不是newlec

但是,如果这是初学者课程的基本作业,那么您可能只需要限定名称即可。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69077671

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档