代码之家  ›  专栏  ›  技术社区  ›  Tom

Oracle:表或视图不存在

  •  0
  • Tom  · 技术社区  · 6 年前

    我正在尝试使用toad在oracle中创建一个视图,但是获取错误表或视图不存在。

    但当我自己运行查询时,它会成功执行。可能的原因是什么?

    CREATE OR REPLACE FORCE VIEW MGR.V_INDEX_PERFORMANCE
    (
              INDEX_ID ,
              INDEX_NAME,
              MTD,
              YTD 
    )
       BEQUEATH DEFINER
    AS
    
    SELECT    "INDEX_ID" ,
              "INDEX_NAME",
              "MTD",
              "YTD" from MIS_PERMAL.MV_INDEX_PERFORMANCE 
       where INDEX_ID in (1045, 2005) AND FIELD_CODE = 'TR' AND CCY_CODE IN ('D', 'USD') order by INDEX_ID, price_date desc;
    
    0 回复  |  直到 6 年前
        1
  •  3
  •   APC    6 年前

    这是权限,或者更确切地说是授予它们的方式。mgr用户有权查询来自角色的基础表。Oracle不允许我们使用角色的权限生成视图或过程。这就是安全模型的工作方式。

    解决方案是要求表所有者mis_permal(或超级用户,如dba)直接向mgr授予mv_index_performance的select权限。