Ev / Haberler / Oracle veritabanı sunucusunun hata işleme özellikleri. Oracle hataları: veritabanı hataları, açıklama ve düzeltici eylem oracle istisna varyantları

Oracle veritabanı sunucusunun hata işleme özellikleri. Oracle hataları: veritabanı hataları, açıklama ve düzeltici eylem oracle istisna varyantları

PL/SQL'de İstisna İşleme

Herhangi bir prosedür dilinde, programların veri tabanından tam ve ayrı bir varlık olduğunu hatırlamak çok önemlidir. Bu nedenle, program veritabanından satır istediğinde, programcı isteğin başarıyla tamamlandığından emin olmalıdır.

İlişkisel veritabanlarında, veritabanı her zaman SQLCODE adlı özel bir değişkeni herhangi bir çağıran programa geri iletir. Programdan veritabanına erişim çağrısından döndürülen SQLCODE, Oracle tarafından adlandırılmış bir Boolean değişkenine çevrilir (Aşağıdaki tabloya bakın).

PL/SQL İstisna Değişkeni

ACCESS_INTO_NULL

COLLECTION_IS_NULL

CURSOR_ALREADY_OPEN

DUP_VAL_ON_INDEX

ROWTYPE_MISMATCH

SUBSCRIPT_BEYOND_COUNT

SUBSCRIPT_OUTSIDE_LIMIT

SYS_INVALID_ROWID

TIMEOUT_ON_RESOURCE

Örneğin, veritabanı bir SQLCODE=100 döndürürse, PL/SQL değişkeni NO_DATA_FOUND DOĞRU olarak ayarlanır.

İstisnasız, Oracle veritabanı tarafından beklenmeyen bir SQLCODE döndürüldüğünde tüm PL/SQL programları iptal edilmelidir.

Bu, özellikle PL/SQL verileri yanlış öncüllere dayalı tablolara yüklediğinde, veritabanı üzerinde feci bir etkiye sahip olabilir. Bu trajediyi önlemek için Oracle, Oracle veritabanından herhangi bir beklenmeyen SQLCODE döndürülürse DOĞRU olarak ayarlanan bir WHEN OTHERS değişkeni sağlar.

Örneğin, aşağıdaki kodu göz önünde bulundurun:

BİLDİRMEK
err_num NUMBER;
err_msg VARCHAR2(100);
BAŞLAMAK
...
İSTİSNA
...
NE ZAMAN BAŞKALARI SONRA
err_num:= SQLCODE;
err_msg:= SUBSTR(SQLERRM, 1, 100);
INSERT INTO hataları DEĞERLER (err_num, err_msg);
SON;

Burada, istisna işlememizin, BAŞKALARINDA OLDUĞU ZAMAN İSTİSNALAR alan testi olduğunu görüyoruz. WHEN OTHERS Boolean değişkeni TRUE ise, PL/SQL kodu SQLCODE ve ilgili hata mesajını (SQLERRM) yakalar ve bu değerleri özel bir Oracle hata tablosunda saklar.

Oracle İstisna İşleme

Geliştiriciler genellikle hata koşullarını işaretler ve bunları Oracle istisna işleme ve IF-THEN mantığının kullanımını kullanarak işler.

Hataları işaretlemek için IF-THEN mantığını kullanarak Oracle istisna işleme

Yukarıdaki örnek, boole değişkenini kullanarak Oracle istisna işlemeyi gösterir. bAidAmountTamam her öğrenci kaydının işlenmesi boyunca bir koşulu takip etmek.

Oracle istisna işlemenin bu kullanımı, performans üzerinde bir etkiye sahiptir. Oracle istisna işleme, hata durumunu test etmek için birden çok talimat kullanır. Her Oracle istisna işleme talimatının tamamlanması için CPU döngüleri gerekir. Çok daha iyi bir yaklaşım, aşağıda görüldüğü gibi, CPU döngülerini boşa harcamaktan kaçınmak için Oracle istisna işlemenin kullanılmasını içerir:

Performansı artırmak için Oracle istisna işleyicilerini kullanma.

Bu Oracle istisna işleme örneğinde, xAID_AMOUNT_OK istisna, döngü içinde açıkça ortaya çıkar. Bu, yürütmenin öğrencinin GPA'sı kontrol edildikten sonra ortaya çıkan talimatları atlamasına ve Oracle istisna işlemede kullanılan işlemciyi azaltmasına olanak tanır.

Oracle istisna işleme, performans açısından oldukça verimlidir. Bir Oracle istisnası oluşturulduğunda, blok içindeki sonraki tüm talimatlar atlanır, böylece istisna bir Oracle istisna işleyicisi tarafından işlenebilir. Oracle istisna işleme, performansı önemli ölçüde artırmak için kullanılabilir.

Burleson Amerikan Takımıdır

Not: Bu Oracle belgeleri, DBA performans ayarlama danışmanlığı uzmanlarımız tarafından kullanılmak üzere bir destek ve Oracle eğitim referansı olarak oluşturulmuştur. Oracle forumumuzda soru sormaktan çekinmeyin.

Doğrulamak tecrübe etmek! Bir Oracle destek uzmanının hizmetlerini kullanmayı düşünen herkes, kimlik bilgilerini ve deneyimlerini bağımsız olarak araştırmalı ve reklamlara ve kendi beyan ettiği uzmanlığa güvenmemelidir. Tüm meşru Oracle uzmanları, .

Hata mı? performans ayarı


Telif Hakkı 1996 - 2017

Tüm hakları Burleson'a aittir.

® Oracle Corporation'ın tescilli ticari markasıdır.

Conversational tarafından sağlanan Uzaktan Acil Durum Desteği

Bu bölümde, PL/SQL'deki İstisnaları tartışacağız. İstisna, bir programın yürütülmesi sırasındaki bir hata durumudur. PL/SQL, programcıların bu tür koşulları aşağıdakileri kullanarak yakalamalarını destekler: İSTİSNA programda bloke edilir ve hata durumuna karşı uygun işlem yapılır. İki tür istisna vardır -

  • Sistem tanımlı istisnalar
  • Kullanıcı tanımlı istisnalar

İstisna İşleme için Sözdizimi

İstisna işleme için genel sözdizimi aşağıdaki gibidir. Burada işleyebildiğiniz kadar çok istisna listeleyebilirsiniz. Varsayılan istisna kullanılarak ele alınacaktır NE ZAMAN diğerleri SONRA

BİLDİRMEK BAŞLAMAK İSTİSNA WHEN istisna1 THEN istisna1-işleme-ifadeleri WHEN istisna2 THEN istisna2-işleme-ifadeleri WHEN istisna3-işleme-ifadeleri ........ WHEN diğerleri SONRA istisna3-işleme-ifadeleri END;

örnek vermek

Kavramı açıklamak için bir kod yazalım. Daha önceki bölümlerde oluşturduğumuz ve kullandığımız CUSTOMERS tablosunu kullanacağız -

DECLARE c_id customer.id%type:= 8; c_name müşteriS.Ad%tür; c_addr müşteriler.adres%tür; BAŞLAYIN isim, adres INTO c_name, c_addr MÜŞTERİLERDEN NEREDE id = c_id; DBMS_OUTPUT.PUT_LINE("Ad: "|| c_name); DBMS_OUTPUT.PUT_LINE("Adres: " || c_addr); no_data_found SONRAKİ İSTİSNA dbms_output.put_line("Böyle bir müşteri yok!"); NE ZAMAN diğerleri SONRA dbms_output.put_line("Hata!"); SON; /

Böyle müşteri yok! PL/SQL prosedürü başarıyla tamamlandı.

Yukarıdaki program, kimliği verilen bir müşterinin adını ve adresini görüntüler. Veritabanımızda ID değeri 8 olan bir müşteri olmadığı için program çalışma zamanı istisnasını yükseltir. VERİ BULUNAMADI içinde yakalanan İSTİSNA bloğu.

İstisnaları Artırma

Herhangi bir dahili veritabanı hatası olduğunda, istisnalar veritabanı sunucusu tarafından otomatik olarak oluşturulur, ancak istisnalar, komut kullanılarak programcı tarafından açıkça ortaya çıkarılabilir. ARTIRMAK. Bir istisna oluşturmak için basit sözdizimi aşağıdadır -

DECLARE istisna_adı İSTİSNA; BEGIN IF koşulu THEN RAISE istisna_adı; EĞER SON; İSTİSNA WHEN istisna_adı SONRA ifadesi; SON;

Oracle standart istisnasını veya herhangi bir kullanıcı tanımlı istisnayı yükseltmek için yukarıdaki sözdizimini kullanabilirsiniz. Bir sonraki bölümde, kullanıcı tanımlı bir istisna oluşturma konusunda size bir örnek vereceğiz. Oracle standart istisnalarını benzer şekilde yükseltebilirsiniz.

Kullanıcı Tanımlı İstisnalar

PL/SQL, programınızın ihtiyacına göre kendi istisnalarınızı tanımlamanıza izin verir. Kullanıcı tanımlı bir özel durum bildirilmeli ve ardından bir RAISE deyimi veya yordam kullanılarak açıkça oluşturulmalıdır. DBMS_STANDARD.RAISE_APPLICATION_ERROR.

Bir istisna bildirmek için sözdizimi -

İSTİSNA İSTİSNAMI BİLDİRİN;

örnek vermek

Aşağıdaki örnek kavramı göstermektedir. Bu program bir müşteri kimliği ister, kullanıcı geçersiz bir kimlik girdiğinde istisna geçersiz kimlik yükseltilir.

DECLARE c_id customer.id%type:= &cc_id; c_name müşteriS.Ad%tür; c_addr müşteriler.adres%tür; -- kullanıcı tanımlı istisna ex_invalid_id İSTİSNA; c_id EĞER BAŞLAYIN<= 0 THEN RAISE ex_invalid_id; ELSE SELECT name, address INTO c_name, c_addr FROM customers WHERE id = c_id; DBMS_OUTPUT.PUT_LINE ("Name: "|| c_name); DBMS_OUTPUT.PUT_LINE ("Address: " || c_addr); END IF; EXCEPTION WHEN ex_invalid_id THEN dbms_output.put_line("ID must be greater than zero!"); WHEN no_data_found THEN dbms_output.put_line("No such customer!"); WHEN others THEN dbms_output.put_line("Error!"); END; /

Yukarıdaki kod SQL isteminde çalıştırıldığında, aşağıdaki sonucu verir -

cc_id için değer girin: -6 (bir -6 değeri girelim) eski 2: c_id customer.id%type:= &cc_id; yeni 2: c_id customer.id%type:= -6; ID sıfırdan büyük olmalıdır !PL/SQL prosedürü başarıyla tamamlandı.

Önceden tanımlanmış İstisnalar

PL/SQL, bir program tarafından herhangi bir veritabanı kuralı ihlal edildiğinde yürütülen önceden tanımlanmış birçok istisna sağlar. Örneğin, bir SELECT INTO deyimi satır döndürmediğinde, önceden tanımlanmış NO_DATA_FOUND özel durumu ortaya çıkar. Aşağıdaki tablo, önceden tanımlanmış önemli istisnalardan birkaçını listeler -

İstisna Oracle Hatası SQL KODU Tanım
ACCESS_INTO_NULL 06530 -6530 Boş bir nesneye otomatik olarak bir değer atandığında ortaya çıkar.
CASE_NOT_FOUND 06592 -6592 CASE deyiminin WHEN yan tümcesindeki seçeneklerden hiçbiri seçilmediğinde ve ELSE yan tümcesi olmadığında ortaya çıkar.
COLLECTION_IS_NULL 06531 -6531 Bir program, başlatılmamış bir iç içe tabloya veya varray'e EXISTS dışındaki toplama yöntemlerini uygulamaya çalıştığında veya program, başlatılmamış bir iç içe tablo veya varray öğelerine değerler atamaya çalıştığında ortaya çıkar.
DUP_VAL_ON_INDEX 00001 -1 Eşsiz indeksli bir sütunda mükerrer değerler saklanmaya çalışıldığında ortaya çıkar.
INVALID_CURSOR 01001 -1001 Açılmamış bir imleci kapatmak gibi izin verilmeyen bir imleç işlemi yapılmaya çalışıldığında ortaya çıkar.
GEÇERSİZ NUMARA 01722 -1722 Bir karakter dizisinin sayıya dönüştürülmesi başarısız olduğunda ortaya çıkar çünkü dize geçerli bir sayıyı temsil etmez.
LOGIN_DENIED 01017 -1017 Bir program veritabanında geçersiz bir kullanıcı adı veya parola ile oturum açmaya çalıştığında ortaya çıkar.
VERİ BULUNAMADI 01403 +100 SELECT INTO deyimi satır döndürmediğinde ortaya çıkar.
NOT_LOGGED_ON 01012 -1012 Veritabanına bağlanmadan bir veritabanı çağrısı yapıldığında ortaya çıkar.
PROGRAM_HATA 06501 -6501 PL/SQL'in dahili bir sorunu olduğunda ortaya çıkar.
ROWTYPE_MISMATCH 06504 -6504 Bir imleç, uyumsuz veri tipine sahip bir değişkende değer getirdiğinde ortaya çıkar.
SELF_IS_NULL 30625 -30625 Bir üye yöntemi çağrıldığında ortaya çıkar, ancak nesne türünün örneği başlatılmadı.
STORAGE_ERROR 06500 -6500 PL/SQL'in belleği tükendiğinde veya bellek bozulduğunda ortaya çıkar.
TOO_MANY_ROWS 01422 -1422 Bir SELECT INTO deyimi birden fazla satır döndürdüğünde ortaya çıkar.
VALUE_ERROR 06502 -6502 Bir aritmetik, dönüştürme, kesme veya boyut kısıtlaması hatası oluştuğunda ortaya çıkar.
ZERO_DIVIDE 01476 1476 Bir sayıyı sıfıra bölmeye çalışıldığında ortaya çıkar.

Doktora Vladimir Likhachev, K.E. Tsiolkovsky'nin adını taşıyan Kaluga Pedagoji Üniversitesi

Veritabanları ile çalışan programlar için sadece hatalarını doğru bir şekilde ele almak değil, aynı zamanda bu hatalar hakkında bilgilendirici mesajlar üretmek de önemlidir. Bu tür mesajların varlığı, nedenleri hızlı bir şekilde belirlemenize ve hataları düzeltmenize olanak tanır. Bu, özellikle son kullanıcı programıyla çalışırken geçerlidir, çünkü çoğu durumda yalnızca belirli bir veritabanının yapısını değil, aynı zamanda ilişkisel veritabanlarının teorik temellerini de bilmez.

