首先,对于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 的权限,并且它不再能够看到该架构。有可能吗?
答案 0 :(得分:1)
您需要考虑名称解析以及访问权限。
您已连接到具有上帝般威力的帐户(顺便说一句,通常不建议使用logging in as root
in Linux之类的方法),但是单独使用它并不能解决对EMPLOYEES
的引用HR
模式中的表(例如)。为此,您将需要
HR.EMPLOYEES
,或EMPLOYEES
(或您想要的任何内容)定义为对HR.EMPLOYEES
的引用,或者alter session set current_schema = HR
。