标签: ora-00942

ORACLE:删除对象时是否删除了授权?

我目前有两个模式,A和B.

B有一个表,A执行选择插入和更新.

在我们的sql脚本中,我们已授予A权限,以便它可以完成其任务.

grant select on B.thetable to A
etc,etc
Run Code Online (Sandbox Code Playgroud)

现在,表'thetable'被删除,另一个表每天至少重命名为B.

rename someothertable to thetable
Run Code Online (Sandbox Code Playgroud)

执行此操作后,当A执行B.thetable上的选择时,我们会收到错误.

ORA-00942: table or view does not exist
Run Code Online (Sandbox Code Playgroud)

是否有可能在执行drop + rename操作后,授权也会丢失?

我们是否必须再次分配权限?

更新

有些人没有补助金.

UPDATE2

将数据插入'thetable'的每日进程每N次插入执行一次提交,因此无法执行任何回滚.这就是我们使用2张桌子的原因.

提前致谢

oracle rename grant ora-00942 sql-drop

3
推荐指数
1
解决办法
1万
查看次数

查询Oracle数据库列表时出现的问题:"表或视图不存在"

在我的程序中,我需要访问Oracle 11g数据库的模式.我一直试图使用这样的查询获取表的列表:

SELECT t.TABLE_NAME, t.OWNER
FROM ALL_TABLES t
WHERE t.DROPPED = 'NO'
ORDER BY t.TABLE_NAME
Run Code Online (Sandbox Code Playgroud)

查询工作,我得到一个表列表.不幸的是,当使用返回的表名查询某些表时,我收到以下错误:

ORA-00942:表或视图不存在

什么可能导致此错误?它可以归结为特权吗?

在一个单独的问题中,我也有点困惑,是否可能有两个或同名的表,以及如何区分这两个.我需要注意这个吗?

我使用.NET中的Oracle.DataAccess提供程序连接到数据库.它是一个远程服务器,不幸的是我对它的访问非常有限.

.net oracle schema ora-00942 oracle11g

3
推荐指数
1
解决办法
840
查看次数

ORA-00942 SQLException with Hibernate (Unable to find a table)

我正在尝试运行一个简单的 Hibernate 应用程序,但出现此错误:

org.hibernate.exception.SQLGrammarException: could not execute query
java.sql.SQLException: ORA-00942: table or view does not exist
Run Code Online (Sandbox Code Playgroud)

我的实体:

package beans;

import javax.persistence.*;

@Entity
public class Idt {
    @Id
    private int id;
    @Column(name="name")
    private String name;

