台灣最大程式設計社群網站
線上人數
1945
 
會員總數:246038
討論主題:189625
歡迎您免費加入會員
討論區列表 >> Oracle >> 有資料就更新,無資料就新增
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
有資料就更新,無資料就新增
價值 : 20 QP  點閱數:3079 回應數:4
樓主

小安
門外漢
0 29
601 38
發送站內信

想請問一下,ORACLE中,如有資料就更新,無資料就新增,不能如下的寫法嗎?
SELECT CASE COUNT(*)
WHEN 0 THEN INSERT INTO A(A1,A2) VALUES ('AAA','1')
WHEN 1 THEN UPDATE A SET A2='AAA'
END FROM CMTBAR WHERE BARCODE_ID='AAA';

本篇文章發表於2014-09-29 15:36
1樓
你好
請參考:http://docs.oracle.com/cd/B14117_01/appdev.101/b10807/13_elems045.htm#i36066

如要達到你的目的,請改寫法,利用存到變數判斷是否執行Insert or update

以上!
本篇文章回覆於2014-09-29 16:17
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

小安
檢舉此回應
我語法是寫在程式,由c#這邊丟給sql
只是想說可寫一段語法,直接判斷說,有更新,無新增
因在mssql可以由以下達成,想說oracle因該會有類似的
本篇文章回覆於2014-09-29 16:42
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
最有價值解答

麥兜照日光
捐贈 VP 給 麥兜照日光 檢舉此回應
你好
提供範例參考看看for Oracle SQL ~(使用樓主提供的table,field)


以上
本篇文章回覆於2014-09-30 13:07
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

salingers
檢舉此回應
可以參考MERGE語法
http://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_9016.htm
本篇文章回覆於2014-10-03 23:02
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.