【问题标题】:Query running but, view not getting created查询正在运行,但未创建视图
【发布时间】:2014-07-15 12:43:54
【问题描述】:

我是 Oracle 的新手。我能够执行:

SELECT X, Y, Z. 
FROM SCH2.TAB_A A JOIN SCH2.TAB_B B ON A.CODE = B.CODE
LEFT OUTER JOIN SCH2.MY_V MV ON MV.CODE = B.CODE
WHERE  MV.STATUS = 'A';

但是当我试图把这个 SELECT 语句放在一个视图中时,我得到了错误:

ORA-00942:表或视图不存在

CREATE OR REPLACE VIEW SCH1.NEW_V AS
SELECT X, Y, Z. 
FROM SCH2.TAB_A A JOIN SCH2.TAB_B B ON A.CODE = B.CODE
LEFT OUTER JOIN SCH2.MY_V MV ON MV.CODE = B.CODE
WHERE  MV.STATUS = 'A';
/

试过谷歌,

SQL Error: ORA-00942 table or view does not exist

http://www.techonthenet.com/oracle/errors/ora00942.php

但仍然无法解决。如果我能够运行查询,为什么我在尝试将其放入视图时会出错。

【问题讨论】:

    标签: oracle view grant


    【解决方案1】:

    这有帮助

    Oracle Create View issue

    GRANT SELECT ON SCH2.TAB_A TO SCH1;
    
    GRANT SELECT ON SCH2.TAB_B TO SCH1
    
    GRANT SELECT ON SCH2.MY_V TO SCH1;
    

    【讨论】:

      【解决方案2】:

      检查您是否具有直接访问权限,而不是通过角色:

      SQL> create user sch1 identified by sch1;
      
      SQL> create role scott_acc;
      
      SQL> grant select on scott.emp to scott_acc;
      
      SQL> grant scott_acc to sch1;
      
      SQL> create or replace view sch1.v_1
        2  as select * from scott.emp;
      as select * from scott.emp
                             *
      error in line 2:
      ORA-00942: table or view does npt exist
      
      
      SQL> grant select on scott.emp to sch1;
      
      
      SQL> create or replace view sch1.v_1
        2  as select * from scott.emp;
      
      View created.
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-12
        • 1970-01-01
        • 1970-01-01
        • 2020-07-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多