oracle表条目不存在

时间:2015-05-01 07:56:16

标签: oracle installation sap hp-ux

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

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

OCI呼叫失败了   -1 = OCI_ERROR SQL错误942:' ORA-00942:表或视图不存在'

     

***错误=> ORA-942的时候   访问表SAPUSER

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

  1. 表格不存在或
  2. 用户无权访问此表
  3. 接下来我检查了表格,并在dba_tables中找到了一个条目,

    SQL> select owner from dba_tables where table_name='SAPUSER';
    
    OWNER
    ------------------------------
    OPS$E64ADM
    

    但是在尝试使用select query

    从中获取数据时
    SQL> select * from SAPUSER;
    select * from SAPUSER
                  *
    ERROR at line 1:
    ORA-00942: table or view does not exist
    

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

2 个答案:

答案 0 :(得分:1)

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

select * from OPS$E64ADM.SAPUSER

答案 1 :(得分:1)

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

检查您以

身份登录的用户
int rowcount = 0;
if (res.last()) {
    rowcount = res.getRow();
    res.beforeFirst();
}
Object rowData[][] = new Object[rowcount][];
int count = 0;
while (res.next()) {
    rowData[count] = new Object[]    {res.getString(1),res.getString(1),res.getString(3)};  
    count++;
}
Object columnNames[] = { "URL", "Tag Information", "Text" };
JTable table = new JTable(rowData, columnNames);

这将显示您登录的用户, 如果你在OPS $ E64ADM,使用

直接查询
SQL> SHOW USER

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

SQL> select * from SAPUSER;

然后,您可以使用

从其他用户访问
SQL>  grant select on OPS$E64ADM.SAPUSER to username;  -- the username from which you want to access the table;