Estoy usando Spring JDBC y Oracle SQL.instrucción de combinación Oracle SQL con solo 1 tabla y un grupo de valores
usando la clase SpringJDBC MapSqlParameterSource, he mapeado los datos que deseo fusionar.
Ahora quiero usar la declaración de fusión para actualizar/insertar la tabla de la base de datos. Todo lo que tengo es una tabla y un conjunto de parámetros en los que me quiero fusionar.
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);
¿Tengo que crear algún modo una tabla temporal para el uso de palabra clave o hay otra manera? ¿Cómo voy a fusionarme así?
también hay dos claves únicas pr.id y pr.code. A veces, el parámetro : id es nulo, cuando esto sucede, quiero llegar a la declaración de actualización basada en la coincidencia de pr.code con: código. ¿Va a seguir trabajando si mi actualización contiene la línea:
update set pr.code = :code,
¿Qué problema está enfrentando? – Teja
La palabra clave: "using (! Los parámetros deberían ir aquí de alguna manera?)". ¿Tengo que crear una tabla temporal de alguna manera y poner eso después de usar o hay alguna otra manera de obtener mis valores en esta oración de fusión. Y si no hay otra manera, ¿cómo hago una tabla temporal? – ollo
No, no necesita ninguna tabla temporal ... Consulte este enlace para ver la sintaxis de combinación.http: //docs.oracle.com/cd/B19306_01/server.102/b14200/statements_9016.htm – Teja