    public Idt(){
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}
Run Code Online (Sandbox Code Playgroud)

我的表在 Hr 用户中称为 IDT。

CREATE TABLE "HR"."IDT"
  (
    "ID"   NUMBER …
Run Code Online (Sandbox Code Playgroud)

java oracle mapping hibernate ora-00942

3
推荐指数
1
解决办法
3万
查看次数

Oracle 9i:Synonymed表不存在?

我创建了一个包,其中包含我计划从单独的应用程序调用的存储过程.存储过程将返回架构中所有视图和表的排序列表.为此,它对DBA_TABLES和DBA_VIEWS同义词执行简单选择,如下所示:

CREATE OR REPLACE
PACKAGE BODY TITAN_ENTITY AS

  PROCEDURE GETSCHEMAOBJECTS (RESULTS IN OUT T_CURSOR)
  IS
    V_CURSOR T_CURSOR;
  BEGIN
    OPEN V_CURSOR FOR
       SELECT 'T' OBJECTTYPE, TABLE_NAME OBJECTNAME 
          FROM DBA_TABLES 
          WHERE OWNER = 'SONAR5'
       UNION ALL
       SELECT 'V' OBJECTTYPE, VIEW_NAME OBJECTNAME 
         FROM DBA_VIEWS 
         WHERE OWNER = 'SONAR5'
       ORDER BY OBJECTNAME;
    RESULTS := V_CURSOR;      

  END GETSCHEMAOBJECTS;

END TITAN_ENTITY;
Run Code Online (Sandbox Code Playgroud)

我已经确认有问题的同义词存在,并且是公开的:

CREATE PUBLIC SYNONYM "DBA_TABLES" FOR "SYS"."DBA_TABLES"
CREATE PUBLIC SYNONYM "DBA_VIEWS" FOR "SYS"."DBA_VIEWS"
Run Code Online (Sandbox Code Playgroud)

我的理解是,因为它们是公开的,所以我不需要任何进一步的权限来获取它们.如果这种理解不正确,我希望有人能够理解这个概念并指出我更准确的数据.

现在这是我的问题:我可以在Oracle SQL Developer中打开一个工作表,并从这些表中选择就好了.我得到了有意义的数据(567行,事实上).但是当我尝试执行存储过程时,Oracle会抱怨编译错误,如下所示:

Error(9,8): PL/SQL: SQL Statement ignored
Error(10,16): PL/SQL: ORA-00942: …
Run Code Online (Sandbox Code Playgroud)

oracle package synonym ora-00942

2
推荐指数
1
解决办法
6681
查看次数

Oracle WITH CLAUSE无法正常工作?

我正在尝试在查询中使用WITH子句,但一直收到消息

ORA-00942:表或视图不存在

我试图创建一个简单的查询,仅作为此处的示例:

WITH
test AS

SELECT COUNT(Customer_ID)FROM Customer

SELECT * FROM test;

但是即使这样也行不通,它只是给出以下信息:

SELECT * FROM test; 2 3 4 5 6 SQL>
SELECT * FROM test
*第1行出现错误:
ORA-00942:表或视图不存在

我以前从未使用过WITH子句,这里缺少一些简单的东西吗?我正在使用Oracle数据库10g企业版10.2.0.1.0版-产品请提供任何建议。谢谢。

sql oracle ora-00942 with-clause

2
推荐指数
1
解决办法
8239
查看次数

关于pl/sql存储程序文本的问题

我使用TOAD进行PL/SQL开发.在TOAD中,当我输入程序名称并按f4时,我可以看到此程序的源代码.我认为TOAD从v $ sqltext视图中获取源代码.为了证实我的想法,我写了一个查询:

select * from v$sqltext
Run Code Online (Sandbox Code Playgroud)

但是当我执行上层查询时,Oracle给出了一个错误:

ORA-00942:表或视图不存在00942. 00000 - "表或视图不存在"*原因:
*操作:行错误:29列:15

所以我认为TOAD从其他地方而不是v $ sqltext视图获取程序的源代码.谁能告诉我这件事?十分感谢.

oracle toad plsql stored-procedures ora-00942

2
推荐指数
1
解决办法
8152
查看次数

我正在使用Django与远程Oracle数据库,并获得"表不存在"错误

每当我在远程Oracle数据库的表上使用Django ORM执行简单查询时,我都会收到此错误:

>>> from apps.dl.models import Article
>>> Article.objects.using('dl').all()
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/var/www/acm.local/server-env/lib/python2.6/site-packages/django/db/models/query.py", line 68, in __repr__
    data = list(self[:REPR_OUTPUT_SIZE + 1])
  File "/var/www/acm.local/server-env/lib/python2.6/site-packages/django/db/models/query.py", line 83, in __len__
    self._result_cache.extend(list(self._iter))
  File "/var/www/acm.local/server-env/lib/python2.6/site-packages/django/db/models/query.py", line 269, in iterator
    for row in compiler.results_iter():
  File "/var/www/acm.local/server-env/lib/python2.6/site-packages/django/db/models/sql/compiler.py", line 672, in results_iter
    for rows in self.execute_sql(MULTI):
  File "/var/www/acm.local/server-env/lib/python2.6/site-packages/django/db/models/sql/compiler.py", line 727, in execute_sql
    cursor.execute(sql, params)
  File "/var/www/acm.local/server-env/lib/python2.6/site-packages/django/db/backends/util.py", line 15, in execute
    return self.cursor.execute(sql, params)
  File "/var/www/acm.local/server-env/lib/python2.6/site-packages/django/db/backends/oracle/base.py", line 507, in …
Run Code Online (Sandbox Code Playgroud)

oracle django multiple-databases ora-00942

2
推荐指数
1
解决办法
1715
查看次数

在PL/SQL脚本上使用DB链接会引发"找不到表"错误

虽然试图创建一个使用PL/SQL我发现自己坚持了以下问题的报告,我创建了访问使用DB连接远程DB 2代表的SQL查询,单独运行查询本身返回预期的结果,但是当我运行相同的查询并将结果放入我得到的游标中

PL/SQL: ORA-00942: table or view does not exist
Run Code Online (Sandbox Code Playgroud)

错误.

我不确定它是否与我为每个表使用的别名有关,或者select语句可能试图选择本地表,我不知道,你有什么建议吗?

PL/SQL:

DECLARE
   CURSOR t_bug_details IS (SELECT h.*
  FROM table1@REMOTEDB h,
       table2@REMOTEDB rml
  WHERE h.product_id   IN (123)
  AND h.category       IN ('category')
  AND h.status          < 4
  AND h.status NOT     IN (1,2,3)
  AND h.release_status IN (upper('P'))
  --AND h.programmer     IN (upper('MRFOO'))
  AND h.some_id      = rml.some_id
  and rownum <=400);

REPORT_DAY VARCHAR2(40);
mail_html clob;
mail_bod clob;

BEGIN

FOR v_some_details in t_bug_details
LOOP
REPORT_DAY := TO_CHAR(SYSDATE,'DD-MON-YYYY HH24:MI:SS');
DBMS_OUTPUT.PUT_LINE(REPORT_DAY || '|' ||
                     v_some_details.reptnom || '|' || …
Run Code Online (Sandbox Code Playgroud)

oracle plsql ora-00942 oracle-apex

2
推荐指数
1
解决办法
4375
查看次数

Oracle表SELECT权限问题

我的应用程序在Oracle上有几个表,其中用户XYZ是架构所有者.使用XYZ创建表.我想让ABCUSER在这些表上拥有CRUD权限.我已经通过访问权限GRANT ALL ON TABLEABC to ABCUSER并且授予成功.

但是当这个用户(ABCUSER)尝试查询数据库(从TABLEABC中选择*)时,它似乎不起作用.我收到错误消息

ORA-00942: table or view does not exist
00942. 00000 -  "table or view does not exist"
*Cause:    
*Action:
Error at Line: 1 Column: 14
Run Code Online (Sandbox Code Playgroud)

你能告诉我我错过了什么吗?

sql oracle ora-00942

2
推荐指数
1
解决办法
1234
查看次数

“ORA-00942: 表或视图不存在”仅在存储过程中运行时

对于 PL-SQL 人员来说,这应该很容易选择。在将此问题标记为重复之前,请确保虽然错误消息可能很常见,但潜在问题与上一个问题相同。如果是这样,请提供指向已解决的确切逻辑重复问题的链接。一世

当我登录到我的模式时,我执行以下 PL-SQL 代码:

DECLARE
  v_rpt_per_key NUMBER := 0;
BEGIN

  SELECT MAX(rpt_per_key)
  INTO v_rpt_per_key
  FROM rxfinods_sta.hd_invc_ln_item_dtl_stat;

  dbms_output.PUT_LINE('v_RPT_PER_KEY=' || v_rpt_per_key);

END;
/
Run Code Online (Sandbox Code Playgroud)

查询成功执行,最大值RPT_PER_KEY写入 Toad 中的输出窗口。

但是,当我在一个过程中执行基本相同的代码时。

CREATE OR REPLACE PROCEDURE hd_purge_test
IS
  v_rpt_per_key NUMBER := 0;
  BEGIN

    SELECT MAX(stat.rpt_per_key)
    INTO v_rpt_per_key
    FROM rxfinods_sta.hd_invc_ln_item_dtl_stat stat;
    --HD_INVC_LN_ITEM_DTL_STAT        

    dbms_output.PUT_LINE('v_RPT_PER_KEY=' || v_rpt_per_key);

    EXCEPTION
    WHEN NO_DATA_FOUND THEN
      NULL;
    WHEN OTHERS THEN
    -- Consider logging the error and then re-raise
      RAISE;
  END hd_purge_test;
Run Code Online (Sandbox Code Playgroud)

我收到表不存在的错误。

[Warning] ORA-24344: success with compilation error
14/21   PL/SQL: ORA-00942: …
Run Code Online (Sandbox Code Playgroud)

oracle plsql stored-procedures ora-00942

2
推荐指数
1
解决办法
2万
查看次数