我正在使用Spring JDBC和Oracle SQL。只有一個表和一堆值的Oracle SQL合併語句
使用SpringJDBC類MapSqlParameterSource,我映射了我想要合併的數據。
現在我想使用合併語句來更新/插入數據庫表。我只有一張桌子和一堆我想融入其中的參數。
merge into proj.person_registry pr
using (! parameters should go here somehow?)
on (pr.id = :id or pr.code = :code)
when matched then
update set pr.code = :code,
pr.name = :name,
pr.firstname = :firstname,
pr.cl_gender = :cl_gender,
pr.cl_status = :cl_status,
pr.aadress = :aadress,
pr.aadress_date = :aadress_date
when not matched then
insert values (:code, :name, :firstname, :cl_gender, :cl_status, ;aadress, :aadress_date);
我一定要使用關鍵字在某種程度上創造了臨時表或有另一種方式?我將如何去合併這樣?
還有兩個唯一的鍵pr.id和pr.code。有時參數:ID是null,當發生這種情況時,我想要達到基於pr.code獲取匹配的更新語句:代碼。如果我的更新包含該生產線將它仍然工作:
update set pr.code = :code,
你面臨什麼問題? – Teja 2012-04-13 13:54:28
關鍵字:「使用(!參數應該在這裏以某種方式?)」。我不得不以某種方式創建一個臨時表,並在使用後放置該表,或者有其他方式讓我的值進入這個合併句子。如果沒有其他方法,我如何製作臨時表? – ollo 2012-04-13 14:01:44
不,你不需要任何臨時表......檢查這個鏈接是否合併syntax.http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_9016.htm – Teja 2012-04-13 14:03:58