İşin garibi, programlarda hata mesajlarının oluşumu ile ilgili durum, genellikle hataların işlenmesinden oldukça farklıdır. Hataları ele alırken, genellikle bir veya daha fazla işlevde bunların işlenmesini yerelleştirmenize izin veren ortak bir strateji geliştirmek mümkündür. Hata mesajları için benzer bir yaklaşım, hata mesajında ​​Oracle sunucusunun hatanın türünü ve buna neden olan veritabanı nesnesini göstermesi temelinde uygulanabilir. Bu tür nesneler genellikle birincil, benzersiz ve yabancı anahtarlar, benzersiz dizinler, "null değil" kısıtlamaları vb. Gibi kısıtlamalardır. Bu kısıtlamalar hakkında ayrıntılı bilgi, sistem tablolarından ve veritabanı görünümlerinden ve değiştirilebilecek değerlerden elde edilebilir. ve değiştirildiği belirlenebilir.hataya yol açtı. Ancak sorun, gerçek uygulamalarda hata mesajları oluşturmak için böyle bir mekanizmanın uygulanmasının bir takım zorluklarla karşılaşmasıdır:

  • Hata mesajının programın amacına bağımlılığı. Aynı veritabanı ile çalışan programlar için bile aynı hata hakkında farklı mesajlar oluşturmak gerekebilir. Örneğin, kullanıcı verilerini düzenlemeye yönelik bir programda mesaj şöyle olmalıdır: "Bu ada sahip bir ürün zaten kayıtlı! Ürün adını kontrol edin!". Ancak veri içe aktarma programında, tamamen farklı bir içeriğe sahip bir mesaj gerekir: "İçe aktarılan veriler yineleniyor - verilerin içe aktarıldığı tarihi kontrol edin!".
  • Veritabanı sınırlamalarından kaynaklanan bazı hatalar için mesaj oluşturma zorluğu. Örneğin, tablolardaki CHECK kısıtlamaları oldukça karmaşık sorgular ve koşullar kullanabilir. Bu nedenle, analizlerine dayalı olarak mesajların oluşturulması oldukça zor bir görev olabilir.
  • İstemci programlarında veritabanındaki adlarından farklı özel tablo ve sütun adları kullanma. Örneğin, tablonun adı "MALLAR"dır ve müşteri uygulamasında bu tablonun verileri dizinde "Ürünler" veya "Ürünler" olarak görüntülenebilir.

Bu faktörlerin kombinasyonu genellikle, aynı tür hatalar hakkında bile mesaj oluşumunun her işlem için ayrı ayrı uygulanmasına yol açar. Sonuç olarak, hata mesajları oluşturma kodu uygulama boyunca dağıtılır ve bu da bakımını zorlaştırır. Hemen hemen her olası hata için kod yazma ihtiyacı nedeniyle, geliştiricinin farkında olduğu bazı hataların kullanıcıya karşılık gelen mesajlar olmadığı ortaya çıkıyor. Sonuç olarak, son kullanıcı için yeterince bilgilendirici mesajlar yalnızca bazı hatalar için oluşturulur, diğer durumlarda, en iyi ihtimalle veritabanı sunucusunun kendisinden gelen mesajlarla yetinmesi gerekir. Çoğu durumda ortalama bir kullanıcı için bu tür mesajların bilgilendirici olması, sorunun nedenini belirlemek ve ortadan kaldırmak için yeterli değildir.

Makalede ele alınan kullanıcı için bilgilendirici hata mesajları üretme yöntemi oldukça evrenseldir, hem istemci uygulamalarında hem de Oracle sunucu tarafında uygulanabilir. Aşağıdakiler gibi çeşitli program türlerinde kullanılabilir:

  • Veritabanı verilerini girmek ve değiştirmek için özel bir arayüz kullanan programlar. Çoğu durumda, bilgilendirici hata mesajları, veritabanı yapısının analizinden elde edilebilir. Bu, geliştiricilerin ve yazılımın minimum çabasıyla kullanıcıyı nedenleri hakkında bilgilendirecektir.
  • Kullanıcı tarafından isteğe bağlı SQL sorguları oluşturma yeteneğine sahip programlar. Veritabanı yapısının analizine dayalı mesajların oluşturulması, özellikle bu alanda düşük düzeyde bilgi sahibi olanlar da dahil olmak üzere geniş bir kullanıcı kitlesini hedefleyen programlar için uygun olabilir. Bu, SQL sorgularındaki hata mesajlarını kullanıcı için daha anlaşılır hale getirecektir.
  • konu platformları. Makalede açıklanan yöntemlerin kullanılması, söz konusu platformun yapısının analizine dayalı olarak bilgilendirici veritabanı hata mesajları oluşturmasını sağlayacaktır. Bu, hata durumlarını ele almak için kullanılan platform dil kodunu kısaltmayı mümkün kılacaktır. Ve özel mesajlar gerektiren, ancak onlarsız olduğu ortaya çıkan hatalar, nedenlerini belirlemeyi çok daha kolay hale getirecek kadar bilgilendirici olacaktır.

Yukarıda açıklanan mesaj oluşturma sorunları, hata mesajları geleneksel olarak iki gruba ayrılırsa çözülebilir:

  • veritabanı yapısının analizine dayalı olarak oluşturulan evrensel mesajlar;
  • her hata için ayrı ayrı tanımlanan özel mesajlar.

Makalede açıklanan veritabanı hata mesajları oluşturma yöntemi, birçok ilişkisel veritabanı sunucusuna uygulanabilir. Makalede Firebird sunucu veritabanları için kullanımına bir örnek tartışılmaktadır. İstemci uygulaması Object Pascal'da (Delphi, Kylix, Free Pascal) geliştirildiyse, JEDI kitaplığının yetenekleri, beklenmeyen hataların nedenlerini belirlemek için yararlı olabilir.

1. Veritabanı kısıtlamalarından kaynaklanan evrensel hata mesajları

Yukarıda bahsedildiği gibi evrensel mesajlar oluşturmanın ana fikri, Oracle'dan gelen hata mesajından ve veritabanı yapısından gelen verilere dayanarak son kullanıcı için yeterince bilgilendirici ve anlaşılır bir mesaj oluşturmaktır. "MALLAR" tablosunda (script 1.1) kullanıcının zaten tabloda bulunan bir isimle ("TITLE" sütunu) bir ürün eklemeye çalıştığını varsayalım.

TABLO DEMO.GOODS OLUŞTURMA (CODE INTEGER NULL DEĞİL , BAŞLIK VARCHAR2(50 byte) NOT NULL , FİYAT NUMARASI(16, 2) DEĞİL NULL , SINIRLAMA CK_PRICE KONTROLÜ (FİYAT > 0), KISITLAMA PK_GOODS BİRİNCİL ANAHTAR (KOD)); TABLO DEMO.GOODS ÜZERİNE YORUM "Mallar"; SÜTUN DEMO.ÜRÜNLER.KODU ÜZERİNE YORUM "Ürün Kodu"dur; SÜTUN DEMO.GOODS.BAŞLIK ÜZERİNE YORUM "Başlık"; KOLON DEMO.GOODS.PRICE ÜZERİNE YORUM "Fiyat"; DEMO.GOODS(TITLE);

Senaryo 1.1. "MALLAR" tablosunun oluşturulması.

Ürünün adını saklayan "TITLE" sütunu "DEMO.IDX_GOODS_TITLE" benzersiz dizinine dahil edildiğinden, sunucu bu durumda bir hata üretecektir:

Bunun yerine, kullanıcı için bir mesaj oluşturulabilir, örneğin mesajlardan biri:

  • "Ürünler" tablosundaki "Ad" alanının değeri benzersiz olmalıdır!
  • Bu ada sahip bir ürün zaten kayıtlı! Ürün adını kontrol edin!
  • Aynı ada sahip ürünler ürün dizininde olamaz!

Bu mesajlar farklılık gösterse de, hepsi benzersizlik kısıtlamasının ihlal edildiği nesne hakkında bilgileri gösterir - bu, "Ürünler" tablosunun "Ad" alanıdır.

Bu tür bir ileti oluşturmanın sorunlarından biri, özel alan ve tablo adlarının veritabanındaki tablo ve sütun adlarından farklı olmasıdır. Kullanıcının hata mesajını anlayabilmesi için özel adlar kullanması gerekir. Tablo ve alan adları ile bunların özel adlarını eşleştirmek için tablolar ve sütunlar için ayrı bir tablo veya yorumlar kullanılabilir. İkinci seçenek, aynı anda veritabanını belgelemenize izin verdiği için daha fazla tercih edilebilir. Bu nedenle script 1.1'de kullanıcı tanımlı isimler tablo ve sütunları için yorum olarak verilmiştir. Tablo ve sütunlar için yukarıdaki mesajları ve yorumları karşılaştırırsak, ilk mesajın oluşturulmasının en basit seçenek olduğunu görebiliriz. Diğer iki mesajı oluşturmak için sözcüksel sentez gerekebilir, ancak bu ayrı bir görevdir. Gelecekte makalede her bir hata durumu için olası mesaj seçeneklerinden yalnızca birinin verildiğine dikkatinizi çekmek isterim. Uygulamada, mesaj stili ve içeriğinin seçimi bir dizi faktöre bağlı olabilir ve sistem tasarımcısı tarafından belirlenecektir.

Tabii ki, mesajda yer alması gereken bir tablo veya sütun için yorum olmadığı da göz ardı edilemez. Bu durumda, hata iletisi doğrudan tablonun veya sütunun adını görüntüleyebilir.

2. Gerekli alanın değeri belirtilmemiş (kısıtlama NULL DEĞİLDİR)

Bu hata, birkaç durumda sunucu tarafından oluşturulur:

  • sütundaki "boş değil" kısıtlaması ihlal edildi;
  • benzersiz bir dizinin, ana anahtarın veya benzersiz anahtarın parçası olan bir sütun için değer belirtilmedi.

Tüm bu durumlarda, sunucu bir hata üretir:

Hata mesajından tablo ve sütun açıklamasını almak için 2.1 sorgusu kullanılabilir.

tc.comments'ı table_comment olarak, cc.comments'ı column_comment olarak seçin itibaren all_tab_columns c, all_tab_comments tc, all_col_comments cc c.owner ve cc.table_name = c.table_name ve cc.column_name = c.column_name

Talep 2.1. Bir tablo ve sütun açıklaması alın

"Sahip", "table_name", "column_name" sorgu parametreleri olarak sırasıyla hata mesajından şema, tablo ve sütun adını belirtmelisiniz. Sorgu, tablo ve sütun için yorumları döndürür.

Bu sorgunun sonuçlarını kullanarak, örneğin aşağıdaki içerik gibi bir hata mesajı oluşturulabilir:

Sütunun değerini belirtmelisiniz "<Описание поля>"masada"<Описание таблицы>"de<добавлении новой/изменении>kayıtlar.

3. Bir alanın veya bir dizi sütunun değerinin benzersizliği bozuldu

Bir sütun için benzersiz bir değer girme ihtiyacı esas olarak üç durumda gerekli olabilir:

  • sütun, ana anahtarın bir parçasıdır;
  • sütun benzersiz anahtara dahil edilir;
  • sütun benzersiz bir dizine dahil edilir.

Her üç durumda da Oracle Database aynı hatayı üretir:
ORA-00001: benzersiz kısıtlama ihlal edildi (<Схема>.<Ограничение>)

Hata mesajı, hataya neden olan kısıtlamayı belirtir. Ana veya benzersiz anahtarlarda bulunan sütunlar hakkında bilgi almak için, sorgu 3.1'i, dizin hakkında bilgi almak için - sorgu 3.2'yi kullanabilirsiniz.

dcs.constraint_type, cc.table_name, tc.comments'ı table_comment olarak, cc.column_name, ccom.comments'ı column_comment olarak seçin itibaren all_cons_columns cc all_tab_comments tc'ye katıl (tc.owner = cc.owner ve tc.table_name = cc.table_name) all_col_comments ccom'a katıl (ccom.owner = cc.owner ve ccom.table_name = cc.table_name ve ccom.column_name = cc. sütun_adı) (dcs.constraint_name = cc.constraint_name) üzerinde all_constraints dcs'ye katılın burada cc.owner = :owner ve cc.constraint_name = :key_name
Talep 3.1. Ana veya benzersiz anahtarlarda yer alan tablonun sütunları hakkında bilgi edinme.
ic.table_name, tc.comments'ı tablo_comment olarak, ic.column_name, ccom.comments'ı column_comment olarak seçin itibaren all_ind_columns ic all_tab_comments tc'ye katıl (tc.owner = ic.table_owner ve tc.table_name = ic.table_name) all_col_comments ccom'a katıl (ccom.owner = ic.table_owner ve ccom.table_name = ic.table_name ve ccom.ic.column_name = sütun_adı) burada tablo_sahibi = :sahip ve dizin_adı = :index_name
Talep 3.2. Dizine dahil edilen tablonun sütunları hakkında bilgi alma.

Sorgu parametreleri şema adı ("sahip"), anahtar adı ("anahtar_adı") veya dizin adıdır ("index_name"). Sorgular, kısıtlamadaki tablo ve sütunların adlarını ve yorumlarını döndürür. Sorgu 3.1 ayrıca kısıtlama türünü ("kısıtlama_türü") döndürür: "P" - ana anahtar, "U" - benzersiz anahtar. Sorgular tarafından döndürülen kayıtların sayısı, benzersiz kısıtlamadaki sütunların sayısıyla eşleşir.

Kullanıcı için benzersizlik kısıtlaması hakkında alınan bilgilere dayanarak, örneğin 1. bölümde verilenler gibi hata mesajlarının çeşitleri oluşturulabilir.

4. Yabancı Anahtar Kısıtlamalarının Neden Olduğu Hatalar

Yabancı anahtarlarla ilişkili tablo verileri üzerinde işlem yaparken, hatalara yol açan birkaç neden vardır:

1. Alt tabloya, yabancı anahtarda bulunan sütunun ana tabloda karşılık gelen bir değere sahip olmadığı bir kayıt eklenir. Benzer bir durum, yeni sütun değeri ana tabloda değilse, bir alt tablonun sütununun değerini değiştirirken ortaya çıkar. Oracle Database bu durumda bir hata üretir:

  1. Alt tabloda başvurulan üst tablodaki bir sütunun değeri değiştirilmeye çalışılır. Bu durumda Oracle Database bir hata üretir:
  1. Alt tabloda başvurulan ana tablodaki veriler silinmeye çalışılır. Bir veri silme işlemi için tablolar arasındaki ilişkinin tanımında bir "EYLEM YOK" kısıtlaması belirtilirse, alt tabloda silinen kayıtla ilişkili kayıtlar varsa Oracle ana tablodan verilerin silinmesine izin vermez. Bu durum için Oracle Database önceki duruma benzer bir hata üretir.

Yabancı anahtarın parçası olan ana ve alt tabloların sütunları hakkında bilgi almak için aşağıdaki 4.1 sorgusunu kullanabilirsiniz.

