我运行了以下语句:
create table SAMPLE(
ID INT
);
INSERT INTO SAMPLE VALUES(1);
COMMIT;
GRANT INSERT, SELECT, UPDATE, DELETE ON SAMPLE TO NEWLEC;
COMMIT;但是Eclipse说找不到表。

我怎么解决它呢?
发布于 2021-09-06 16:30:55
您是以newlec用户身份连接的,对表的非限定引用将在该模式中查找它们,而不是在其他用户下查找它们。
您可以限定表名:
SELECT * FROM real_owner.SAMPLE例如,如果您在创建表时以HR身份连接,则应执行以下操作:
SELECT * FROM HR.SAMPLE您还可以创建一个公共同义词,这可能过于夸张,可能会导致其他问题和混乱;或者为指向rea表的newlec用户创建一个私有同义词,例如:
CREATE SYNONYM SAMPLE FOR real_owner.SAMPLE;
SELECT * FROM SAMPLE;因此,未限定的查询现在可以看到同义词,并通过该同义词看到其他人拥有的真正的表。或者您可以在登录后设置您的current_schema:
ALTER SESSION SET CURRENT_SCHEMA=real_owner;
SELECT * FROM SAMPLE;因此,所有未限定的查询现在都可以看到属于该用户的对象,而不是newlec。
但是,如果这是初学者课程的基本作业,那么您可能只需要限定名称即可。
https://stackoverflow.com/questions/69077671
复制相似问题