ORA-00942通过SQLPlus连接

时间:2015-01-20 15:23:30

标签: oracle sqlplus

背景: 我使用的是oracle 11.2.0.4标准版。 我创建了一个新的数据库(CREATE DATABASE + catalog + catproc) 当我连接这些数据库时,我遇到了问题。 它有效,但我有一个ORA-00942:表或视图不存在错误! 你知道这个问题吗?

>sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Tue Jan 20 16:22:27 2015

Copyright (c) 1982, 2013, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Release 11.2.0.4.0 - 64bit Production

SQL>  create user test PROFILE DEFAULT IDENTIFIED BY test  DEFAULT TABLESPACE TEST  TEMPORARY TABLESPACE TEMP QUOTA UNLIMITED on test ACCOUNT UNLOCK;

User created.

SQL> grant connect to test;

Grant succeeded.
SQL> Disconnected from Oracle Database 11g Release 11.2.0.4.0 - 64bit Production


>sqlplus test/test

SQL*Plus: Release 11.2.0.4.0 Production on Tue Jan 20 16:13:50 2015

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

ERROR:
ORA-00942: table or view does not exist

Connected to:
Oracle Database 11g Release 11.2.0.4.0 - 64bit Production

1 个答案:

答案 0 :(得分:0)

我最近在工作中遇到了这个问题 - 您通过sqlplus登录到Oracle并在连接时抛出ora-00942(表或视图不存在)。

事实证明问题是我们没有运行pupbld.sql,它负责设置一组sqlplus(和 sqlplus)关心的系统表。在使用sqlplus时能够为不同的帐户分配不同的权限是有关的,因此在连接时它会尝试访问这些表,如果你还没有运行pupbld.sql,那么它会抛出一个ORA-00942,因为它需要的表没有那里。

您应该可以通过运行以下命令来解决问题: sqlplus system/manager @?/sqlplus/admin/pupbld.sql

注意:以系统的形式运行它非常重要,因为预计表格会存在于系统架构中。