在Postgres中使用Rowid Oracle Conversion进行合并

时间:2019-01-04 15:22:57

标签: oracle postgresql

可以帮助我将下面的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,即使使用CTID,也与使用Alias加入的Postgres esp不兼容,

请告知

0 个答案:

没有答案