Nói rằng tôi có một khối Oracle PL/SQL chèn một bản ghi vào một bảng và cần phải phục hồi từ một lỗi khó khăn độc đáo, như thế này:Làm thế nào để nắm bắt một lỗi ràng buộc duy nhất trong một khối PL/SQL?
begin
insert into some_table ('some', 'values');
exception
when ...
update some_table set value = 'values' where key = 'some';
end;
Có thể thay thế ellipsis cho một cái gì đó để bắt một lỗi ràng buộc duy nhất?
Để sử dụng ngoại lệ, cách này hơi chậm vì việc tăng ngoại lệ mất khá nhiều thời gian. Thử hợp nhất. – tuinstoel
Đồng ý. Nhưng hãy nhớ rằng ví dụ này chỉ là một trong nhiều trường hợp sử dụng có thể. Câu hỏi thực sự là "id cho lỗi ràng buộc duy nhất là gì?". Đó là lý do tại sao tôi đã bình chọn câu trả lời của William nhưng đã chấp nhận Ricardo. –
Trường hợp ngoại lệ trong mã PL/SQL không đắt bằng ngôn ngữ cấp quản lý hoặc cấp cao (C#, Java). Trong một ứng dụng DB, "chậm chạp" thực sự là do truy cập db, một chi phí ngoại lệ PL/SQL là không đáng kể trong ngữ cảnh này –