甲骨文:在我知道存在的架构中找不到任何表



首先,当涉及到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.

最新更新