Bir tabloya kayıt ekleyen ve bu gibi benzersiz bir kısıtlama hatasıyla kurtarmanız gereken bir Oracle PL/SQL bloğum var mı:PL/SQL bloğunda benzersiz bir kısıtlama hatası nasıl yakalanır?
begin
insert into some_table ('some', 'values');
exception
when ...
update some_table set value = 'values' where key = 'some';
end;
Yakalamak için bir şey için elipsin değiştirilmesi mümkün mü benzersiz bir kısıtlama hatası mı?
İstisnaları kullanmak için bu durum biraz yavaşlar, çünkü istisnaları kaldırmak oldukça fazla zaman alır. Birleştirmeyi dene. – tuinstoel
Anlaşıldı. Ancak, bu örneğin birçok olası kullanım örneğinden sadece biri olduğunu unutmayın. Soru gerçekten "benzersiz kısıtlama hatası için id nedir?" Bu yüzden William'ın cevabını seçtim ama Ricardo'yu kabul ettim. –
PL/SQL kodundaki istisnalar, yönetilen veya üst düzey dillerdeki (C#, Java) kadar pahalı değildir. Bir DB uygulamasında gerçek "yavaşlık" db erişiminden kaynaklanır, bu bağlamda PL/SQL istisnası maliyeti önemsizdir –