Oracle:在我知道的架构中找不到任何表

时间:2019-08-12 20:44:39

标签: oracle

首先,对于Oracle,我几乎一无所知。我已经使用SQL Server多年了,所以我对SQL总体上很熟悉。

我有一个模式(我认为这等效于SQL Server中的数据库吗?),并且它下面有表。我知道表格存在。我有一个从SQL Server到它们的链接服务器连接,我看到了表和数据。之前,我可以使用ALTER SESSION SET CURRENT_SCHEMA MySchema命令在SQLPlus和SQL Developer中访问这些表。

现在,当我尝试查询那些表时, ORA-00942: table or view does not exist 00942. 00000 - "table or view does not exist"

我使用系统帐户登录,该帐户与我的Linked Server使用的帐户相同,我的理解是系统应该有权访问所有架构和表。

我担心我会以某种方式弄乱对 System 的权限,并且它不再能够看到该架构。有可能吗?

1 个答案:

答案 0 :(得分:1)

您需要考虑名称解析以及访问权限。

您已连接到具有上帝般威力的帐户(顺便说一句,通常不建议使用logging in as root in Linux之类的方法),但是单独使用它并不能解决对EMPLOYEES的引用HR模式中的表(例如)。为此,您将需要

  • 请参阅HR.EMPLOYEES,或
  • 创建属于您要使用的帐户的私有同义词,将EMPLOYEES(或您想要的任何内容)定义为对HR.EMPLOYEES的引用,或者
  • 创建公共同义词,或者
  • alter session set current_schema = HR