创建过程时ORACLE11g,表或视图不存在

时间:2014-04-24 07:35:07

标签: sql oracle oracle11g procedure

db中有两个模式,我创建一个物化视图 - 'MV1'并成功授予它,在其他模式中从中选择是正常的。

GRANT select ON schemaA.MV_CA_REVENU_MS_GEO TO read;
/
GRANT select ON schemaA.MV_CA_REVENU_MS_GEO TO write;
/
GRANT update ON schemaA.MV_CA_REVENU_MS_GEO TO write;
/

但是在编译过程时,会出现“MV1”的错误消息“表或视图不存在”。程序代码是:

create or replace 
PROCEDURE                     SP_NAME (args ... ) is
  .
  .
begin
    INSERT INTO tableName(
        .
        .
      ) SELECT ...
          FROM (SELECT ...
                  FROM MV1  -- **schemaA.MV1 doesn't work either** 
                 WHERE 
end SP_NAME;
/
GRANT EXECUTE ON schemaB.SP_NAME TO read;
GRANT DEBUG ON schemaB.SP_NAME TO read;
GRANT EXECUTE ON schemaB.SP_NAME TO write;
GRANT DEBUG ON schemaB.SP_NAME TO write;
/
CREATE or replace PUBLIC SYNONYM SP_NAME FOR schemaB.SP_NAME;
/

我尝试在MV1前添加schemaA,它不起作用。我应该检查一下其他步骤吗?

1 个答案:

答案 0 :(得分:0)

是“读”和“写”架构名称还是角色名称?在编译存储过程,函数和包时,Oracle无法通过角色间接授予的权限