0

当我运行此查询以查看 PL/SQL Developer 中用户 Scott 可用的表时,我得到了 11 个表,包括表 EMP。

Select Table_Name
From All_Tables
Where Owner = 'SCOTT';

但是当我尝试在 PL/SQL Developer 中使用这样的全选访问表 emp 时:

select * from emp;

我收到 0ra-00942 表或视图不存在错误。然而,在同一架构中的 SQL*PLUS 中,相同的选择语句给了我表 emp 的内容。是什么导致 PL/SQL Developer 中出现此错误?

4

1 回答 1

2

当您使用 PL/SQL Developer 时,您使用什么用户连接到数据库?假设您使用的是 SCOTT 以外的用户,您可能需要使用完全限定名

SELECT *
  FROM scott.emp

您还可以在您使用的任何模式中创建同义词

CREATE SYNONYM emp
   FOR scott.emp

然后在查询中使用同义词

-- This resolves to the private synonym that you just created
SELECT *
  FROM emp
于 2013-04-07T20:14:31.980 回答