Anonim

Database mavens, ilişkisel veritabanı yönetim sistemi (DBMS) dünyasında Oracle adını bir güç merkezi olarak tanıyacaktır. Oracle, onlarca yıldır çok güçlü DBMS çözümleri üretti ve bu alanda lider olmaya devam ediyor. Birçok veritabanı ürününün son kullanıcısı, önceden tasarlanmış bir çözüm kullandıklarında karıştırılabilir veya şaşırtabilir ve bir hata mesajı oluşturur. Oracle tarafından üretilen yaygın bir hata mesajı ORA-06512 hatasıdır.

Ayrıca bkz. Makalemiz ora-00942 Hatasını Düzeltme

Oracle, kırk yıldan beri çeşitli şekillerde olan bir veritabanı yönetim sistemidir. Başlangıçta, Oracle'ın orijinal çalışanlarından birinin adını taşıyan SCOTT şeması adı verilen bir şey kullandı. Oracle’a ilk defa Scott’un kedisinin ismini yazan 'scott' kullanıcı adı ve t tiger ’şifresiyle bile giriş yaptınız. Artık Oracle'ı ne için kullandığınıza bağlı olarak kullanılan birkaç şema var.

Oracle hakkında daha fazla bilgi edinmek istiyorsanız, bu sayfa çok kullanışlıdır.

ORA-06512 hatalarını düzeltme

Oracle'da, ORA-06512 hatası, bir şeyin nereye gittiğini bildiren genel bir istisna hatasıdır. Oracle tarafından üretilen en az hatalardan biri, yalnızca bir sorunun olduğunu, ancak neyin yanlış gittiğini söylemediği için.

Örneğin, tipik bir hata mesajı şunları okuyabilir:

“ORA-01422: Tam alma, istenen satır sayısından fazla döndürüyor

ORA-06512: “DATABASE_NAME” de, satır 66

ORA-06512: 1 satırında

İlk satır size ne tür bir hata olduğunu gösterir, bu durumda, sorgu, sorgudan beklenenden daha fazla veri döndürür, böylece nasıl işleneceğini bilmez. 'ORA-01422' kodu, bakmanız gereken gerçek hata kodudur. ORA-06512 sadece genel hata kodudur.

İkinci satır, hatanın nerede ortaya çıktığını gösterir. DATABASE_NAME, o sırada hangi veritabanında çalışıyorsanız çalışacaktır. Satır 66, hatanın gerçekleştiği satırdır ve hatayı düzeltmek için kontrol etmeniz gereken satırdır.

Hata sözdizimindeki üçüncü satır, aramanın nereden geldiğini size bildirir. Birinci satırı kontrol edin; DATABASE_NAME adlı telefonu arayın.

Bu belirli hatayı düzeltmek için, 'tam getirinin istenen sayıda satıra geri döndüğü' olan ORA-01422'nin neden olduğu sorunu çözmeniz veya Oracle'a bunu görmezden gelmesini bildirmek için bir istisna işleyicisi eklemeniz gerekir. Çekirdek konuyu düzeltmek her zaman tercih edildiğinden, bu şekilde gider.

Yapabileceğin iki şey var. Sorgunun tek bir satırdan daha fazla dönmesini beklerseniz, onu şaşırtmamak için değiştirebilirsiniz. Sorgunun yalnızca tek bir satır döndürmesini beklerseniz, bunun için de değiştirebilirsiniz.

Tek bir satırdan fazlasını beklemek:

X girişi için (* arasından t seçimini yapın.)

döngü

- X kaydını burada işleyin

son döngü;

Bu, birden fazla satırın döndürüleceği veritabanı sorgularındaki hatayı ortadan kaldırmalıdır.

Yalnızca tek bir satırın döndürülmesini beklerseniz, deneyebilirsiniz:

başla

* içine… seçeneğini seçin.

nereden t.

süreci ….

istisna

ne zaman NO_DATA_FOUND

kayıt bulunmadığında hata işleme kodu

ne zaman TOO_MANY_ROWS

çok fazla kayıt bulunduğunda hata işleme kodu

son;

Bu ikinci yöntem, 'ORA-01422: tam getirme, istenen sayıda satırdan daha fazla hata verir' hatası ve bu nedenle orijinal ORA-06512 hatasını atmadan sadece tek bir satır vermelidir.

Ayrıca, çok satırlı bir yanıtın yalnızca ilk satırını döndürmesi için sorguyu ince ayar yapabilirsiniz. Bu, veritabanı üzerinde tam kontrolünüz yoksa veya çok fazla şeyle uğraşmak istemiyorsanız, ancak yine de bir cevaba ihtiyacınız olursa işe yarayabilir.

bildirmek

* 'ı seçmek için c1 imleci t…

başla

açık c1;

c1'i .. içine alın

eğer (c1% notfound) o zaman

kayıt bulunamadı için hata işleme

eğer bitirse;

kapat c1;

son;

(SQL'i biliyorsanız, bu komut satırları tarafından biraz karıştırabilirsiniz… Oracle, Transact-SQL kullanmaz, fakat daha ziyade SQL, PL / SQL'in kendi prosedürel dil uzantısıdır. Zekice bir çok şey ve kendi başına çok güçlü bir araç. Oracle hakkında bilgi edinmeye çalıştığınızda bu PL / SQL SSS’yi faydalı bulabilirsiniz.)

Bu yüzden, buradaki temel ders, ORA-06512 hatasının kendisinden başlayarak doğrudan düzeltebileceğiniz bir şey değil. Bunun yerine, asıl hatanın ne olduğunu, diğer hata kodlarının size söyleyeceği şeyi bulmanız ve ardından bu hataları tek tek ele almanız gerekir.

Paylaşacak Oracle ipuçlarınız veya püf noktalarınız var mı? Yorumlarda onlar hakkında bize bilgi verin!

Oracle db ora-06512 hataları düzeltmek için nasıl