a.constraint_name, a.table_name, tc1.comments'ı tablo_comment olarak, a2.column_name, cc1.comments'ı column_comment olarak, b.sahibini r_sahibi olarak, b.table_name'yi r_table_name olarak, tc2.comments'ı r_table_comment olarak, b2.column_column_ olarak, cc1.comments olarak seçin .comments olarak r_column_comment itibaren all_constraints a, all_constraints b, all_cons_columns a2, all_cons_columns b2, all_tab_comments tc1, all_col_comments cc1, all_tab_comments tc2, all_col_comments cc2 burada a.sahip = :sahip ve a.constraint_cons_türü =. ("P","U") ve b.constraint_name = a.r_constraint_name ve b.owner = a.r_owner ve a2.constraint_name = a.constraint_name ve a2.table_name = a.table_name ve a2.owner = a.sahip ve b2.constraint_name = b.constraint_name ve b2.table_name = b.table_name ve b2.owner = b.owner ve b2.position = a2.position ve tc1.owner = a.owner ve tc1.table_name = a.table_name ve cc1. sahip = a2.sahip ve cc1.table_name = a2.table_name ve cc1.column_name = a2.column_name ve tc2.owner = b.owner ve tc2.table_name = b.table_name ve cc2.owner = b2.owner ve cc2.table_name = b2.table_name ve cc2.column_name = b2.column_name
Talep 4.1. Yabancı anahtar hakkında bilgi alma.

İsteğin iki parametresi vardır: "sahip" ve "yabancı_anahtar" - hakkında bilgi almak istediğiniz şema ve yabancı anahtar. Yabancı anahtarda bulunan sütunlar hakkında bilgi verir: "table_name", "table_comment" - bağımlı tablonun adı ve açıklaması; "column_name", "column_comment" - alt tablonun sütununun adı ve açıklaması. Ön eki "r_" olan sorgu sütunları, ana tablo hakkında bilgi verir. Sorgu tarafından döndürülen kayıt sayısı, yabancı anahtarda bulunan sütunların sayısına karşılık gelir.

Bu bilgilere dayanarak kullanıcı için yabancı anahtar hata mesajları oluşturulabilir.

5. Veritabanı kısıtlamalarından kaynaklanan özel hata mesajları

Evrensel hata mesajı herhangi bir nedenle kullanılamıyorsa veya oluşturulamıyorsa, özel mesajların kullanılması ihtiyacı ortaya çıkabilir. İkinci duruma bir örnek, tablolardaki KONTROL kısıtlamalarıdır. Kısıtlı koşullarda, analizi oldukça zor olabilen sorgular ve koşullar kullanılabilir. Bu nedenle, bu kısıtlamalar için tasarım zamanında tanımlanan mesajları kullanmak genellikle daha uygundur.

İki grup özel hata mesajı ayırt edilebilir. İlk özel mesaj türü, ortak bir veritabanıyla çalışan tüm uygulamalarda kullanılmak üzere tasarlanmıştır. Bunlara gevşek bir şekilde "veritabanı düzeyinde özel hata mesajları" denilebilir. İkinci mesaj grubu uygulamaya özeldir. Farklı uygulamaların kullanıcıya aynı hata hakkında farklı mesajlar vermesi gerektiğinde bunlara ihtiyaç duyulabilir. Geçici olarak "özel uygulama düzeyinde hata mesajları" olarak adlandırılabilirler. İlk mesaj grubu hakkındaki bilgileri veritabanının kendisinde saklamak ve bunun için ayrı bir tablo kullanmak uygundur. Bir programa özgü mesajlar, örneğin ayrı bir dosya olarak veya bir veritabanında, kaynaklarında saklanabilir. Özel mesajlar, hata koduna, şema adına ve hata mesajındaki bir veya daha fazla anahtar kelimeye göre tanımlanabilir.

6. Tablolar için kısıtlama hata mesajlarını kontrol edin

Bir tablodaki CHECK kısıtlaması nedeniyle bir hata oluştuğunda, sunucu bir hata üretir:
ORA-02290: CHECK bütünlük kısıtlaması ihlal edildi (<Схема>.<Имя ограничения>)

Yukarıda belirtildiği gibi, bu tür hatalar için özel mesajların kullanılması genellikle uygundur. Örneğin, "MALLAR" tablosundaki "CK_PRICE" kısıtlaması, özel mesaj tablosunda saklanan özel bir mesajı kullanabilir:

7. Özel ve genel hata mesajlarının kapsamlı kullanımı

Kullanıcı için bilgilendirici hata mesajları üretmek için esnek bir mekanizma birkaç aşamada uygulanmaktadır (Şekil 1):

1. Özel bir uygulama düzeyinde hata mesajı çıktısı alın. Program önce o uygulamaya özel mesajlar arasında bir hata mesajı arar. Böyle bir mesaj bulunursa ekrana gelir ve mesajın oluşumu tamamlanır.

2. Veritabanı düzeyinde özel bir hata mesajı çıktısı alın. 1. adımda herhangi bir mesaj bulunamazsa, veritabanı düzeyinde özel bir hata mesajı aranır. Bulunursa, kullanıcıya gösterilir ve hata mesajı üretimi burada sona erer.

3. Veritabanı yapısının analizine dayalı bir mesajın görüntülenmesi (evrensel mesaj). Önceki aşamalarda herhangi bir özel mesaj bulunamadıysa, veritabanı yapısının analizine dayanarak oluşturulur. Kullanıcıya gösterilir ve bu mesajın oluşumunu tamamlar.

4. Veritabanı sunucusundan bir mesaj görüntüleme. Önceki üç adımda kullanıcı için herhangi bir mesaj oluşturulmadıysa, Oracle'dan bir hata mesajı görüntülenir. Bu durum birkaç nedenden dolayı ortaya çıkabilir. Örneğin, bir saklı yordamda kasıtlı olarak oluşturulan veya RAISE_APPLICATION_ERROR işlevi kullanılarak tetiklenen özel bir hata oluştuğunda ve hakkında değiştirilmesi gerekmeyen mesajın içeriği.

Bu makalede verilenden daha karmaşık durumlar mümkündür. Örneğin, mesaj, bir tetikleyiciden veya başka bir saklı yordamdan çağrılabilen saklı bir yordamda oluşturulduysa. Bu durumda, hata mesajını oluşturan prosedürün nasıl çağrıldığı hakkında da bilgiye ihtiyacınız olabilir. Bu nedenle, orijinal mesaj, örneğin, saklı yordamların ve tetikleyicilerin çağrı yığını hakkındaki bilgilere dayalı olarak tamamlanabilir veya değiştirilebilir.

Bazı durumlarda, bu tür mesajlar önceki aşamalarda oluşturulanlardan daha bilgilendirici olabilir. Örneğin, DEMO.GOODS tablosu (script 1.1) için CK_PRICE kısıtlaması yerine, kaydı eklemeden ve güncellemeden önce tetikleyicide gerekli kontrolü yapabilir ve zaten "hazır" bir formda kullanıcı için bir mesaj oluşturabilirsiniz:

Bir ürünün fiyatı sıfırdan küçük veya sıfıra eşitse, sunucu bir hata üretecektir, örneğin:

İstemci uygulaması bu mesajı kullanıcıya herhangi bir değişiklik yapmadan hemen gönderebilir.

Başka bir neden, mesaj oluşumunun sağlanmadığı bir hatanın ortaya çıkması olabilir.

Pirinç. 1. Bir veritabanı hata mesajı oluşturma sırası.

Uygulama sadece özel hata mesajları kullansa bile, mesaj oluşturmak için ortak bir fonksiyon kullanmanın programın yapısını iyileştireceğini belirtmek isterim. Gerekirse, özel mesajların formatı yardım sistemine, resimlere vb. bağlantıları destekleyebilir. Veritabanı hata mesajları oluşturmanın açıklanan yöntemi, daha çok istemci uygulamasında uygulamaya odaklanmıştır. Aynı zamanda sunucu tarafında, saklı yordamlarda, tablo tetikleyicilerinde, ayrıca veritabanı veya şema SERVERERROR olayı için sistem tetikleyicilerinde kullanılabilir.

Çözüm

Bu makalenin amacı, son kullanıcı için bilgilendirici Oracle veritabanı hata mesajları oluşturmak için kullanılabilecek bir yöntemin ana fikirlerini göstermektir. Bazı uygulama noktaları makalenin kapsamı dışında kalsa da, makalede açıklanan yaklaşımın yazılım geliştirmede işçilik maliyetlerini azaltacağını, güvenilirliğini ve kalitesini artıracağını umuyorum.

İstisnalar meydana geldiğinde, kullanıcı dostu hata mesajları vermek önemlidir. İstisnalar, temel PL/SQL bloklarıyla ilgili bölümde zaten belirtilmiştir. Şimdi onları daha ayrıntılı olarak düşünmenin zamanı geldi.

istisnalar

İstisna, etkinleştirilen bir hata durumudur - veya uyarılmış - bir sorun oluştuğunda. Her biri belirli bir sorun türüyle ilişkili birçok farklı istisna vardır. Bir istisna oluştuğunda, istisnayı oluşturan ifadede kod yürütmesi durur ve kontrol, bloğun istisnayı işleyen kısmına aktarılır. Blok yürütülebilir bir bölüm içermiyorsa, PL/SQL içinde yürütülebilir bir bölüm bulmaya çalışır. dahil olmak üzere ana ünite (temel bloğu çevreleyen), yani. istisnayı atan kodun dışındaki bir blokta. Hemen çevreleyen blokta bu istisna için bir işleyici yoksa, arama uygun bir işleyici bulunana kadar sonraki seviyelerin bloklarında devam eder ve bulunamazsa, işlenmemiş bir hata mesajı ile program yürütmesi durur.

Bloğun istisna işleme kısmı, bilgilendirici hata mesajları vermek ve yürütmek için ideal yerdir. temizlik (temizleme), gelecekte karışıklığa veya sorunlara neden olabilecek her şeyden kurtulmanızı sağlar. Bir tabloya satır ekleyen bir yordamın yürütülmesi sırasında bir istisna atılırsa, tipik bir temizleme yordamı bir ROLLBACK ifadesi içerebilir.

Denetim bir özel durum işleyicisine aktarıldıktan sonra, artık özel duruma neden olan ifadeye döndürülmez. Bunun yerine, iç içe blok veya prosedür/fonksiyon çağrısının hemen ardından kontrol, çevreleyen temel blok ifadesine aktarılır.

Sistem İstisnaları

PL/SQL'de önceden tanımlanmış ZERO_DIVIDE istisnasına zaten aşinasınız. PL/SQL veya Oracle tarafından tanınan ve oluşturulan birkaç sistem istisnası daha vardır. Tablo 1, sistem istisnalarının daha eksiksiz bir listesini sağlar.

PL/SQL'de kullanıcılara iki şekilde hata bilgisi verebilirsiniz. İlk yol, bir hata kodu döndüren SQLCODE komutunu kullanmaktır. Bu kod, kural dışı durum işlenmeden bırakılırsa uygulama sonlandırıldığında yazdırılan ORA hatasının sayısına genellikle eşit olan negatif bir sayıdır. İkinci yol, hatayı açıklayan bir metin mesajı döndürmektir. Şaşırtıcı olmayan bir şekilde, karşılık gelen komuta SQLERRM denir. Bir istisna işleyicisinde hem SQLCODE hem de SQLERRM kullanılabilir. Not: Tüm sistem istisnalarının adları yoktur.

tablo1 . Sistem İstisnaları

sistem istisnası,hata kodu

uyarılma nedeni

İMLEÇ_ ÇOKTAN_ AÇIK

ORA-06511

Zaten açık bir imleci açmaya çalışmak

DUP_VAL_ON_INDEX

ORA-00001

Benzersiz bir dizine ve dolayısıyla benzersiz bir kısıtlamaya sahip bir sütuna yinelenen bir değer eklemeye çalışmak

GEÇERSİZ_ İMLEÇ

ORA-01001

Açılmamış bir imleci ALMA girişiminde bulunmak veya açılmamış bir imleci kapatmaya çalışmak

VERİ BULUNAMADI

ORA-01403

SELECT sıfır satır döndürdüğünde INTO INTO'yu seçmeye çalışmak (ve bu kitabın kapsamı dışındaki diğer nedenler)

PROGRAM_ HATA

ORA-06501

İç hata. Genellikle Oracle desteğiyle iletişime geçmeniz gerektiği anlamına gelir

DEPOLAMAK_ HATA

ORA-06500

Program yeterli sistem belleğine sahip değil

TIMEOUT_ON_RESOURCE

ORA-00051

Program, bazı kaynakların kullanılabilir olması için çok uzun süre bekledi

TOO_MANY_ROWS

ORA-01422

PL/SQL'de SELECT INTO birden fazla satır döndürdü

DEĞER_ HATA

ORA-06502

PL/SOL geçersiz bir veri dönüştürme veya kesme ya da geçersiz bir veri kısıtlaması ile karşılaştı

SIFIR_ BÖLMEK

ORA-01476

sıfıra bölmeyi dene

Temel blokta tanımlanan istisnalar tarafından kapsanmayan diğer tüm istisnalar ve dahili hatalar. Hangi adlandırılmış istisnanın işleneceğini tam olarak bilmediğinizde ve atılan istisnaları işlemek istediğinizde kullanılır.

Şimdi bu bölümdeki ilk örneğe geri dönelim ve içinde SQLCODE ve SQLERRM kullanalım. Aşağıda örneğin kaynak kodu ve lansmanının sonuçları verilmiştir (Şekil 1).

Num_a SAYI:= 6;

Num_b NUMBER;

Sayı_b:= 0;

Num_a:= Num_a / Num_b;

Sayı_b:= 7;

dbms_output.put_line(" Num_b Değeri "|| Num_b);

İSTİSNA

NE ZAMAN ZERO_DIVIDE SONRA

err_num NUMBER:= SQLCODE;

err_msg VARCHAR2(512) := SQLERRM;

dbms_output.put_line("ORA Hata Numarası" || err_num);

dbms_output.put_line("ORA Hata mesajı " || err_msg);

dbms_output.put_line("Num_a'nın Değeri " || Num_a);

dbms_output.put_line("Sayı_b'nin Değeri " || Sayı_b);

SQL> sunucu çıktısını ayarla

SQL> BİLDİRİM

2 sayı_a SAYI:= 6;

3 num_b NUMBER;

4 BAŞLAR

5 sayı_b:= 0;

6 num_a:= num_a / num_b;

7 sayı_b:= 7;

8 dbms_output.put_line(" sayı_b'nin değeri "|| sayı_b);

9 İSTİSNA

10 NE ZAMAN ZERO_DIVIDE

11 SONRA

13 err_num NUMBER:= SQLCODE;

14 err_msg VARCHAR2(512) := SQLERRM;

15 BAŞLANGIÇ

16 dbms_output.put_line("ORA Hata Numarası"|| err_num);

17 dbms_output.put_line("ORA Hata mesajı " || err_msg);

18 dbms_output.put_line("sayı_a değeri " || sayı_a);

19 dbms_output.put_line("sayı_b'nin değeri " || sayı_b);

20END;

21END;

ORA Hata Numarası -1476

ORA Hata Mesajı ORA-01476: bölen sıfıra eşit

num_а 6 değeri

num_b 0 değeri

PL/SQL prosedürü başarıyla tamamlandı.

Pirinç. 1. Sistem istisnalarını işlerken SQLCODE ve SQLERRM kullanma

