oracle(11g)のjoinを使用してテーブル値を更新したい 同じテーブルに対してjoinパラメータとしてrowidを使用しましたが、rowidを結合パラメータとして使用しても安全ですか? 以下は、私がupdationのために使用しているクエリです。ローカルデータベースで同じことをテストしましたが、うまく動作していますが、Rididの不一致があるシナリオがありますか?あなただけのあなたが自分自身に行を結ぶことでしょうという意味では、「安全」によるので、もし更新Oracleのrowidに基づく
MERGE
INTO GEOTAG g
USING (SELECT g2.rowid AS rid, um.RETAILER_CODE
FROM GEOTAG g2
JOIN RETAILER_AD_DSE b
ON b.CODE = g2.RETAILER_CODE
JOIN USER_HIERARCHY_MASTER um
ON um.RETAILER_PRIMARY_ETOPUP = b.RETAILER_PRIMARY_ETOPUP) src
ON (g.rowid = src.rid)
WHEN MATCHED THEN UPDATE
SET g.RETAILER_CODE = src.RETAILER_CODE;
このSQLは意味論的に正しいですか? 'geotag.retailer_code = retailer_ad_dse.code'で行を選択し、同じ列を更新しますか? –
ありがとうフランク私はクエリを更新しました。 –