스프링 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 문에 도달하려고합니다. 내 업데이트 라인이 포함 된 경우 여전히 작동합니다
update set pr.code = :code,
직면 한 문제는 무엇입니까? – Teja
키워드 : "using (! parameters는 어쨌든 여기에 있어야합니까?"). 어떻게 든 임시 테이블을 만들고이를 사용하거나이 병합 문장에 내 값을 가져 오는 다른 방법이 있어야합니다. 그리고 다른 방법이 없다면 어떻게 임시 테이블을 만드나요? – ollo
아니요 임시 테이블이 필요하지 않습니다 ...이 링크에서 병합 구문을 확인하십시오 .http : //docs.oracle.com/cd/B19306_01/server.102/b14200/statements_9016.htm – Teja