Oracle veritabanı yöneticileri ve programcıları, çalışmalarında bazen veritabanının "yemin etmeye" başladığı ve çoğu zaman da tamamen net olmayan bir dilde karşılaştığıyla karşılaşırlar. Bu yazımızda Oracle Errors diline ve uyarı mesajlarına bakacağız. Tüm hatalar, kullanıcıların olup bitenleri hızlı bir şekilde yönlendirmesine ve durumu düzeltmek için önlemler almasına yardımcı olmak için büyük bölümler ve alt bölümler halinde gruplandırılmıştır. Bu yazıda gruplara bakacağız. ilk bin Oracle hatası(aralıklara göre 0'dan 999'a kadar kodlar) ve görünümlerinin nedenlerini, bunları düzeltmek için bir eylem önerisiyle açıklayın. Hatanın formatı "ORA-xxxxx" şeklindedir. Başlangıçta "ORA" ön eki gelir ve ardından kısa çizgi boyunca beş basamaklı bir hata kodu gelir.

Oracle Hata Grupları

Hata Mesajları ORA-00000 - ORA-00099

ORA-00000 mesajları normaldir, başarılı bir şekilde tamamlanır, yani bir hata değildir.

Metodolojik Çekirdek Erişim Hataları 0001-0049

  • ORA-00001: dizinde yinelenen anahtar
  • ORA-00017: maksimum çağrı sayısı aşıldı
  • ORA-00018: maksimum oturum sayısı aşıldı
  • ORA-00019: oturum sayısı lisans sayısını aştı
  • ORA-00020: maksimum işlem sayısı (sayı) aşıldı
  • ORA-00021 oturumu başka bir işlem tarafından kullanılıyor. oturum değiştirme
  • ORA-00022: geçersiz oturum kimliği. Giriş reddedildi
  • ORA-00023: Oturum özel bellek referansları içeriyor. Oturumun bağlantısı kesilemiyor
  • ORA-00024: tek kullanıcı modunda birden fazla işleme bağlantı yasaklandı
  • ORA-00025: [dize] yerleştirilemez
  • ORA-00026: eksik veya geçersiz oturum kimliği
  • ORA-00027: mevcut oturum kapatılamıyor
  • ORA-00028: oturumunuz yok edildi
  • ORA-00029: oturum bir kullanıcı oturumu değil
  • ORA-00030: belirtilen kimliğe sahip kullanıcı oturumu mevcut değil
  • ORA-00031: oturum imha için işaretlendi
  • ORA-00032: geçersiz oturum taşıma parolası
  • ORA-00033: boş taşıma parolasıyla geçerli oturum
  • ORA-00034: geçerli PL/SQL oturumunda COMMIT veya ROLLBACK yapılamıyor
  • ORA-00035: LICENSE_MAX_USERS değeri, mevcut kullanıcı sayısından az olamaz
  • ORA-00036: SQL özyinelemesinin maksimum düzeyine (değerine) ulaşıldı
  • ORA-00037: oturum başka bir sunucu grubuna geçilemiyor
  • ORA-00038: Oturum oluşturulamıyor. Sunucu grubu başka bir kullanıcıya ait

ENQ hataları 0050-0080

  • ORA-00050: sıra alınırken işletim sistemi hatası
  • ORA-00051: kaynak zaman aşımına uğradı
  • ORA-00052: maksimum döndürülen kaynak sayısı aşıldı
  • ORA-00053: maksimum kuyruk sayısı aşıldı
  • ORA-00054: NOWAIT işaretçisine erişmekle meşgul kaynak
  • ORA-00055: maksimum DML kilidi sayısı aşıldı
  • ORA-00056: Kilitli bir nesneye bir DDL kilidi yerleştirildi
  • ORA-00057: maksimum geçici tablo kilidi sayısı aşıldı
  • ORA-00058: DB_BLOCK_SIZE, bağlanmakta olan veritabanına eşit olmalıdır
  • ORA-00059: DB_FILES parametre değeri aşıldı
  • ORA-00060: bir kaynak beklenirken bir kilitlenme oluştu
  • ORA-00061: farklı an, farklı DML_LOCK ayarlarına sahip
  • ORA-00062: Tüm tablodaki DML kilidi alınamıyor. DML_LOCKS ayarı boş
  • ORA-00063: LOG_FILES parametre değeri aşıldı
  • ORA-00064: nesne yerleştirilemiyor, işletim sistemi için çok büyük
  • ORA-00065: FIXED_DATE parametresini başlatma hatası
  • ORA-00066: LOG_FILES değerleri eşleşmiyor
  • ORA-00067: dize parametresi için geçersiz değer, bir dize olmalıdır
  • ORA-00068: dize parametresi için geçersiz değer, dize olmalıdır
  • ORA-00069: tablo kilitlenemiyor - [dize] üzerinde kilit reddedildi
  • ORA-00070: komut [dize] geçersiz
  • ORA-00071: işlem sayısı 1'den büyük olmalıdır:
  • ORA-00072: Belirtilen süreç etkin değil
  • ORA-00073: komut için geçersiz sayıda bağımsız değişken belirtildi
  • ORA-00074: tanımlı süreç yok
  • ORA-00075: süreç [dize] mevcut durumda bulunamadı
  • ORA-00076: [dize] dökümü bulunamadı
  • ORA-00077: Belirtilen döküm geçersiz
  • ORA-00078: isme göre döküm çözülemiyor
  • ORA-00079: [değer] değişkeni bulunamadı
  • ORA-00080: geçersiz bir bellek alanını boşaltma girişiminde bulunuldu
  • ORA-00081: belirtilen aralık geçerli değil
  • ORA-00082: bellek aralığı belirtilen aralıkta değil
  • ORA-00083: SGA muhtemelen bozuk
  • ORA-00084: Global Alan PGA, SGA veya UGA olmalıdır
  • ORA-00085: geçerli çağrı mevcut değil
  • ORA-00086: kullanıcı çağrısı mevcut değil
  • ORA-00087: komut uzak an üzerinde yürütülemez
  • ORA-00088: komut, paylaşılan sunucu tarafından yürütülemez
  • ORA-00089: ORADEBUG komutunda geçersiz örnek numarası
  • ORA-00090: ORADEBUG komutu, kümelenmiş bir veritabanında belleği doğru şekilde ayıramadı
  • ORA-00091: LARGE_POOL_SIZE belirtilmelidir
  • ORA-00092: LARGE_POOL_SIZE, LARGE_POOL_MIN_ALLOC değerinden büyük olmalıdır
  • ORA-00093: %s yanlış belirtildi
  • ORA-00094: %s bir Tamsayı değeri içermelidir
  • ORA-00096: [değer] parametresi için geçersiz [değer] değeri, aralık içinde olmalıdır
  • ORA-00097: SQL92 tarafından desteklenmeyen Oracle SQL özellikleri:
  • ORA-00099: Kaynak zaman aşımına uğradı. Potansiyel PDML kilitlenmesi

Bölge ve segment hataları ORA-00100 - ORA-00299

  • ORA-00100: veri bulunamadı
  • ORA-00101: DISPATCHERS sistem parametresinin geçersiz belirtimi
  • ORA-00102: Belirtilen ağ protokolü, dağıtıcılar tarafından kullanılamaz
  • ORA-00103: geçersiz ağ protokolü, dağıtıcılar tarafından kullanılmak üzere ayrılmış
  • ORA-00104: kilitlenme algılandı, mevcut tüm sunucular engellendi, kaynak bekleniyor
  • ORA-00105: çok fazla dağıtım programı yapılandırması
  • ORA-00106: dağıtıcıya bağlıyken veritabanı başlatılamaz veya durdurulamaz
  • ORA-00107: ORACLE dinleyici işlemine bağlanılamıyor
  • ORA-00108: gönderici eşzamansız bağlantıları kabul edecek şekilde yapılandırılamıyor
  • ORA-00111: geçersiz nitelik [dize]
  • ORA-00112: nitelik değeri boş
  • ORA-00113: protokol adı [dize] çok uzun
  • ORA-00114: SERVICE_NAMES sistem parametresi için geçersiz değer
  • ORA-00115: bağlantı kesildi, bağlantı tablosu dolu
  • ORA-00116: SERVICE_NAMES değeri geçersiz
  • ORA-00117: PROTOKOL, ADRES veya AÇIKLAMA belirtilmelidir
  • ORA-00118: yalnızca bir PROTOKOL, ADRES veya AÇIKLAMA değeri belirtilebilir
  • ORA-00119: geçersiz sistem parametre değeri
  • ORA-00120: dağıtıcıya izin verilmiyor veya kurulmadı
  • ORA-00121: SHARED_SERVERS, DISPATCHERS seçeneği olmadan tanımlandı
  • ORA-00122: ağ yapılandırması başlatılamıyor
  • ORA-00123: boşta paylaşılan sunucu
  • ORA-00124: MAX_SHARED_SERVERS olmadan DISPATCHERS belirtildi
  • ORA-00125: bağlantı sıfırlama; yanlış kanı
  • ORA-00126: bağlantı sıfırlama; çelişki
  • ORA-00127: gönderici mevcut değil
  • ORA-00128: komut, dağıtıcı adı gerektiriyor
  • ORA-00129: geçersiz dinleme adresi
  • ORA-00130: geçersiz dinleme adresi
  • ORA-00131: ağ protokolü belirtilen kaydı desteklemiyor
  • ORA-00132: sözdizimi hatası veya geçersiz ağ adı
  • ORA-00150: yinelenen işlem kimliği
  • ORA-00151: yinelenen işlem kimliği
  • ORA-00152: mevcut oturum, istenen oturumla eşleşmiyor
  • ORA-00153: XA kitaplığında hata
  • ORA-00154: işlem izlemede protokol hatası
  • ORA-00155: genel işlemin dışında iş yürütülemez
  • ORA-00160: genel işlem adı maksimum uzunluğu aşıyor
  • ORA-00161: işlem uzunluğu geçersiz
  • ORA-00162: harici veritabanı kimliği maksimum değeri aşıyor
  • ORA-00163: harici veritabanı adı maksimum değeri aşıyor
  • ORA-00164: taşınabilir dağıtılmış işlemlerin üstünde dağıtılmış özerk işlemlere izin verilmiyor
  • ORA-00165: uzak işlemlere sahip çevrimdışı taşınabilir dağıtılmış işlemlere izin verilmiyor
  • ORA-00200: kontrol dosyası oluşturulamadı
  • ORA-00201: kontrol dosyası sürümü [dize], ORACLE sürümü [dize] ile uyumlu değil
  • ORA-00202: kontrol dosyası: [dize]
  • ORA-00203: geçersiz kontrol dosyası kullanıldı
  • ORA-00204: kontrol dosyasında veri bloğu (blok [string], bloklar [string]) okunurken hata oluştu
  • ORA-00205: kontrol dosyası tanımlaması başarısız oldu. Daha fazla bilgi için günlüğe bakın
  • ORA-00206: kontrol dosyasına yazma hatası (blok [string], bloklar [string])
  • ORA-00207: kontrol dosyası bu veritabanından değil
  • ORA-00208: kontrol dosyalarının sayısı izin verilen değeri [dize] aşıyor
  • ORA-00209: kontrol dosyası veri bloğu eşleşmedi. Daha fazla bilgi için günlüğe bakın
  • ORA-00210: Belirtilen kontrol dosyası açılamıyor
  • ORA-00211: kontrol dosyası öncekiyle eşleşmiyor
  • ORA-00212: blok boyutu [dize], gereken minimum [dize] değerinden küçük
  • ORA-00213: kontrol dosyası yeniden kullanılamaz, dosya boyutu %1: %2 gerekli:
  • ORA-00214: kontrol dosyası sürümü, dosya sürümüyle uyumlu değil
  • ORA-00215: en az bir kontrol dosyası olmalı
  • ORA-00216: 8.0.2'den taşıma için kontrol dosyası boyutu değiştirilemez:
  • ORA-00217: kontrol dosyası boyutu 9.0.1'den geçiş yapmak için değiştirilemez:
  • ORA-00218: kontrol dosyalarının veri bloğu boyutu, DB_BLOCK_SIZE tarafından belirtilen boyutla eşleşmiyor
  • ORA-00219: kontrol dosyası boyutu ayarlanan boyutu aşıyor
  • ORA-00220: kontrol dosyası eklenemedi, daha fazla ayrıntı için uyarı günlüğüne bakın
  • ORA-00221: kontrol dosyasına yazma hatası
  • ORA-00222: işlem, önceden bağlanmış bir kontrol dosyasının adını kullanmaya çalışıyor
  • ORA-00223: Dönüştürülen dosya geçersiz veya yanlış sürüme sahip
  • ORA-00224: kontrol dosyası yanlış kayıt türüyle yeniden boyutlandırılamadı
  • ORA-00225: [dize] kontrol dosyasının beklenen boyutu [dize] gerçek boyutundan farklı
  • ORA-00226: alternatif kontrol dosyası açıkken işlem mümkün değil
  • ORA-00227: kontrol dosyasında bozuk veri bloğu bulundu (blok [dize] blokları [dize]).
  • ORA-00228: alternatif kontrol dosyası adının uzunluğu izin verilen değeri [dize] aşıyor
  • ORA-00229 işlemi reddedildi. Anlık görüntü dosyası zaten kuyruğa alındı ​​ve işleniyor.
  • ORA-00230 işlemi reddedildi. Kontrol dosyası anlık görüntü kuyruğu mevcut değil
  • ORA-00231: kontrol dosyası anlık görüntüsü adlandırılmamış
  • ORA-00232: kontrol dosyası anlık görüntüsü mevcut değil, bozuk veya okunamıyor
  • ORA-00233: kontrol dosyası kopyası bozuk veya okunamıyor
  • ORA-00234: anlık görüntüyü belirleme veya açma ya da kontrol dosyasını kopyalama hatası
  • ORA-00235: paralel değişiklik için kontrol dosyası engellendi
  • ORA-00236: anlık görüntü iptal edildi, geri dönüş kontrol dosyası seçildi
  • ORA-00237: anlık görüntü işlemine izin verilmiyor. Yeni bir kontrol dosyası oluşturuldu
  • ORA-00238: işlem, dosya adını veritabanı adı olarak kullanmaya çalışıyor
  • ORA-00250: arşivleyici çalışmıyor
  • ORA-00251: LOG_ARCHIVE_DUPLEX_DEST, %1 ile aynı dizin olamaz:
  • ORA-00252: günlük boş. Arşivleme mümkün değil
  • ORA-00253: belirtilen dizenin uzunluğu sınırı aşıyor
  • ORA-00254: arşiv kontrol satırında hata
  • ORA-00255: günlük dosyası arşivlenirken hata oluştu
  • ORA-00256: Bir arşiv dizesi ayrıştırılırken bir hata oluştu
  • ORA-00257: arşivleyici hatası. Kaynak meşgulken bağlanamıyorum
  • ORA-00258: NOARCHIVELOG günlüğünde manuel arşivleme belirtilmelidir
  • ORA-00259: açık örnek günlüğü geçerli günlük ve arşivlenemez
  • ORA-00260: iş parçacığı [dize] için etkin kuyruk günlüğü [dize] bulunamıyor
  • ORA-00261: günlük değiştirildi veya arşivlendi
  • ORA-00262: mevcut günlük [dize] başka bir iş parçacığı [dize] ile meşgul, geçiş yapılamaz
  • ORA-00263: [dize] akışı için arşivlenecek günlük yok
  • ORA-00264: geri yükleme gerekli değil
  • ORA-00265: Anlık kurtarma gerekli, ancak ARCHIVELOG modu ayarlanabilir
  • ORA-00266: arşiv günlüğü adı gerekli
  • ORA-00267: arşiv günlüğü adı gerekli değil
  • ORA-00268: Belirtilen günlük dosyası mevcut değil
  • ORA-00269: Belirtilen günlük dosyası [dize] akışının parçası değil [dize]
  • ORA-00270: arşiv günlüğü [dizesi] oluşturulurken hata oluştu
  • ORA-00271: arşivlenecek günlük yok
  • ORA-00272: arşiv günlüğüne yazarken hata [dize]
  • ORA-00273: Günlüğe kaydetmeden doğrudan yüklenen verileri geri yükleme
  • ORA-00274: geçersiz kurtarma parametre değeri [değer] belirtildi
  • ORA-00275: kurtarma prosedürü zaten başladı
  • ORA-00276: CHANGE anahtar sözcüğü belirtildi ancak değişiklik numarası belirtilmedi
  • ORA-00277: geçersiz geri yükleme seçeneği UNTIL bayrağı [dize]
  • ORA-00278: günlük dosyası [dize] artık kurtarma için gerekli değil
  • ORA-00279: günlük dosyası adı gerekli
  • ORA-00280: gerekli akış ve sıra adı
  • ORA-00281: dağıtım programı kullanılarak geri yükleme gerçekleştirilemez
  • ORA-00282: UPI çağrısı desteklenmiyor, ALTER DATABASE RECOVER kullanın
  • ORA-00283: hatalar nedeniyle geri yükleme oturumu iptal edildi
  • ORA-00284: kurtarma oturumu devam ediyor
  • ORA-00285: geçersiz TIME değeri
  • ORA-00286: kullanılabilir dosya veya geçerli veri dosyası yok
  • ORA-00287: belirtilen [dize] değişiklik numarası [dize] akışında bulunamadı
  • ORA-00288: kurtarmaya devam etmek için ALTER DATABASE RECOVER CONTINUE kullanın
  • ORA-00289: değişken [değer]
  • ORA-00290: İşletim sistemi hatası. Aşağıdaki hata mesajına bakın
  • ORA-00291: PARALEL sayısal bir değer gerektiriyor
  • ORA-00292: paralel geri yükleme bileşeni yüklenmedi
  • ORA-00293: kontrol dosyası yeniden günlükle senkronize değil
  • ORA-00294: arşiv günlüğü [dizesi] için geçersiz biçim belirtildi
  • ORA-00295: geçersiz veri/geçici veri dosyası numarası [dize], 1 ile [dize] arasında olmalıdır
  • ORA-00296: RECOVER DATAFILE LIST değeri aşıldı
  • ORA-00297: RECOVER DATAFILE LIST'i RECOVER DATAFILE BAŞLATMADAN önce belirtmek için gerekli
  • ORA-00298: eksik veya geçersiz nitelik değeri
  • ORA-00299: %1 veri dosyasının dosya düzeyinde geri yüklenmesi

