MERGE с использованием Rowid Oracle Conversion в Postgres - PullRequest
0 голосов
/ 04 января 2019

Может ли кто-нибудь помочь мне лучше всего преобразовать приведенный ниже код Oracle в Postgres

MERGE INTO INCLUSION_EXCLUSION_ALL A
USING (SELECT DISTINCT IEALL.rowid rid, IE.BLACKOUT_DURATION, ie.BLACKOUT_CATEGORY
        FROM INCLUSION_EXCLUSION_ALL IEALL, INCLUSION_EXCLUSION_RULES IE
       WHERE IE.PRI_PROMOTION_ID = IEALL.PRI_PROMOTION_ID 
         AND IE.PRI_OFFER_ID = IEALL.PRI_OFFER_ID
         AND IE.SEC_PROMOTION_ID = IEALL.SEC_PROMOTION_ID 
         AND IE.SEC_OFFER_ID = IEALL.SEC_OFFER_ID
         AND IE.BLACKOUT_DURATION > 0
         AND (IEALL.BLACKOUT_DURATION <> IE.BLACKOUT_DURATION OR IEALL.BLACKOUT_CATEGORY <> IE.BLACKOUT_CATEGORY)
         --AND IE.INCL_EXCL_IND <> 'I'
         AND IE.SECONDARY_TYPE = 'B') B
     ON (A.rowid = B.rid)
   WHEN MATCHED THEN UPDATE SET A.BLACKOUT_DURATION = B.BLACKOUT_DURATION, A.BLACKOUT_CATEGORY = B.BLACKOUT_CATEGORY;

Спасибо, Я хочу знать разные способы, как мы можем это сделать, так как здесь задействованы rowid и они не совместимы с Postgres esp при присоединении с использованием псевдонима даже при использовании CTID,

Пожалуйста, сообщите

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...