oracle程序ORA-00942

时间:2018-07-22 15:56:01

标签: oracle procedures

我正在尝试执行我创建的合并过程,但是遇到以下错误:

  

无法获取架构对象:java.sql.SQLSyntaxErrorException:ORA-00942:表或视图不存在

我在论坛上阅读了有关该错误的信息,并确保我采用的是正确的方案。 此外,合并查询可以正常工作。

有什么建议吗?

过程

create or replace procedure insert_or_update_Account
IS
BEGIN
MERGE INTO  CRMAS_ODS_RAW_DATA.ACCOUNT T
      USING CRMAS_ODS_RAW_DATA.ACCOUNT_TMP S
      ON ( T.TCCID=S.TCCID)
    WHEN MATCHED THEN
    UPDATE 
    SET 
      T.BATCH_ID              =S.BATCH_ID                  ,
  T.SOURCE_SYSTEM       =S.SOURCE_SYSTEM       ,
  T.UPDATE_DATE         =S.UPDATE_DATE         ,
  T.MLI_LOCALID         =S.MLI_LOCALID          
    WHERE 
  T.BATCH_ID                  <>S.BATCH_ID              OR
  T.SOURCE_SYSTEM       <>S.SOURCE_SYSTEM       OR
  T.MLI_LOCALID         <>S.MLI_LOCALID         
  WHEN NOT MATCHED THEN
    INSERT  (T.BATCH_ID,T.SOURCE_SYSTEM,T.UPDATE_DATE,T.TCCID,T.MLI_LOCALID,T.MLI_LOCALSYSTEMNAME)
    VALUES  (S.BATCH_ID,S.SOURCE_SYSTEM,S.UPDATE_DATE,S.TCCID,S.MLI_LOCALID,S.MLI_LOCALSYSTEMNAME);
    commit;
END insert_or_update_Account;

1 个答案:

答案 0 :(得分:0)

应该直接向过程所有者授予CRMAS_ODS_RAW_DATA.ACCOUNT表的特权,而不要通过角色。

MERGE在SQL中有效(但在PL / SQL中无效)的事实听起来确实如此。