Veritabanı G/Ç yönetim hataları ORA-00300 - ORA-00399

Oracle veritabanına giriş ve çıkış yönetimindeki hatalar:

  • ORA-00300: Geçersiz yineleme günlüğü blok boyutu, belirtilen boyut [dize], boyut sınırını [dize] aşıyor
  • ORA-00301: günlük dosyası [dize] eklenirken hata - dosya oluşturulamadı
  • ORA-00302: yineleme dosyalarının sayısı için sınır aşıldı
  • ORA-00303: Paralel Yineleme yürütülemiyor
  • ORA-00304: istenen INSTANCE_NUMBER meşgul
  • ORA-00305: iş parçacığının [dize] günlüğü tutarsız ve başka bir veritabanına ait
  • ORA-00306: an sınırına ulaşıldı [dize]
  • ORA-00307: istenen INSTANCE_NUMBER aralık dışında, maks [dize]
  • ORA-00308: arşiv günlüğü [dize] açılamıyor
  • ORA-00309: günlük başka bir veritabanına ait
  • ORA-00310: arşivlenmiş günlük [dize] dizisini içeriyor; gerekli sıra [değer]
  • ORA-00311: Arşiv günlüğü başlığı okunamıyor
  • ORA-00312: mevcut günlük [dize] iş parçacığı [dize]
  • ORA-00313: günlük grubu dosyası [dize] akışı [dize] açılırken hata oluştu
  • ORA-00314: günlük [dize], beklenen sıra [dize], [dize] ile eşleşmiyor
  • ORA-00315: günlük [dize] akışı [dize], başlıkta geçersiz değer [dize]
  • ORA-00316: günlük [dize], başlıktaki [dize] değeri bunun bir günlük dosyası olmadığını gösteriyor
  • ORA-00317: belirtilen dosya [dize] bir günlük dosyası değil
  • ORA-00318: günlük [dize] izin verilen boyutu aştı [dize], [dize] ile eşleşmiyor
  • ORA-00319: günlük [dize] hatalı temizleme durumuna sahip
  • ORA-00320: [dize] akışının dosya başlığı [dizesi] okunamıyor
  • ORA-00321: Günlük dosyası başlığı [dize] akışındaki [dize] veriler güncellenemiyor
  • ORA-00322: iş parçacığının [dizesi] günlüğü geçerli kopya değil
  • ORA-00323: mevcut akış günlüğü [dize] kullanılamaz ve diğerlerinin tümünün arşivlenmesi gerekiyor
  • ORA-00324: günlük dosyası adı [dize] çevrildi [dize] çok uzun, sınır [dize] aşıldı
  • ORA-00325: akış arşiv günlüğü [dize] geçersiz başlık değeri [dize] içeriyor
  • ORA-00326: günlük [dize] ile başlıyor, önceden değiştirilen [dize] gerekli
  • ORA-00327: [dize] akışının [dize] günlüğü, gereken [dize] değerinden daha az fiziksel boyuta [dize] sahip
  • ORA-00328: arşivlenen günlük [dize] ile bitiyor, daha sonra değişiklik gerekli [dize]
  • ORA-00329: arşivlenen günlük [dize] ile başlıyor, [dize] değiştirilmesi gerekiyor
  • ORA-00330: arşiv günlüğü [dize] ile bitiyor, değişiklik gerekli [dize]
  • ORA-00331: günlük sürümü [dize], ORACLE sürümü [dize] ile uyumlu değil
  • ORA-00332: arşiv günlüğü çok küçük, muhtemelen tam olarak arşivlenmemiş
  • ORA-00333: mevcut [dize]'den [dize] hatalı blokları oku günlüğü yeniden yap
  • ORA-00334: arşiv günlüğü [dize]
  • ORA-00335: günlük kullanılabilir [dize]: Bu numarayla günlük yok, günlük yok
  • ORA-00336: günlük dosyası blok boyutu, minimum blok boyutundan [dize] küçük
  • ORA-00337: günlük dosyası [dize] mevcut değil ve boyut belirtilmedi
  • ORA-00338: günlük [dize] son ​​kontrol dosyası değerinden büyük
  • ORA-00339: arşivlenen günlük herhangi bir yeniden deneme içermiyor
  • ORA-00340: iş parçacığının [dize] günlüğü [dizesi] işlenirken G/Ç hatası
  • ORA-00341: günlük dosyası [dize] geçersiz başlık numarasına sahip [dize]
  • ORA-00342: arşiv günlüğü hiçbir SCN bilgisi içermiyor [dize]
  • ORA-00343: çok fazla hata, günlük kapatıldı
  • ORA-00344: kullanılabilir günlük [dize] yeniden oluşturulamıyor
  • ORA-00345: günlüğü yeniden yazmak için yazarken hata, [dize] toplamını [dize] engelle
  • ORA-00346: günlük güncel değil olarak işaretlendi (STALE)
  • ORA-00347: [dize] iş parçacığının [dize] günlüğü [dize] blok boyutuna sahip, eşleşmiyor, [dize] olmalıdır
  • ORA-00348: kurtarma işlemi yeniden başarısız oldu, an durdurulmalı
  • ORA-00349: [string] için blok boyutu alınamadı
  • ORA-00350: anının [dize] günlüğünün (akış [dize]) arşivlenmesi gerekiyor
  • ORA-00351: geçersiz kurtarma süresi
  • ORA-00352: [dize] akışındaki tüm günlükler arşivlenmeli - izin verilemez
  • ORA-00353: bozuk günlük bloğu [dize] değişiklik [dize] zaman [dize]
  • ORA-00354: yeniden günlük blok başlığı bozuk
  • ORA-00355: numarayı sıra dışı değiştir
  • ORA-00356: geçersiz değişiklik açıklama uzunluğu
  • ORA-00357: günlük dosyası için çok fazla üye belirtildi, maks [dize]
  • ORA-00358: çok fazla üye belirtildi, maks [dize]
  • ORA-00359: günlük dosyası grubu [dize] mevcut değil
  • ORA-00360: Günlük dosyasının üyesi değil: [string]
  • ORA-00361: [dize] grubundan son günlük [dize] kaldırılamaz
  • ORA-00362: gerekli üye, [dize] grubunda geçerli bir günlük dosyasıdır
  • ORA-00363: günlük arşivlenmedi
  • ORA-00364: yeni günlük başlığına yazılamıyor
  • ORA-00365: Belirtilen günlük geçersiz
  • ORA-00366: Günlük [dize] akışı [dize], dosya başlığında sağlama toplamı hatası
  • ORA-00367: dosya başlığında sağlama toplamı hatası
  • ORA-00368: tekrar günlük bloğunda sağlama toplamı hatası
  • ORA-00369: iş parçacığının [dize] geçerli günlüğü bozuk ve diğer günlük temizlendi
  • ORA-00371: paylaşılan havuzda yeterli bellek yok, en az [dize] olmalıdır
  • ORA-00372: [dize] dosyası şu anda değiştirilemez
  • ORA-00373: açık günlük sürümü [dize], ORACLE sürümü [dize] ile uyumlu değil
  • ORA-00374: db_block_size=[değer] parametresinin değeri geçersiz; [değer..değer] aralığında bileşik olmalıdır
  • ORA-00375: db_block_size varsayılan değeri alınamıyor
  • ORA-00376: [dize] dosyası şu anda okunamıyor
  • ORA-00377: [string] dosyasının sık yedeklenmesi, yazma işlemlerinde kilitlenmeye neden oluyor
  • ORA-00378: arabellek önbelleği belirtildiği gibi oluşturulamadı
  • ORA-00379: [dize]K bloğu için [dize] arabellek önbelleğinde boş arabellek yok
  • ORA-00380: db_[değer]k_cache_size [değer]K belirtilemez, standart blok boyutudur.
  • ORA-00381: arabellek önbellek boyutunu belirtmek için eski ve yeni seçenekler kullanılamaz
  • ORA-00382: %s geçersiz blok boyutu, geçerli değer [str..value]
  • ORA-00383: önbellek varsayılan değeri sıfıra indirgenemez
  • ORA-00384: önbelleği büyütmek için yeterli bellek yok
  • ORA-00390: iş parçacığının [dizesi] günlüğü temizlendi ve geçerli günlük olamaz
  • ORA-00391: bundan sonra tüm diziler yeni günlük biçimine geçmelidir
  • ORA-00392: iş parçacığının [dizesi] günlüğü temizlendi, işleme izin verilmedi
  • ORA-00393: çevrimdışı bir veritabanını geri yüklemek için [dize] iş parçacığının [dizesi] günlüğü gerekli.
  • ORA-00394: arşivleme sırasında kullanılabilir günlük yeniden kullanılır
  • ORA-00395: veritabanı klonu günlüğü yeniden adlandırılmalı
  • ORA-00396: [dize] hatası, tek geçişli geri yüklemeye geri alma gerektiriyor
  • ORA-00397: an geri yüklemesi hatayla durduruldu
  • ORA-00398: uygun yeniden yapılandırmadan önce geri yükleme iptal edildi
  • ORA-00399: yineleme günlüğü değişikliklerinin bozuk açıklaması

Veritabanı başlatma hataları ORA-00400 - ORA-00499

  • ORA-00400: [dize] parametresi için geçersiz [dize] değeri
  • ORA-00401: [değer] parametresinin değeri bu sürüm tarafından desteklenmiyor
  • ORA-00402: [dize] sürümünün veritabanı değişiklikleri, [dize] sürümü tarafından kullanılamaz
  • ORA-00403: [dize], [dize]'nin diğer örnekleriyle aynı değil
  • ORA-00404: Dönüştürülen dosya bulunamadı: [string]
  • ORA-00405: uyumluluk türü [dize]
  • ORA-00406: UYUMLU seçeneği [dize] veya daha yüksek bir değer gerektiriyor
  • ORA-00407: [dize].[dize] sürümünden [dize] sürümüne geri alma yükseltmesi.[dize]'ye izin verilmiyor
  • ORA-00408: parametre değeri [dize] TRUE olarak ayarlandı
  • ORA-00436: Oracle lisanslı değil. Yardım için Oracle Corporation ile iletişime geçin
  • ORA-00437: Oracle gelişmiş özellikleri lisanslı değil. Yardım için Oracle Corporation ile iletişime geçin
  • ORA-00438: seçenek [dize] ayarlanmadı
  • ORA-00439: isteğe bağlı özelliğe izin verilmez: [dize]
  • ORA-00443: arka plan işlemi [dize] çalışmıyor
  • ORA-00444: arka plan işlemi [dize] başlangıçta başarısız oldu
  • ORA-00445: [dize] saniye geçtikten sonra arka plan işlemi [dize] başlamadı
  • ORA-00446: beklenmediğinde arka plan işlemi başlatıldı
  • ORA-00447: arka plan işleminde kritik hata
  • ORA-00448: bir arka plan işleminin normal sonlandırılması
  • ORA-00449: arka plan işlemi [dize], [dize] hatasıyla aniden sonlandırıldı
  • ORA-00470: LGWR işleminden bir hatayla çıkıldı
  • ORA-00471: DBWR işleminden bir hatayla çıkıldı
  • ORA-00472: pmon işleminden bir hatayla çıkıldı
  • ORA-00473: ARCH işleminden bir hatayla çıkıldı
  • ORA-00474: smon işleminden bir hatayla çıkıldı
  • ORA-00475: TRWR işleminden bir hatayla çıkıldı
  • ORA-00476: RECO işleminden bir hatayla çıkıldı
  • ORA-00477: SNP* işleminden bir hatayla çıkıldı
  • ORA-00478: smon işleminden [dize] hatasıyla çıkıldı
  • ORA-00480: LCK* işleminden hatayla çıkıldı
  • ORA-00481: LMON işleminden bir hatayla çıkıldı
  • ORA-00482: LMD* işleminden bir hatayla çıkıldı
  • ORA-00483: kapatma sırasında işlem anormal şekilde sonlandırıldı
  • ORA-00484: LMS* işleminden bir hatayla çıkıldı
  • ORA-00485: DIAG işleminden [dize] hatasıyla çıkıldı

