資料庫名稱:oracle 資料庫版本:11g 內容/問題描述: 各位好,小弟目前是寫JAVA的工程師。 最近遇到的問題是,如果資料庫有資料就UPDATE,否則就INSERT。 在MySQL上可以用ON DUPLICATE,但Oracle無這個語法。 後來有查詢到MERGE INTO的語法。 我的語法大概是如下 MERGE INTO TABLE_A TA USING ( SELECT '值A' AS X,'值B' AS Y FROM DUAL) TB ON(TA.X=TB.X) WHEN MATCHED UPDEATE... WHEN NOT MATCHED THEN INSERT... 但公司的DBA說MERGE INTO是資料倉儲(?)用,不是給我這樣用的。 所以現在的解法是先SELECT回JAVA後,再判斷要更新還是插入。 但這樣不就要2次IO嗎?如果我現在要處理10筆資料,不就要10*2=20次IO? 想請問是否有其他寫法呢?(有另外查到用EXCEPTION的方式,但preparestatment似乎 不能加上分號(;)?這我會再試試看。) 謝謝~~