我正在尝试执行我创建的合并过程,但是遇到以下错误:
无法获取架构对象: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;
答案 0 :(得分:0)
应该直接向过程所有者授予CRMAS_ODS_RAW_DATA.ACCOUNT
表的特权,而不要通过角色。
MERGE
在SQL中有效(但在PL / SQL中无效)的事实听起来确实如此。