Hata Mesajları ORA-00500 - ORA-00599

  • ORA-00568: maksimum işleyici kesintisi sayısı aşıldı

Olağanüstü durum kurtarma hataları ORA-00600 - ORA-00699

  • ORA-00600: Dahili hata kodu, bağımsız değişkenler [değer], [değer], [değer], [değer], [değer], [değer], [değer], [değer]
  • ORA-00601: ağ kilidi çakışması
  • ORA-00602: dahili yazılım istisnası
  • ORA-00603: Oracle sunucu oturumu kritik bir hatayla sonlandırıldı
  • ORA-00604: özyinelemeli SQL düzeyinde [dize] hata oluştu
  • ORA-00606: dahili hata kodu
  • ORA-00607: Veri bloğu değiştirilirken dahili hata

Sözlük hataları ORA-00700 - ORA-00799

  • ORA-00701: veritabanını başlatmak için gerekli nesne değiştirilemez
  • ORA-00702: yükleyici sürümü [dize], sürüm [dize] ile uyumlu değil
  • ORA-00703: maksimum an satır önbellek kilidi sayısı aşıldı
  • ORA-00704: önyükleme işlemi anormal şekilde sona erdi
  • ORA-00705: başlatma sırasında geçersiz durum; örneği durdur ve yeniden başlat
  • ORA-00706: dosya biçimi [dize] değiştirilirken hata oluştu

Genel ORACLE hataları ORA-00800 - ORA-00899

  • ORA-0800: arabellek yazma işlemi etkin değil(ara belleğe yazma işlemi aktif değildir).
    Neden: Sorun, arabelleğe yazma işleminin kaldırılmasına neden olan ORACLE'ı başlatma girişimi ile ilgilidir. Tipik olarak, bu mesaj, hatanın nedenini açıklayan bir sistem hata mesajı ile birlikte verilir.
    Aksiyon: Hatanın nedenini bulmak için sistem hata mesajını (varsa) kullanın. Sistem hatası yoksa, gereksinimlerin listesi için ORACLE Kurulum Kılavuzuna bakın. Tüm ORACLE mantıksal adlarının doğru olduğundan, ORACLE dizininde yeterli boş disk alanı olduğundan ve yeterli genel bölüm ve sayfa olduğundan emin olun. Ayrıca ORACLE bütçesinin gerekli önceliğe sahip olduğundan emin olun. Sorunun kaynağı belirlenmezse, uygun kurulum yazılımına bakın.
  • ORA-0801: görüntüden sonra yazma işlemi etkin değil
    Neden: Bu özellik desteklenmiyor.
    Aksiyon: Lütfen ilgili kurulum yazılımına bakın.
  • ORA-0802: geçersiz bağlam alanı
    Neden
    Aksiyon
  • ORA-0805: opiodr: tutarsız özyineleme düzeyi numarası
    Neden:Bu, normal çalışma sırasında oluşamayan dahili bir hata mesajıdır.
    Aksiyon: Sorunun ayrıntılı açıklaması için lütfen ilgili kurulum yazılımına bakın.
  • ORA-0806: öncesi görüntü işlemi etkin değil
    Neden
    Aksiyon
  • ORA-0807: temizleme işlemi etkin değil
    Neden: Sorun, ORACLE'ı başlatma girişimi ile ilgilidir ve bu, önizleme işleminin iptal edilmesine neden olur.Genellikle bu mesaj, hatanın nedenini açıklayan bir sistem hata mesajı ile birlikte verilir.
    Aksiyon: Hatanın nedenini bulmak için sistem hata mesajını (varsa) kullanın. Sistem hatası yoksa, doğru kurulumu doğrulamak için işletim sisteminizin ORACLE kurulum kılavuzuna bakın. Sorunun kaynağı belirlenmezse, uygun kurulum yazılımına bakın.
  • ORA-0809: opispf: geçersiz özel fonksiyon kodu.
    Neden:Bu, normal çalışma sırasında oluşamayan dahili bir hata mesajıdır.
    Aksiyon: Sorunun ayrıntılı açıklaması için lütfen ilgili kurulum yazılımına bakın.
  • ORA-0810: opiomc: bağlam alanı orijinal adreslerde yeniden eşlenmedi
    Neden:Bu, normal çalışma sırasında oluşamayan dahili bir hata mesajıdır.
    Aksiyon: Sorunun ayrıntılı açıklaması için lütfen ilgili kurulum yazılımına bakın.
  • ORA-0811: okuma işlemi aktif değil
    Neden: Sorun, ORACLE'ı başlatma girişimiyle ilgili olup, bu da ileri okuma işleminin iptal edilmesine neden olmuştur. Tipik olarak, bu mesaj, hatanın nedenini açıklayan bir sistem hata mesajı ile birlikte verilir.
    Aksiyon: Hatanın nedenini bulmak için sistem hata mesajını (varsa) kullanın. Sistem hatası yoksa, doğru kurulumu doğrulamak için işletim sisteminizin ORACLE kurulum kılavuzuna bakın. Sorunun kaynağı belirlenmezse, uygun kurulum yazılımına bakın.
  • ORA-0813: onaylama hatası (ek kaldırıldı).
    Neden:Bu, ORACLE SIRALAMA ile ilgili dahili bir hata mesajıdır. Bu normal çalışma sırasında olamaz.
    Aksiyon: Sorunun ayrıntılı açıklaması için lütfen ilgili kurulum yazılımına bakın.
  • ORA-0814: ltbdrv: geçersiz kilit modu
    Neden:Bu, normal çalışma sırasında oluşamayan dahili bir hata mesajıdır.
    Aksiyon: Sorunun ayrıntılı açıklaması için lütfen ilgili kurulum yazılımına bakın.
  • ORA-00816: hata mesajı çevirisi başarısız oldu
    Neden:Bu, normal çalışma sırasında oluşamayan dahili bir hata mesajıdır.
    Aksiyon: Sorunun ayrıntılı açıklaması için lütfen ilgili kurulum yazılımına bakın.
  • ORA-0817: prsgkw: dahili hata belirteci bulunamadı
    Neden:Bu, normal çalışma sırasında oluşamayan dahili bir hata mesajıdır.
    Aksiyon: Sorunun ayrıntılı açıklaması için lütfen ilgili kurulum yazılımına bakın.
  • ORA-0818: opispf: osf çok büyük
    Neden:Bu, normal çalışma sırasında oluşamayan dahili bir hata mesajıdır.
    Aksiyon: Sorunun ayrıntılı açıklaması için lütfen ilgili kurulum yazılımına bakın.

