0

在 3 层架构上安装 sap 时,我需要安装数据库实例(oracle)和中央实例(sap)以及两台不同的机器。完成数据库安装并继续中央实例安装后,安装程序正在尝试访问表并失败并出现以下错误

SELECT USERID, PASSWD FROM
SAPUSER WHERE USERID IN (:A0, :A1)

OCI 调用失败,出现 -1=OCI_ERROR SQL 错误 942:“ORA-00942:表或视图不存在”

*** 错误 => 访问表 SAPUSER 时出现 ORA-942

所以我查了一下发现有两种情况是可能的

  1. 表不存在或
  2. 用户无权访问此表

接下来我检查了表,并在 dba_tables 中找到了一个条目,

SQL> select owner from dba_tables where table_name='SAPUSER';

OWNER
------------------------------
OPS$E64ADM

但是当尝试使用选择查询从中获取数据时

SQL> select * from SAPUSER;
select * from SAPUSER
              *
ERROR at line 1:
ORA-00942: table or view does not exist

现在我很困惑,桌子是否可用。这是什么原因,如何解决?

4

2 回答 2

1

您以谁的身份登录?除非它是表的所有者,否则您需要更改代码以包含所有者,即。

select * from OPS$E64ADM.SAPUSER
于 2015-05-01T09:13:56.800 回答
1

这取决于您从哪里访问对象,

检查以查看您以哪个用户身份登录

SQL> SHOW USER

这将显示您以哪个用户身份登录,如果您在 OPS$E64ADM 中,则使用直接查询

SQL> select * from SAPUSER;

如果显示用户显示任何其他用户,您需要从其他用户访问它的权限,可以询问 dba 或者如果您有访问权限然后运行,

SQL>  grant select on OPS$E64ADM.SAPUSER to username;  -- the username from which you want to access the table;

然后,您可以从其他用户访问,使用,

SQL> select * from OPS$E64ADM.SAPUSER
于 2015-05-01T09:19:52.847 回答