首先,当涉及到Oracle时,我几乎完全无知。 我已经处理SQL Server很多年了,所以我对SQL很熟悉。
我有一个模式(我认为它相当于SQL Server中的数据库?),它下面有表。 我知道这些表是存在的。 我有一个从SQL Server到它们的链接服务器连接,我看到了表和数据。 我之前能够在 SQLPlus 和 SQL Developer 中使用ALTER SESSION SET CURRENT_SCHEMA MySchema
命令访问这些表。
现在,当我尝试查询这些表时,我得到ORA-00942: table or view does not exist
00942. 00000 - "table or view does not exist"
.
我使用系统帐户登录,该帐户与链接服务器使用的帐户相同,我的理解是系统应该有权访问所有架构和表。
我担心的是我以某种方式搞砸了对系统的权限,它再也看不到架构了。 这可能吗?
您需要考虑名称解析以及访问权限。
您连接到一个具有神性力量的帐户(顺便说一下,通常不建议这样做,就像在 Linux 中以root
身份登录一样),但是当它是HR
架构中的表时,它本身无助于解析对EMPLOYEES
的引用(例如)。为此,您需要
- 请参阅
HR.EMPLOYEES
或 - 创建一个属于您将使用的帐户的私有同义词,将
EMPLOYEES
(或任何您想要的)定义为对HR.EMPLOYEES
的引用,或 - 创建公共同义词,或
alter session set current_schema = HR
.