一般社団法人 全国個人事業主支援協会

COLUMN コラム

  • ORACLEのUPDATEで詰まった点

フリーランスエンジニアの岩井です。

 

今回、ORACLEのUPDATE文の特徴的な点を紹介します。

 

というのも、SQLで環境の差が一番出てくるのがUPDATE文。他のDBからSQLを持ってくるだけではうまく動作しないことが多いです。

 

UPDATE の FROM 句の書き方が違う

Oracleは JOIN なしで UPDATE する(サブクエリを使用)
Oracleでは、他のテーブルのデータを使って UPDATE する場合、JOIN を使わずにサブクエリを用いるのが基本です。

他の環境からSQLをそのまま持ってきても動かすことができません。

 

WITH 句の書き方が違う

一時的な表を使用する際によく使われるWITH句。

WITH TMP_TBLNAME AS (…)

SELECT …

上記の書き方、他のDBと違い、UPDATEの時は同様にWITH句が使えないです。

 

MERGE INTO を使った UPDATE(UPSERT)

Oracleは UPDATE + INSERT を MERGE INTO で実行

Oracleでは、UPDATE と INSERT の両方を MERGE INTO で実行できる(UPSERT)。

 

以上、細かい違いですが、どうみても動くはずなのに動かない場合、環境の違いという可能性があることを頭に入れておきましょう。

 

この記事をシェアする

  • Twitterでシェア
  • Facebookでシェア
  • LINEでシェア