Tôi đang sử dụng SQL JDBC và SQL oracle.Tuyên bố hợp nhất Oracle SQL với chỉ 1 bảng và một loạt các giá trị
sử dụng lớp SpringJDBC MapSqlParameterSource, tôi đã ánh xạ dữ liệu tôi muốn hợp nhất.
Bây giờ tôi muốn sử dụng câu lệnh hợp nhất để cập nhật/chèn bảng cơ sở dữ liệu. Tất cả tôi có là một bảng và một loạt các thông số tôi muốn hợp nhất vào nó.
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);
Do i phải bằng cách nào đó tạo ra một bảng tạm thời cho sử dụng từ khóa hoặc là có cách khác? làm thế nào tôi sẽ đi về sáp nhập như thế này?
cũng có hai khóa duy nhất là pr.id và pr.code. Đôi khi tham số : id là null, khi điều này xảy ra, tôi muốn tiếp cận câu lệnh cập nhật dựa trên pr.code được khớp với: mã. Sẽ nó vẫn có tác dụng nếu bản cập nhật của tôi chứa dòng:
update set pr.code = :code,
Bạn đang gặp phải vấn đề gì? – Teja
Từ khóa: "sử dụng (! Thông số nên đi ở đây bằng cách nào đó?)". Tôi có phải tạo một bảng tạm thời bằng cách nào đó và đặt nó sau khi sử dụng hoặc là có một số cách khác để có được giá trị của tôi vào câu kết hợp này. Và nếu không có cách nào khác, làm thế nào để tôi thực hiện một bảng tạm thời? – ollo
Bạn không cần bất kỳ bảng tạm thời nào ... Hãy kiểm tra liên kết này để biết cú pháp hợp nhất.http: //docs.oracle.com/cd/B19306_01/server.102/b14200/statements_9016.htm – Teja