Tôi biết không có câu lệnh Update-Join trong PL/SQL. Tôi đã từng viết T-SQL.Cập nhật PL/SQL Tham gia?
Tôi có hai bảng.
Alex_Table1
---------------------------
PK VAL
---------------------------
1 Value1
2 Value2
3 Value3
Alex_Table2
---------------------------
PK VAL
---------------------------
1 Value1_2
3 Value3_2
Tôi muốn cập nhật VAL từ Alex_Table2 thành Alex_Table1 tham gia bằng cột PK.
Trong T-SQL, đó là đơn giản
update t1 set t1.VAL = t2.VAL
from
Alex_Table1 t1
inner join Alex_Table2 t2 on t1.PK = t2.PK;
Và kết quả là những gì tôi mong đợi
Alex_Table1
---------------------------
PK VAL
---------------------------
1 Value1_2
2 Value2
3 Value3_2
Câu hỏi của tôi là làm thế nào để làm trong PL/SQL? Cảm ơn!
Cập nhật
Cảm ơn Cybernate và ypercube đã cho tôi hai giải pháp hữu ích. Cả hai đều làm việc. Tuy nhiên, tôi muốn cho bạn biết hiệu suất giữa hai phát biểu này.
Bảng thực tế của tôi chứa 80.000 bản ghi và chỉ cần 3.000 cập nhật.
MERGE
tuyên bố mất 0,533 giây.
UPDATE EXISTS
tuyên bố mất hơn 3 phút (tôi không đo thời gian thực tế. Tôi chấm dứt quá trình của tôi sau 3 phút.)
WOW! <- đây là biểu hiện duy nhất của tôi! Cảm ơn! Điều này rất đơn giản và trực tiếp! Cảm ơn! –
Tôi có một câu hỏi khác. Trong trường hợp hiện tại của tôi, câu lệnh cập nhật chỉ liên quan đến hai bảng. Tôi có thể sử dụng câu lệnh MERGE nếu câu lệnh cập nhật liên quan đến nhiều hơn hai bảng không? –
Bạn có thể truy vấn hợp lệ thay cho Alex_Table2 trong truy vấn ở trên. Kiểm tra liên kết này để biết thêm thông tin: http://psoug.org/reference/merge.html – Chandu