【问题标题】:oracle procedure ORA-00942oracle 程序 ORA-00942
【发布时间】:2018-07-22 15:56:00
【问题描述】:

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

无法获取架构对象: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;

【问题讨论】:

  • 程序是否归 CRMAS_ODS_RAW_DATA 用户所有?

标签: oracle procedures


【解决方案1】:

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

MERGE 在 SQL(但不在 PL/SQL)中工作的事实听起来完全一样。

【讨论】:

    猜你喜欢
    • 2016-08-21
    • 1970-01-01
    • 2011-11-04
    • 1970-01-01
    • 1970-01-01
    • 2020-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多