Spring JDBC と Oracle SQL を使用しています。
SpringJDBC クラス MapSqlParameterSource を使用して、マージしたいデータをマッピングしました。
ここで、merge ステートメントを使用してデータベース テーブルを更新/挿入したいと考えています。私が持っているのは、1 つのテーブルと、それにマージしたい一連のパラメーターだけです。
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);
using キーワードの一時テーブルを何とか作成する必要がありますか、それとも別の方法がありますか? このようにマージするにはどうすればよいですか?
また、pr.id と pr.code という 2 つの一意のキーがあります。パラメーター:idがnullの場合があります。これが発生した場合、pr.code が :code に一致することに基づいて update ステートメントに到達したいと考えています。アップデートに次の行が含まれていても機能しますか?
update set pr.code = :code,