Sözdizimi hataları ORA-00900 - ORA-00999

  • ORA-00900: geçersiz SQL ifadesi.
    Neden: Girdiğiniz ifade geçerli bir SQL komutu olarak tanınmadı.
    Aksiyon: Yazım hatalarını kontrol edin, SQL komut anahtar sözcüklerinin şu sözcüklerden biriyle başladığından emin olun: ALTER, AUDIT, CREATE, DELETE, DROP, GRANT, INSERT, NOAUDIT, RENAME, REVOKE, SELECT, UPDATE, LOCK, VALIDATE. Diğer komutlar bu hataya neden olur.
  • ORA-00901: geçersiz CREATE komut sözdizimi / Geçersiz oluşturma komutu.
    Neden: CREATE komutunda geçersiz bir CREATE seçeneği kullanılmış.
    Aksiyon: Yazım hatası olup olmadığını kontrol edin, CREATE komutunun ardından aşağıdaki seçeneklerden birinin geldiğinden emin olun: INDEX, PARTITION, SPACE DEFINITION, EŞANLAM, TABLO veya GÖRÜNÜM.
  • ORA-00902: geçersiz veri türü.
    Neden: CREATE veya ALTER TABLE deyiminde girilen veri türü geçerli değil.
    Aksiyon: Yazım hatalarını kontrol edin, her sütun adının ardından aşağıdaki veri türlerinden birinin geldiğinden emin olun: VERİ, KÖPRÜ, SAYI, RAW, LONG veya LONG RAW.
  • ORA-00903: geçersiz tablo adı.
    Neden: Girilen tablo veya grup adları mevcut değil veya geçersiz. Bu mesaj, ALTER/DROP CLUSTER komutunda geçersiz veya var olmayan bir grup adı belirtilmişse de görünür.
    Aksiyon: Yazım hatası olup olmadığını kontrol edin. Geçerli bir grup adı bir harfle başlamalı ve yalnızca harfler, sayılar ve özel karakterler içermelidir: $, # ve _. Ad 30 karakterden uzun olmamalı ve ayrılmış bir kelime olmamalıdır.
  • ORA-00904: geçersiz sütun adı.
    Neden: Girilen sütun adı eksik veya geçersiz.
    Aksiyon: Geçerli bir sütun adı girin. Geçerli bir ad bir harfle başlamalı ve yalnızca harfler, sayılar ve özel karakterler içermelidir: $, # ve _. Ad 30 karakterden uzun olmamalı ve ayrılmış bir kelime olmamalıdır. Başka karakterler içeriyorsa, çift tırnak içinde olmalıdır.
  • ORA-00905: eksik anahtar sözcük.
    Neden: Gerekli anahtar kelime atlanmıştır.
    Aksiyon: Komut söz dizimini kontrol edin ve eksik anahtar sözcükleri ekleyin.
  • ORA-00906: sol parantez eksik.
    Neden: Gerekli sol parantez atlandı. Temel komutlar (CREATE TABLE, CREATE CLUSTER ve INSERT gibi), parantez içine alınmış bir öğe listesi gerektirir. WHERE yan tümcesindeki ve UPDATE tablosu SET sütunundaki = (SELECT ...) dizilerin etrafında parantezler de gereklidir.
    Aksiyon: Komutun sözdizimini kontrol edin ve eksik parantezleri ekleyin.
  • ORA-00907: sağ parantez eksik
    Neden: Sol parantez kapatılan sağ parantez olmadan girildi veya önceki bilgiler parantez içine alındı. Tüm parantezler eşleştirilmelidir.
    Aksiyon: Bir kapatma sağ ayracı yerleştirin.
  • ORA-00908: NULL anahtar sözcüğü eksik
    Neden: CREATE veya ALTER TABLE ifadelerinde, bu sütunda boş değerlere izin verilmediğini, ancak NULL anahtar sözcüğünün atlandığını belirtmek için NOT tanıtıldı.
    Aksiyon: Bu sütunda bir değere ihtiyacınız varsa, NOT anahtar sözcüğünü NOT NULL ile değiştirin.
  • ORA-00909: geçersiz sayıda bağımsız değişken
    Neden: Yerleşik bir ORACLE işlevine başvuru yanlış sayıda argümanla yapıldı.SYSDATE dışındaki tüm ORACLE işlevleri en az bir argüman gerektirir.
    Aksiyon: Komut sözdizimini kontrol edin ve gerekli sayıda bağımsız değişkeni girin.
  • ORA-00910: belirtilen uzunluk CHAR sütunu için çok büyük
    Neden: Karakter alanı boyutu belirtilmemiş veya yanlış belirtilmiş. Her bir karakter sütunu için maksimum uzunluk belirtmelisiniz.Bu uzunluk 0: ile 240: arasında değerler alabilir.
    Aksiyon: 0 ile 240 arasında maksimum uzunluğu girin: .
  • ORA-00911: geçersiz karakter
    Neden: Özel karakter geçersiz veya yalnızca belirli yerlerde geçerlidir. Bir isimde özel bir karakter ($, # ve _ dışında) kullanılıyorsa ve isim çift tırnak ("") içine alınmıyorsa, bu mesaj görünecektir.
    Aksiyon: Komuttan geçersiz karakteri kaldırın.
  • ORA-00912: yığında işlenen olmadan işlenen pop işlemi
    Neden: Bu, normal çalışma sırasında oluşamayan dahili bir hata mesajıdır.
    Aksiyon: Sorunun ayrıntılı açıklaması için lütfen ilgili kurulum yazılımına bakın.
  • ORA-00913: çok fazla değer
    Neden: Komut, iki özdeş değer kümesini varsayar, ancak ikinci küme, birinciden daha fazla öğeye sahiptir. Örneğin: WHERE veya HAVING yan tümcesindeki bir alt sorgunun çok fazla sütunu olabilir veya bir VALUES ya da SELECT yan tümcesinde INSERT yan tümcesinden daha fazla sütun olabilir.
    Aksiyon: Öğe sayısını kontrol edin ve değiştirin.
  • ORA-00914: eksik ADD anahtar sözcüğü
    Neden: ALTER PARTITION komutu, ADD anahtar sözcüğü olmadan girildi.
    Aksiyon: komutun sözdizimini kontrol edin ve yeniden deneyin.
  • ORA-00915: sözlük tablosunun ağ erişimine şu anda izin verilmiyor
    Neden:Bu, normal çalışma sırasında oluşamayan dahili bir hata mesajıdır.
    Aksiyon: Sorunun ayrıntılı açıklaması için lütfen ilgili kurulum yazılımına bakın.
  • ORA-00917: eksik virgül eksik virgül
    Neden: Bir sütun listesinde veya bir INSERT ifadesinde veya bir form listesinde ((c,d),(e) değerler listesinde virgül eksik< f),...).
    Aksiyon: SQL ifadenizdeki sözdizimini kontrol edin ve gerekirse eksik bir virgül ekleyin.
  • ORA-00918: sütun belirsiz bir şekilde tanımlanmış
    Neden: Birleştirme için kullanılan sütun birden fazla tabloda var. Katılırken, birden fazla tabloda bulunan herhangi bir sütun, tablo adını içermelidir. Sütun adı yalnızca EMP değil, TABLE.COLUM veya TABLE_ALIAS.COLUMN, EMP.DEPTNO veya E.DEPTNO olmalıdır.
    Aksiyon: Tablo adını, yukarıda gösterildiği gibi nokta veya alternatif tablo adından önce sütun adında girin.
  • ORA-00919: geçersiz işlev
    Neden: function(argüman) türündeki işlev benzeri girdi, ORACLE işlevi olarak tanınmadı.
    Aksiyon: Geçerli işlev adlarının listesi için kılavuza bakın.
  • ORA-00920: geçersiz ilişkisel işleç
    Neden: Geçersiz veya eksik koşul ifadesi ile arama görevi.
    Aksiyon: Geçerli bir koşullu ifade girin. Aşağıdaki ilişkisel ifadelere izin verilir: =, !=,<>, >, >=, <, <=,IN, IS, NULL, LIKE, и BETWEEN.
  • ORA-00921: SQL komutunun beklenmeyen sonu
    Neden: SQL komutu eksik. Geçerli bir komutun parçası girildi, ancak en az bir ana bileşen atlandı.
    Aksiyon: Komut sözdizimini kontrol edin ve eksik bileşenleri ekleyin.
  • ORA-00922: geçersiz seçenek
    Neden: Bir sütun tanımında veya bir alan tanımında geçersiz bir seçenek bildirildi.
    Aksiyon: Sütun veya alan tanımından geçersiz seçeneği kaldırın. Bir sütunu tanımlayan geçerli bir seçenek, sütunun NULL değerler içeremeyeceğini belirtmek için NULL DEĞİLDİR. Virgül veya parantez kapatma dışında, veri türünü izleyen diğer her şey geçersiz bir seçenek olarak sınıflandırılır. DATA veya LONG veri tipi için bir uzunluk tanımlarken bu hata mesajını alırsınız. Kapsam tanımı bildiriminde yalnızca aşağıdaki seçeneklere izin verilir: INITIAL, INCREMENT ve MAXEXTENTS, (VERİ SAYFALARI ve INDEXPAGES için) ve PCTFREE (yalnızca VERİ SAYFALARI için).
  • ORA-00923: FROM anahtar sözcüğü eksik
    Neden: Bir SELECT veya REVOKE deyiminde, FROM anahtar sözcüğü atlanmış, yanlış yerleştirilmiş veya yanlış yazılmış. FROM anahtar sözcüğü, SELECT deyiminde seçilen öğeyi veya REVOKE deyiminde seçilen tablo adını takip etmelidir.
    Aksiyon: FFROM kelimesini değiştirin. Seçilen listenin kendisi hatalı olabilir. Takma adı ve diğer adın ayrılmış bir kelime olup olmadığını içine almak için tek tırnak kullandığınızdan emin olun.
  • ORA-00924: BY anahtar sözcüğü eksik
    Neden: GROUP BY, ORDER BY veya CONNECTED BY ifadelerinde BY anahtar sözcüğü eksik. Ayrıca GRANT komutunda INDENTIFIED kelimesinden sonra BY gelmelidir.
    Aksiyon: BY kelimesini doğru girin.
  • ORA-00925: INTO anahtar sözcüğü eksik
    Neden: INTO anahtar sözcüğü olmadan bir INSERT komutu kullanıldı.
    Aksiyon: INSERT'i INSERT INTO ile değiştirin.
  • ORA-00926: VALUES anahtar sözcüğü eksik
    Neden: DEĞERLER veya SELECT anahtar sözcüğü olmadan INSERT ifadesi. Bir INSERT INTO ifadesinin ardından bir DEĞERLER veya SELECT dizisi gelmelidir.
    Aksiyon: INSERT INTO ifadesinden sonra bir DEĞERLER ifadesi veya dizisi yazın.
  • ORA-00927: eşit işaret eksik
    Neden: Aşağıdaki yerlerden birinde eşittir işareti eksik: * UPDATE komutunun SET deyiminde * after! CREATE INDEX komutunun PCTFREE ifadesinde eşitsizliği * belirtmek için
    Aksiyon: Eşittir işareti girin.
  • ORA-00928: SELECT anahtar sözcüğü eksik
    Neden: CREATE VIEW komutuna bir SEÇİM dizisi eklenmelidir.
    Aksiyon: CREATE VIEW komutuna gerekli SELECT ifadesini ekleyin.
  • ORA-00929: eksik nokta
    Neden:Bu, normal çalışma sırasında oluşamayan dahili bir hata mesajıdır.
    Aksiyon: Sorunun ayrıntılı açıklaması için lütfen ilgili kurulum yazılımına bakın.
  • ORA-00930: eksik yıldız işareti
    Neden:Bu, normal çalışma sırasında oluşamayan dahili bir hata mesajıdır.
    Aksiyon: Sorunun ayrıntılı açıklaması için lütfen ilgili kurulum yazılımına bakın.
  • ORA-00931: eksik tanımlayıcı
    Neden:Bu, normal çalışma sırasında oluşamayan dahili bir hata mesajıdır.
    Aksiyon: Sorunun ayrıntılı açıklaması için lütfen ilgili kurulum yazılımına bakın.
  • ORA-00932: tutarsız veri türleri tutarsız veri türü
    Neden: Bir veri alanına karakter alanı eklemeye çalışın. Veriler yalnızca sayısal alanlara eklenebilir.
    Aksiyon: Veri alanını eklemeden önce TO_NUMBER işlevini kullanarak bir karakter alanını sayısal alana dönüştürün.
  • ORA-00933: SQL komutu ve uygun şekilde sonlandırılmadı
    Neden: SQL komutu geçersiz ifadeyle sonlandırıldı. Örneğin: CREATE VIEW veya INSERT deyimine ORDER BY deyimi eklenebilir, ancak ORDER BY başka bir görünüm oluşturmak veya ana düzene dahil edilmek için kullanılmamalıdır.
    Aksiyon: Komut sözdizimini kontrol edin ve gereksiz bileşenleri kaldırın. Silinen ifadeleri diğer komutlarla çoğaltabilmeniz gerekir. Örneğin, gözden geçirme satırlarını sipariş etmek istiyorsanız, bir inceleme talep ederken olduğu gibi ilerleyin, ancak bir tane oluştururken olduğu gibi değil. Bu hata, satır devamı girintiliyse SQL*Forms kullanılırken de oluşabilir. Ofsetleri kontrol edin ve boşlukları kaldırın. Tek argümanlı bir I ifadesi kullanıyorsanız, uygun SQL sonlarını kullanmalısınız, örneğin: IN(X). IN ifadesi en az iki bağımsız değişken almalıdır.
  • ORA-00934: burada ayar işlevine izin verilmiyor
    Neden: WHERE veya GROUP BY yan tümcesinde grup işlevlerinden biri (AVG, SUM, MAX, MIN, COUNT gibi) kullanılmış.
    Aksiyon: WHERE veya GROUP BY yan tümcelerinden grup işlevini kaldırın.İstediğiniz sonucu, işlevi bir HAVING sorgusu ya da tümcesine dahil ederek elde edebilirsiniz.
  • ORA-00935: set işlevi çok derine yerleştirilmiş
    Neden:Bu, normal çalışma sırasında oluşamayan dahili bir hata mesajıdır.
    Aksiyon: Sorunun ayrıntılı açıklaması için lütfen ilgili kurulum yazılımına bakın.
  • ORA-00936: eksik ifade
    Neden: İfadenin gerekli kısmı atlandı. Örneğin, sütun listesi olmadan veya uyumsuz bir tür ifadesi (SAL+) ile bir SELECT komutu girilir. Bu, TABLO SEÇ gibi ayrılmış sözcükler atlandığında da olabilir.
    Aksiyon: Komut sözdizimini kontrol edin ve eksik komutları girin.
  • ORA-00937: tek bir grup kümesi işlevi yok
    Neden: Sütun ifadesi GROUP BY yan tümcesine dahil edilmediği sürece, bir sorguya hem grup işlevini (AVG, SUM,COUNT,MIN veya MAX) hem de özel bir sütun ifadesini aynı anda dahil edemezsiniz.
    Aksiyon: Sorgudan sütun ifadesini veya grup işlevini kaldırın veya sütun numaralandırması içeren bir GROUP BY yan tümcesi ekleyin.
  • ORA-00938: işlev için yeterli bağımsız değişken yok
    Neden: İşlevde çok az sayıda bağımsız değişken bildirildi.
    Aksiyon: İşlevin sözdizimini kontrol edin ve gerekli bağımsız değişkenleri ekleyin.
  • ORA-00939: işlev için çok fazla bağımsız değişken
    Neden: Fonksiyonun çok fazla argümanı var.
    Aksiyon: İşlevin sözdizimini kontrol edin ve yalnızca gerekli bağımsız değişkenleri açıklayın.
  • ORA-00940: geçersiz ARTER komutu ve geçersiz ALTER komutu
    Neden: Geçersiz ALTER seçeneği açıklandı. Yalnızca bölümler ve tablolar tekrarlanamaz. Geçerli bir ALTER komutu, aşağıdaki seçeneklerden biriyle başlamalıdır: ALTER TABLE veya ALTER PARTITION.
    Aksiyon Not: ALTER komutunun doğru yazımı için sözdizimini kontrol edin.
  • ORA-00941: eksik küme adı
    Neden: Grup adı eksik veya geçersiz.
    Aksiyon: Doğru grup adını tanımlayın. Geçerli bir grup adı bir harfle başlar, en fazla 30 karakter içerir ve yalnızca harflerden, rakamlardan ve $, _ ve # özel karakterlerinden oluşur. Ayrılmış bir kelime olmamalıdır. Ad, CREATE CLUSTER anahtar sözcüğünden hemen sonra yazdırılmalıdır.
  • ORA-00942: tablo veya görünüm mevcut değil
    Neden: Bu tablo veya genel bakış mevcut değil. veya tablo yerine bir görünüm adı girilir. Mevcut kullanıcı tabloları ve genel bakışlar, SEKME genel bakışında görüntülenebilir.
    Aksiyon: Yazım hatalarını ve tablo yerine bir inceleme adı girdiyseniz kontrol edin. Mevcut adları girin.
  • ORA-00943: küme mevcut değil
    Neden: Kullanıcı kaynağı, açıklanan ada sahip grupta yer almıyor.
    Aksiyon: CLUSTER anahtar sözcüğünden hemen sonra doğru grup adını açıklayın.
  • ORA-00944: kümelenmiş sütun sayısı yetersiz
    Neden: CREATE CLUSTER komutunda açıklanandan daha az gruplandırılmış sütun içeren bir tablo oluşturulmaya çalışıldı. CREATE TABLE komutunun CLUSTER ifadesi, grup oluşturulduğunda tanımlanan tüm gruplandırılmış sütunları açıklamalıdır. Grup adını kullanarak COL sözlük tablosundaki tüm grup sütunlarını görüntüleyebilirsiniz.
    Aksiyon: CREATE TABLE komutundaki tüm sütun adlarını açıklayın.
  • ORA-00945: belirtilen kümelenmiş sütun mevcut değil
    Neden: CREATE TABLE ifadesinin ifadesinde açıklanan sütun bu tablodaki bir sütun değil.
    Aksiyon: Tablo sütun adını kullanarak tekrarlayın.
  • ORA-00946: TO anahtar sözcüğü eksik
    Neden: GRANT komutu TO anahtar sözcüğü olmadan girildi veya bu komutun geçersiz bir biçimi kullanıldı.
    Aksiyon: GRANT komutunun iki ana formunun (veritabanı erişimi verme ve ayrıcalık verme) sözdizimini kontrol edin. GRANT komutuna TO anahtar sözcüğünü doğru şekilde ekleyin.
  • ORA-00947: yeterli değer yok
    Neden: SQL deyimi iki özdeş değer kümesi gerektirir ve ikinci küme daha az değer içerir. Bu, iç içe geçmiş bir SELECT WHERE veya HAVING ifadesinde aşağıdaki gibi daha az sütun bulursa da olabilir: WHERE(A,B) IN (SELECT C FROM..) INSERT deyiminde DEĞERLER veya SELECT, INSERT için aşağıdaki gibi yeterli değer içermiyor: INSERT INTO tablosu (A,B) DEĞERLER("C").
    Aksiyon: Her setin kuvvetini kontrol edin ve sayıları eşit yapın.
  • ORA-00948: ALTER CLUSTER deyimi artık desteklenmiyor
    Neden: ALTER CLUSTER ifadesi kaldırıldı
    Aksiyon: Bir tablodan veri eklemek için aşağıdaki SQL deyimlerini kullanın: CREATE TABLE<новая_таблица>SEÇ*FROM<старая_таблица>KÜME<имя_группы>DÜŞÜRMEK<старая_таблица>ve TABLOYU YENİDEN ADLANDIR<новая_таблица> <старая_таблица>.
  • ORA-00949: harici veritabanına geçersiz başvuru
    Neden:Bu, normal çalışma sırasında oluşamayan dahili bir hata mesajıdır.
    Aksiyon: Sorunun ayrıntılı açıklaması için lütfen ilgili kurulum yazılımına bakın.
  • ORA-00950: geçersiz bırakma seçeneği geçersiz DROP seçeneği
    Neden: DROP komutundan sonra TABLE, VIEW, SYNONYM, CLUSTER, SPACE gibi bir DROP seçeneği yoktu.
    Aksiyon: Komut sözdizimini kontrol edin ve DROP seçeneği için doğru formatı kullanın.
  • ORA-00951: küme boş değil
    Neden: DROP komutu, boş olmayan bir grubu tanımlar. Bir grup yalnızca tablo içermiyorsa silinebilir. DROP TABLE komutunu kullanarak bir gruptan bir tabloyu kaldırın.
    Aksiyon: Gruptaki tüm tabloları kaldırın ve ardından DROP CLUSTER komutunu kullanın.
  • ORA-00952: GROUP anahtar sözcüğü eksik
    Neden: Grup yanlış uygulanmış.
    Aksiyon: Kullanıcının herhangi bir işlem yapması gerekmez.
  • ORA-00953: eksik dizin adı
    Neden: CREATE, DROP, VALIDATE INDEX komutlarında dizin adı yanlış veya eksik.
    Aksiyon: INDEX anahtar sözcüğünden sonra doğru dizin adını yazın. Bir dizini silmek veya düzeltmek isterseniz, INDEXES genel bakışına bakarak adı kontrol edin. Yeni bir dizin oluşturmanız gerekiyorsa, önce sözdizimini kontrol edin.
  • ORA-00954: INDENTIFIED anahtar sözcüğü eksik
    Neden: GRANT CONNECTION komutu, INDENTIFIED anahtar sözcüğü olmadan verildi.
    Aksiyon: Kullanıcı adından sonra INDENTIFIED anahtar sözcüğünü girin. Komut formatı aşağıdaki gibidir:<список пользователей>TARAFINDAN TANIMLANMADI<пароль списка>.
  • ORA-00955: ad zaten mevcut nesne tarafından kullanılıyor
    Neden: Zaten var olan bir tablo, görünüm, grup veya eşanlamlı oluşturma girişiminde bulunuldu. Her kullanıcı tablosu adı, diğer kullanıcıların sahip olduğu diğer tablo adlarından, görünümlerden, gruplardan veya eşanlamlılardan farklı olmalıdır.
    Aksiyon: Benzersiz bir tablo, görünüm, grup veya eşanlamlı ad girin ya da mevcut olanı değiştirin veya silin.
  • ORA-00956: geçersiz denetleme seçeneği - geçersiz denetleme seçeneği
    Neden: Geçersiz bir kontrol seçeneği vardı.
    Aksiyon: Komutun sözdizimini kontrol edin ve doğru seçenekle tekrar deneyin.
  • ORA-00957: yinelenen sütun adı
    Neden: Sütun adı, bir CREATE veya INSERT deyiminde iki kez bildirildi. Bir tablodaki, genel bakıştaki veya gruptaki bir sütunun adı benzersiz olmalıdır.
    Aksiyon: CREATE komutundaki sütun adını yeni ve benzersiz bir adla değiştirin. INSERT komutunda yinelenen adları kaldırın.
  • ORA-00958: CHECK anahtar sözcüğü eksik
    Neden: CREATE VIEW deyiminin WITH CHECK OPTION yan tümcesinde WHITH anahtar sözcüğünden hemen sonra CHECK eksik.
    Aksiyon: SQL ifadesinin sözdizimini kontrol edin.
  • ORA-00959: boşluk tanımı adı mevcut değil
    Neden: A DROP SPACE komutu, var olmayan bir alan adını tanımladı.
    Aksiyon: Mevcut kapsam tanımı adlarını kullanın. Mevcut adları görüntülemek için BOŞLUKLAR'dan SNAME öğesini seçin.
  • ORA-00960: geçersiz BAŞLANGIÇ değeri
    Neden: CREATE SPACE komutunda geçersiz bir başlangıç ​​veri sayfası veya dizin sayfası numarası değeri belirtildi. Bu değer en az 3 olmalıdır.
    Aksiyon: En az 3'lük bir BAŞLANGIÇ değeri girin.
  • ORA-00961: geçersiz INCREMENT değeri
    Neden: Veri sayfası veya dizin sayfası için geçersiz bir adım sayısı değeri tanımlandı. Adım değeri 3'ten büyük olmalıdır.
    Aksiyon: 3'ten büyük bir ARTIRMA değeri girin.
  • ORA-00962: geçersiz PCTFREE değeri
    Neden: SPACE tanımında hatalı boş alan yüzdesi değeri açıklanmıştır. Bu değer 1: ila 99 arasında olmalıdır.
    Aksiyon: 1: ile 99 arasında bir PCTFREE değeri girin.
  • ORA-00963: geçersiz SIZE değeri
    Neden: CREATE CLUSTER komutunda geçersiz bir mantıksal blok boyutu değeri belirtildi. Mantıksal blok boyutu, küçük veri gruplarını verimli bir şekilde depolamak için kullanılır.
    Aksiyon: Mantıksal blok boyutunun izin verilen değerini tanımlayın (0'dan büyük).
  • ORA-00964: geçersiz alan tanımlama adı
    Neden: CREATE/DROP SPACE komutunda veya CREATE TABLE komutunda geçersiz bir bölge adı belirtildi veya CREATE TABLE komutunda var olmayan bir bölge adı belirtildi.
    Aksiyon: Geçerli bir alan adı girin. Geçerli bir ad bir harfle başlar, en fazla 30 karakter içerir ve yalnızca harflerden, rakamlardan ve $, _ ve # özel karakterlerinden oluşur. Ayrılmış bir kelime olmamalıdır. Adınız doğruysa, yanlışlıkla TEMP kapsam tanımını kaldırmış olabilirsiniz.
  • ORA-00965: alan tanımı adı zaten var
    Neden: CREATE SPACE komutunda mevcut bir bölge adı kullanıldı. Bölge tanımı adları benzersiz olmalıdır.
    Aksiyon: Alan için benzersiz bir ad girin.
  • ORA-00966: TABLE anahtar sözcüğü eksik
    Neden: Bir LOCK komutu kullanılmış ve TABLE anahtar sözcüğü yanlış yazılmış, atlanmış ya da yanlış yerleştirilmiş. LOCK komutu şöyle başlamalıdır: LOCK TABLE<имя таблицы> ... .
    Aksiyon: TABLE anahtar sözcüğünü uygun yere girin.
  • ORA-00968: INDEX anahtar sözcüğü eksik
    Neden: CREATE UNIQUE komutu kullanılmış ve INDEX anahtar sözcüğü yanlış yazılmış, atlanmış ya da yanlış yerleştirilmiş.
    Aksiyon: Lütfen söz dizimini kontrol edin ve tekrar deneyin.
  • ORA-00969: ON anahtar sözcüğü eksik
    Neden: Bir GRANT veya CREATE INDEX komutu kullanılmış ve ON anahtar sözcüğü yanlış yazılmış, atlanmış veya yanlış yerleştirilmiş.
    Aksiyon: ON anahtar sözcüğünü uygun yere girin.
  • ORA-00970: WITH anahtar sözcüğü eksik - WITH anahtar sözcüğü eksik
    Neden: START anahtar sözcüğü, WITH olmadan kullanıldı. Sorgu için START WITH yan tümcesinde her iki anahtar sözcük de gereklidir.
    Aksiyon: BAŞLAT kelimesini İLE BAŞLA ile değiştirin.
  • ORA-00971: SET anahtar sözcüğü eksik - SET anahtar sözcüğü eksik
    Neden: UPDATE komutunda, SET anahtar sözcüğü yanlış yazılmış, atlanmış ya da yanlış yerleştirilmiş.
    Aksiyon: Değiştirilecek tablonun adından sonra SET anahtar sözcüğünü girin.
  • ORA-00972: tanımlayıcı çok büyük
    Neden: Veritabanı nesne adı 30 karakterden uzundur (Veritabanı nesneleri tablolar, gruplar, görünümler, dizinler, eş anlamlılar, bölge ve kullanıcı adlarıdır.
    Aksiyon: Adı en fazla 30 karakter olacak şekilde kısaltın.
  • ORA-00973: geçersiz satır sayısı tahmini
    Neden: CREATE INDEX komutunda açıklanan satır sayısı değeri 0'dan küçük bir sayıdır.
    Aksiyon: Geçerli bir değer tanımlayın (0'dan büyük).
  • ORA-00974: geçersiz dizin bloğu yükleme faktörü (yüzde)
    Neden: INDEX OLUŞTUR komutunda açıklanan kullanılan hacmin yüzdesi, alan 1: ila %90 aralığına ait değil.
    Aksiyon: 1 ile 90 arasında bir PCTFREE değeri girin. Varsayılan değer 10'dur.
  • ORA-00975: Tarih + tarihe izin verilmez
    Neden: İki veri alanını birlikte eklemeye çalışın. Veriler yalnızca sayı alanlarına eklenebilir, diğer verilere eklenemez.
    Aksiyon: Bir sayı alanına bir veri alanı ekleyin.
  • ORA-00977: çift denetim seçeneği - çift denetim seçeneği
    Neden: Aynı kontrol seçeneği tekrar açıklanmıştır.
    Aksiyon: Fazla kontrol açıklamasını kaldırın.
  • ORA-00978: GROUP BY olmadan iç içe küme işlevi
    Neden: Bir grup işlevi (MIN, MAX veya AVG gibi), karşılık gelen bir GROUP BY yan tümcesi olmadan başka bir grup işlevi (MAX(COUNT(*)) gibi) içinde kullanıldı.
    Aksiyon: Bir GROUP BY yan tümcesi ekleyin veya dış iç içe yerleştirme düzeyini kaldırın.
  • ORA-00979: bir GROUP BY ifadesi değil ifadesi GROUP BY'ye ait değil
    Neden: GROUP BY yan tümcesi, SELECT yan tümcesinin tüm ifadelerini içermez. Grup işlevlerine (COUNT, SUM, AVG, MAX, MIN) dahil edilmeyen SELECT ifadeleri GROUP BY yan tümcesinde listelenmelidir.
    Aksiyon: GROUP BY yan tümcesindeki grup işlevlerinin bağımsız değişkeni olmayan tüm SELECT ifadelerini dahil edin.
  • ORA-00980: eşanlamlı çeviri artık geçerli değil
    Neden: Kullandığınız eşanlamlı, silinmiş veya yeniden adlandırılmış bir tablo, görünüm veya eşanlamlı içindi.
    Aksiyon: Eşanlamlıyı, amaçlandığı tablo, görünüm, eşanlamlı adıyla değiştirin. Veya doğru tablolar, görünümler veya eş anlamlılar için eşanlamlıyı yeniden oluşturun.
  • ORA-00981: tablo ve sistem çapında denetleme seçenekleri karıştırılamaz
    Neden: Aynı anda hem tablonun hem de sistemin genişlik seçeneği aynı AUDIT deyiminde açıklanmıştır.
    Aksiyon: Operatörü düzeltin.
  • ORA-00982: eksik artı işareti
    Neden: Eklendiğinde sol parantezden sonra artı işareti (+) yoktur. Eklerken, sol (açık) parantez bir eki açıklıyor olarak yorumlanır ve bir artı işareti beklenir. Bir sütuna eki açıklamak için, sütun açıklamasının ardından parantez (+) içine alınmış bir artı işareti gelmelidir.
    Aksiyon: SQL sözdizimini düzeltin.
  • ORA-00984: burada sütuna izin verilmez
    Neden: Sütun adı, INSERT ifadesinin VALUES yan tümcesinde olduğu gibi izin verilmeyen yerlerde kullanılmıştır.
    Aksiyon: Komut sözdizimini kontrol edin ve yalnızca izin verilen yerlerde sütun adlarını kullanın.
  • ORA-00985: geçersiz program adı
    Neden
    Aksiyon
  • ORA-00986: eksik veya geçersiz grup adları - eksik veya geçersiz grup adları
    Neden: Bu özellik uygulanmadı.
    Aksiyon: Kullanıcı eylemi gerekmez.
  • ORA-00987: eksik veya geçersiz kullanıcı adları
    Neden: Kullanıcı adı GRANT komutunda belirtilmemiş veya belirtilen adlardan biri geçersiz. Geçerli kullanıcı adları, GRANT komutunda TO kelimesinden sonra gelmelidir. Geçerli bir kullanıcı adı bir harfle başlar, 30 karakterle sınırlıdır ve yalnızca harflerden, rakamlardan ve $, _ ve # özel karakterlerinden oluşur. Ayrılmış bir kelime olmamalıdır.
    Aksiyon: GRANT komutundaki TO anahtar sözcüğünden sonra geçerli bir kullanıcı adı (veya kullanıcı listesi) tanımlayın.
  • ORA-00988: eksik veya geçersiz parola(lar)
    Neden: GRANT komutunda paroladan çok kullanıcı adı vardır. GRANT komutunda listelenen her kullanıcı için geçerli bir parola belirtilmelidir.
    Aksiyon: Her kullanıcı için doğru şifreyi girin.
  • ORA-00989: verilen kullanıcı adları için çok fazla parola
    Neden: GRANT komutunda kullanıcı adları tarafından açıklanandan daha fazla parola var. GRANT komutunda listelenen her kullanıcı için yalnızca bir parola girilmelidir.
    Aksiyon: Aynı sayıda kullanıcı ve parola girin.
  • ORA-00990: eksik veya geçersiz ayrıcalık
    Neden: GRANT ayrıcalıkları için komutta herhangi bir ayrıcalık bildirilmedi veya bunlardan biri geçersiz.
    Aksiyon: Bir veya daha fazla geçerli ayrıcalık girin. Aşağıdaki ayrıcalıklara izin verilir: SELECT, INSERT, DELETE, UPDATE, ALTER, INDEX, DROP, CLUSTER ve ALL. Birden fazla ayrıcalık, virgülle (,) ayrılmış bir listeye girilerek veya tüm ayrıcalıkları vermek için TÜMÜ kelimesini tanımlayarak verilebilir.
  • ORA-00991: GRANT komutu için tanınmayan biçim
    Neden: GRANT komutunun geçersiz bir formu girildi.
    Aksiyon: Komut sözdizimini kontrol edin.İki tip GRANT komutu vardır. İlk tür, veritabanına kullanıcı erişimini tanımlamak için kullanılır ve aşağıdaki biçime sahip olmalıdır: GRANT CONNECT/RESOURCE/DBA TO<имя пользователя>TANIMLANAN<пароль>. CONNECT, RESOURCE veya DBA anahtar sözcüklerinden en az biri mevcut olmalıdır. İkinci tür, veritabanı nesnelerine ayrıcalıklar vermek için kullanılır ve şu biçime sahiptir: GRANT<список привелегий>ÜZERİNDE<обзор/ таблица>İLE< индентификатор пользователя>/HALKA AÇIK.
  • ORA-00992: REVOKE komutu için tanınmayan biçim
    Neden: REVOKE komutunun geçersiz bir formu girildi.
    Aksiyon: Komutun sözdizimini kontrol edin ve yeniden deneyin.
  • ORA-00993: GRANT anahtar sözcüğü eksik
    Neden: Bir GRANT komutunun sonunda WITH seçeneği, GRANT seçeneği olmadan bildirildi.Bir kullanıcıya ayrıcalıklar ve diğer kullanıcılara verme izni vermek için, bir GRANT komutunun sonunda WITH GRANT OPTIO seçeneğini kullanın.
    Aksiyon: WITH anahtar sözcüğünü WITH GRANT OPTION ile değiştirin.
  • ORA-00994: OPTION anahtar sözcüğü eksik - OPTIO anahtar sözcüğü eksik
    Neden: GRANT komutunun sonunda OPTION kelimesi olmadan WITH GRANT seçeneği kullanılmıştır.
    Aksiyon: GRANT İLE olan anahtarı GRANT OPTION ile değiştirin.
  • ORA-00995: eksik veya geçersiz eşanlamlı tanımlayıcı
    Neden: Bir CREATE veya DROP SYNONYM komutunda, bir eşanlamlı adı atlanmış veya geçersiz.
    Aksiyon: Yazım hatalarını ve komut sözdizimini kontrol edin. Geçerli bir eşanlamlı adı, her iki komutta da hemen eşanlamlı anahtardan sonra gelmelidir. Geçerli bir eşanlamlı ad bir harfle başlar, 30 karakterle sınırlıdır ve yalnızca harflerden, rakamlardan ve $, _ ve # özel karakterlerinden oluşur. Ayrılmış bir kelime olmamalıdır.
  • ORA-00996: birleştirme operatörü ¦¦ değil ¦ - birleştirme operatörü ||, değil |
    Neden: Tek vuruş (|), birleştirmeyi tanımlama girişimi olarak anlaşıldı, ancak birleştirme operatörü iki vuruştan (||) oluşur.
    Aksiyon: Birleştirme işlemi için çift vuruş girin veya birleştirme gerekmiyorsa tek vuruş kaldırın.
  • ORA-00997: uzun veri tipinin geçersiz kullanımı
    Neden: Bir işlevde veya WHERE, GROUP BY, ORDER BY yan tümcelerinde 240 karakterden büyük verileri depolamak için kullanılan LONG veri türünü kullandınız. LONG değeri yalnızca bir SELECT yan tümcesinde kullanılabilir.
    Aksiyon: Bu alanı işlevden veya tekliften kaldırın.
  • ORA-00998: bu ifadeyi bir sütun etiketiyle adlandırmak gerekir
    Neden: CREATE VIEW komutunda bir işlev veya ifade kullanılmış, ancak ilgili sütun adı bildirilmemiştir. Bir görünüm için bir ifade veya işlev kullanıldığında, tüm sütun ve görünüm adları CREATE VIEW komutunda doğru şekilde listelenmelidir.
    Aksiyon: İnceleme adından sonra tüm inceleme sütun adlarını parantez içinde girin.
  • ORA-00999: geçersiz görünüm adı.
    Neden: GÖRÜNÜMÜ OLUŞTUR komutunda eksik veya geçersiz görünüm adı.
    Aksiyon: GÖRÜNÜM OLUŞTUR'dan hemen sonra geçerli bir görünüm adı girin. Geçerli bir göz atma adı bir harfle başlar, 30 karakterle sınırlıdır ve yalnızca harflerden, rakamlardan ve $,_ ve # özel karakterlerinden oluşur. Ayrılmış bir kelime olmamalıdır.