Uy / Yangiliklar / Oracle ma'lumotlar bazasi serverida xatolarni qayta ishlash xususiyatlari. Oracle xatolari: ma'lumotlar bazasi xatolari, tushuntirish va tuzatish harakati Oracle istisno variantlari

Oracle ma'lumotlar bazasi serverida xatolarni qayta ishlash xususiyatlari. Oracle xatolari: ma'lumotlar bazasi xatolari, tushuntirish va tuzatish harakati Oracle istisno variantlari

PL/SQL-da istisnolardan foydalanish

Har qanday protsessual tilda dasturlar ma'lumotlar bazasidan to'liq va alohida ob'ekt ekanligini unutmaslik juda muhimdir. Shunday qilib, dastur ma'lumotlar bazasidan satrlarni so'raganda, dasturchi so'rov muvaffaqiyatli bajarilganligiga ishonch hosil qilishi kerak.

Relyatsion ma'lumotlar bazalarida ma'lumotlar bazasi har doim SQLCODE deb nomlangan maxsus o'zgaruvchini har qanday chaqiruvchi dasturga qaytaradi. Dasturdan ma'lumotlar bazasiga qo'ng'iroq qilishdan qaytarilgan SQLCODE Oracle tomonidan nomlangan mantiqiy o'zgaruvchiga tarjima qilinadi (quyidagi jadvalga qarang).

PL/SQL istisno o'zgaruvchisi

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

Misol uchun, agar ma'lumotlar bazasi SQLCODE=100 qaytarsa, PL/SQL o'zgaruvchisi NO_DATA_FOUND TRUE ga o'rnatiladi.

Istisnosiz, Oracle ma'lumotlar bazasi tomonidan kutilmagan SQLCODE qaytarilganda barcha PL/SQL dasturlari to'xtatilishi kerak.

Bu ma'lumotlar bazasiga halokatli ta'sir ko'rsatishi mumkin, ayniqsa PL/SQL noto'g'ri binolarga asoslangan jadvallarga ma'lumotlarni yuklaganda. Ushbu fojianing oldini olish uchun Oracle WHEN OTHERS o'zgaruvchisini taqdim etadi, agar Oracle ma'lumotlar bazasidan kutilmagan SQLCODE qaytarilsa, TRUE ga o'rnatiladi.

Masalan, quyidagi kodni ko'rib chiqing:

E'lon qiling
err_num NUMBER;
err_msg VARCHAR2(100);
BOSHLANISHI
...
ISTISOZ
...
BOSHQALAR KEYIN
err_num:= SQLCODE;
err_msg:= SUBSTR(SQLERRM, 1, 100);
INSERT INTO xatolar VALUES (err_num, err_msg);
OXIRI;

Bu yerda biz istisnolardan foydalanishda EXCEPTIONS hududiga ega ekanligini ko‘ramiz, WHEN OTHERS. WHEN OTHERS mantiqiy o'zgaruvchisi TRUE bo'lsa, PL/SQL kodi SQLCODE va ​​tegishli xato xabarini (SQLERRM) oladi va bu qiymatlarni maxsus Oracle xatolar jadvalida saqlaydi.

Oracle istisnolardan foydalanish

Ishlab chiquvchilar ko'pincha xatolik holatlarini belgilab qo'yadi va ularni Oracle istisnolarini boshqarish va IF-THEN mantig'idan foydalangan holda hal qiladi.

Xatolarni belgilash uchun IF-THEN mantig'idan foydalangan holda Oracle istisnolarini qayta ishlash

Yuqoridagi misol mantiqiy o'zgaruvchidan foydalangan holda Oracle istisnolarini qayta ishlashni ko'rsatadi bAidAmountOk har bir talaba yozuvini qayta ishlash jarayonida vaziyatni kuzatib borish.

Oracle istisnolaridan foydalanish unumdorlikka ta'sir qiladi. Oracle istisnolaridan foydalanish xato holatini tekshirish uchun bir nechta ko'rsatmalardan foydalanadi. Har bir Oracle istisnosi bo'yicha ko'rsatma tugallanishi uchun CPU davrlarini talab qiladi. Yaxshiroq yondashuv quyida ko'rsatilganidek, protsessor davrlarini behuda sarflamaslik uchun Oracle istisnolaridan foydalanishni o'z ichiga oladi:

Ishlashni yaxshilash uchun Oracle istisno ishlovchilaridan foydalanish.

Oracle istisnolarini qayta ishlashning ushbu misolida xAID_AMOUNT_OK istisno tsikl ichida aniq ko'tariladi. Bu talaba GPA tekshirilgandan so'ng amalga oshiriladigan ko'rsatmalarni o'tkazib yuborishga imkon beradi va Oracle istisnolarini qayta ishlashda ishlatiladigan protsessorni qisqartiradi.

Oracle istisnolaridan foydalanish yuqori samaradorlikka ega. Oracle istisnosi ko'tarilganda, blokdagi barcha keyingi ko'rsatmalar chetlab o'tiladi, shuning uchun istisno Oracle istisno ishlovchisi tomonidan boshqarilishi mumkin. Oracle istisnolaridan foydalanish unumdorlikni sezilarli darajada oshirish uchun ishlatilishi mumkin.

Burleson - Amerika jamoasi

Eslatma: Ushbu Oracle hujjatlari DBA unumdorligini sozlash boʻyicha maslahat boʻyicha mutaxassislarimiz foydalanishi uchun qoʻllab-quvvatlash va Oracle oʻquv maʼlumotnomasi sifatida yaratilgan. Oracle forumimizda savollar berishingiz mumkin.

Tasdiqlash tajriba! Oracle qo'llab-quvvatlash bo'yicha ekspert xizmatlaridan foydalanishni o'ylayotgan har bir kishi o'z hisob ma'lumotlari va tajribasini mustaqil ravishda tekshirishi va reklama va o'zini o'zi e'lon qilgan tajribaga tayanmasligi kerak. Barcha qonuniy Oracle ekspertlari o'zlarining .

Xato? ishlashni sozlash


Mualliflik huquqi 1996 - 2017

Barcha huquqlar Burleson tomonidan himoyalangan

® Oracle korporatsiyasining ro'yxatdan o'tgan savdo belgisidir.

Conversational tomonidan taqdim etilgan masofaviy favqulodda yordam

Ushbu bobda biz PL/SQL-dagi istisnolarni muhokama qilamiz. Istisno - bu dasturni bajarish paytidagi xatolik holati. PL/SQL dasturchilarni bunday sharoitlardan foydalanishni qo'llab-quvvatlaydi ISTISOZ dasturda bloklanadi va xato holatiga qarshi tegishli chora ko'riladi. Ikki turdagi istisnolar mavjud -

  • Tizim tomonidan belgilangan istisnolar
  • Foydalanuvchi tomonidan belgilangan istisnolar

Istisnolarni qayta ishlash sintaksisi

Istisnolarni ko'rib chiqishning umumiy sintaksisi quyidagicha. Bu yerda siz imkon qadar ko'p istisnolarni sanab o'tishingiz mumkin. Standart istisno yordamida ishlov beriladi QACHON boshqalar KEYIN

E'lon qiling BOSHLANISHI ISTISOZ QAChON istisno1 KEYIN istisno1-ishlov berish-iboralari QAChON istisno2 KEYIN istisno2-ishlovlash-iboralari QAChON istisno3 KEYIN istisno3-ishlov berish-iboralari ........ QAChON boshqalar KEYIN istisno3-ishlov berish-iboralari TUGADI;

misol

Keling, kontseptsiyani tasvirlash uchun kod yozaylik. Biz oldingi boblarda yaratgan va ishlatgan MUZULAR jadvalidan foydalanamiz

E'lon qiling c_id customer.id%type:= 8; c_name customerS.Name% type; c_addr customer.address% type; BEGIN TANLASH ism, manzil INTO c_name, c_addr mijozlardan QERDA id = c_id; DBMS_OUTPUT.PUT_LINE("Ism: "|| c_name); DBMS_OUTPUT.PUT_LINE("Manzil: " || c_addr); ISTISODIY QACHON_ma'lumotlar_topilmadi THEN dbms_output. put_line("Bunday mijoz yo'q!"); WHEN boshqalar THEN dbms_output.put_line("Xato!"); OXIRI; /

Bunday mijoz yo'q! PL/SQL protsedurasi muvaffaqiyatli yakunlandi.

Yuqoridagi dastur identifikatori berilgan mijozning nomi va manzilini ko'rsatadi. Bizning ma'lumotlar bazasida ID qiymati 8 bo'lgan mijoz yo'qligi sababli, dastur ish vaqti istisnosini oshiradi NO_DATA_FOUND, da qo'lga kiritilgan EXCEPTION bloki.

Istisnolarni ko'tarish

Istisnolar ma'lumotlar bazasi serveri tomonidan har qanday ichki ma'lumotlar bazasi xatosi bo'lganda avtomatik ravishda ko'tariladi, ammo istisnolar buyruq yordamida dasturchi tomonidan aniq ko'tarilishi mumkin. OSHIRISH. Quyida istisnoni ko'tarish uchun oddiy sintaksis -

istisno_nomini E'lon qilish EXCEPTION; BEGIN AGAR shart bo'lsa, keyin istisno_nomini ko'taring; END IF; EXCEPTION WHEN exception_name THEN ifodasi; OXIRI;

Yuqoridagi sintaksisdan Oracle standart istisnosini yoki foydalanuvchi tomonidan belgilangan har qanday istisnoni ko'tarishda foydalanishingiz mumkin. Keyingi bo'limda biz sizga foydalanuvchi tomonidan belgilangan istisnoni ko'tarish bo'yicha misol keltiramiz. Oracle standart istisnolarini xuddi shunday tarzda oshirishingiz mumkin.

Foydalanuvchi tomonidan belgilangan istisnolar

PL/SQL sizning dasturingiz ehtiyojiga qarab o'z istisnolaringizni aniqlash imkonini beradi. Foydalanuvchi tomonidan belgilangan istisno e'lon qilinishi va keyin RAISE bayonoti yoki protsedura yordamida aniq ko'tarilishi kerak. DBMS_STANDARD.RAISE_APPLICATION_ERROR.

Istisno e'lon qilish sintaksisi -

my-istisnoni E'lon qilish EXCEPTION;

misol

Quyidagi misol kontseptsiyani ko'rsatadi. Ushbu dastur mijoz identifikatorini so'raydi, agar foydalanuvchi noto'g'ri identifikatorni kiritsa, istisno invalid_id ko'tariladi.

C_id customer.id%type:= &cc_id; c_name customerS.Name% type; c_addr customer.address% type; -- foydalanuvchi tomonidan belgilangan istisno ex_invalid_id EXCEPTION; BEGIN IF c_id<= 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; /

Yuqoridagi kod SQL so'rovida bajarilganda, u quyidagi natijani beradi -

cc_id qiymatini kiriting: -6 ("s qiymat kiriting -6") eski 2: c_id customer.id%type:= &cc_id; new 2: c_id customer.id%type:= -6; ID noldan katta bo‘lishi kerak !PL/SQL protsedurasi muvaffaqiyatli yakunlandi.

Oldindan belgilangan istisnolar

PL/SQL har qanday ma'lumotlar bazasi qoidasi dastur tomonidan buzilganda bajariladigan ko'plab oldindan belgilangan istisnolarni taqdim etadi. Masalan, oldindan belgilangan NO_DATA_FOUND istisnosi SELECT INTO iborasi hech qanday satrlarni qaytarmasa ko'tariladi. Quyidagi jadvalda oldindan belgilangan bir nechta muhim istisnolar keltirilgan -

Istisno Oracle xatosi SQLCODE Tavsif
ACCESS_INTO_NULL 06530 -6530 U null ob'ektga avtomatik ravishda qiymat tayinlanganda ko'tariladi.
CASE_NOT_FOUND 06592 -6592 U CASE bayonotining WHEN bandidagi tanlovlardan hech biri tanlanmaganda va ELSE bandi mavjud bo'lmaganda ko'tariladi.
COLLECTION_IS_NULL 06531 -6531 Dastur ishga tushirilmagan ichki jadval yoki varrayga EXISTS dan boshqa yig'ish usullarini qo'llashga harakat qilganda yoki dastur ishga tushirilmagan ichki jadval yoki varray elementlariga qiymatlarni belgilashga harakat qilganda ko'tariladi.
DUP_VAL_ON_INDEX 00001 -1 U takroriy qiymatlarni noyob indeksli ustunda saqlashga harakat qilganda ko'tariladi.
INVALID_CURSOR 01001 -1001 Ochilmagan kursorni yopish kabi ruxsat etilmagan kursor operatsiyasini bajarishga urinishlar qilinganda u ko'tariladi.
INVALID_NUMBER 01722 -1722 Belgilar qatorini raqamga o'tkazish muvaffaqiyatsiz tugaganda ko'tariladi, chunki satr haqiqiy raqamni bildirmaydi.
LOGIN_RENIED 01017 -1017 Dastur ma'lumotlar bazasiga noto'g'ri foydalanuvchi nomi yoki parol bilan kirishga harakat qilganda paydo bo'ladi.
NO_DATA_FOUND 01403 +100 SELECT INTO iborasi hech qanday qatorni qaytarmasa ko'tariladi.
NOT_LOGGED_ON 01012 -1012 Ma'lumotlar bazasiga ulanmagan holda ma'lumotlar bazasi chaqiruvi chiqarilganda ko'tariladi.
PROGRAM_ERROR 06501 -6501 PL/SQLda ichki muammo yuzaga kelganda paydo bo'ladi.
ROWTYPE_MISMATCH 06504 -6504 Kursor mos kelmaydigan ma'lumotlar turiga ega bo'lgan o'zgaruvchining qiymatini olganida ko'tariladi.
SELF_IS_NULL 30625 -30625 U a'zo usuli chaqirilganda ko'tariladi, lekin ob'ekt turining namunasi ishga tushirilmagan.
STORAGE_ERROR 06500 -6500 U PL/SQL xotirasi tugashi yoki xotira buzilganida ko'tariladi.
JUDA_KO'P_QATIR 01422 -1422 SELECT INTO iborasi bir nechta qatorni qaytarganda ko'tariladi.
VALUE_ERROR 06502 -6502 U arifmetik, konvertatsiya, kesish yoki o'lchamni cheklash xatosi yuzaga kelganda ko'tariladi.
ZERO_DIVIDE 01476 1476 Raqamni nolga bo'lishga harakat qilinganda ko'tariladi.

Ph.D. Vladimir Lixachev, K.E. Tsiolkovskiy nomidagi Kaluga pedagogika universiteti

Ma'lumotlar bazalari bilan ishlaydigan dasturlar uchun nafaqat ularning xatolarini to'g'ri boshqarish, balki ushbu xatolar haqida ma'lumot beruvchi xabarlarni yaratish ham muhimdir. Bunday xabarlarning mavjudligi sabablarni tezda aniqlash va xatolarni tuzatish imkonini beradi. Bu, ayniqsa, oxirgi foydalanuvchi dasturi bilan ishlashda to'g'ri keladi, chunki ko'p hollarda u nafaqat ma'lum bir ma'lumotlar bazasining tuzilishini, balki relyatsion ma'lumotlar bazalarining nazariy asoslarini ham bilmaydi.

Ajablanarlisi shundaki, dasturlarda xato xabarlarini shakllantirish bilan bog'liq vaziyat ko'pincha xatolarni qayta ishlashdan juda farq qiladi. Xatolarni ko'rib chiqishda odatda umumiy strategiyani ishlab chiqish mumkin, bu sizga ularni qayta ishlashni bir yoki bir nechta funktsiyalarda lokalizatsiya qilish imkonini beradi. Xato xabarlari uchun shunga o'xshash yondashuv xato xabarida Oracle serveri xato turini va unga sabab bo'lgan ma'lumotlar bazasi ob'ektini ko'rsatishi asosida amalga oshirilishi mumkin. Bunday ob'ektlar odatda cheklovlardir, masalan, birlamchi, noyob va xorijiy kalitlar, noyob indekslar, "null emas" cheklovlar va boshqalar. Ushbu cheklovlar haqida batafsil ma'lumotni tizim jadvallari va ma'lumotlar bazasi ko'rinishlaridan va o'zgartirilishi mumkin bo'lgan qiymatlardan olish mumkin. va o'zgartirilganligini aniqlash mumkin.. xatoga olib keldi. Ammo muammo shundaki, haqiqiy ilovalarda xato xabarlarini yaratish uchun bunday mexanizmni amalga oshirish bir qator qiyinchiliklarga duch keladi:

  • Xato xabarining dastur maqsadiga bog'liqligi. Hatto bir xil ma'lumotlar bazasi bilan ishlaydigan dasturlar uchun ham bir xil xato haqida turli xil xabarlarni yaratish kerak bo'lishi mumkin. Masalan, foydalanuvchi ma'lumotlarini tahrirlash dasturida xabar bo'lishi kerak: "Ushbu nomdagi mahsulot allaqachon ro'yxatdan o'tgan! Mahsulot nomini tekshiring!". Ammo ma'lumotlarni import qilish dasturida mutlaqo boshqa tarkibga ega bo'lgan xabar talab qilinadi: "Import qilingan ma'lumotlar takrorlanadi - ma'lumotlar import qilinayotgan sanani tekshiring!".
  • Ma'lumotlar bazasi cheklovlaridan kelib chiqqan ba'zi xatolar uchun xabarlarni yaratish qiyinligi. Masalan, jadvallardagi CHECK cheklovlari juda murakkab so'rovlar va shartlardan foydalanishi mumkin. Shuning uchun ularni tahlil qilish asosida xabarlarni shakllantirish juda qiyin vazifa bo'lishi mumkin.
  • Mijoz dasturlarida ma'lumotlar bazasidagi nomlaridan farq qiluvchi jadval va ustunlarning maxsus nomlaridan foydalanish. Masalan, jadvalda "TOVAR" nomi bor va mijoz ilovasida ushbu jadval ma'lumotlari katalogda "Mahsulotlar" yoki "Mahsulotlar" sifatida ko'rsatilishi mumkin.

Ushbu omillarning kombinatsiyasi odatda bir xil turdagi xatolar haqida xabarlarning shakllanishi har bir tranzaksiya uchun individual ravishda amalga oshirilishiga olib keladi. Natijada, xato xabarlarini yaratish uchun kod dastur bo'ylab taqsimlanadi, bu esa unga texnik xizmat ko'rsatishni qiyinlashtiradi. Deyarli har bir mumkin bo'lgan xato uchun kod yozish zarurati tufayli, ishlab chiquvchiga ma'lum bo'lgan ba'zi xatolar foydalanuvchiga tegishli xabarlarsiz bo'lib chiqadi. Natijada, oxirgi foydalanuvchi uchun etarli darajada ma'lumot beruvchi xabarlar faqat ba'zi xatolar uchun shakllantiriladi, boshqa hollarda u, eng yaxshi holatda, ma'lumotlar bazasi serverining o'zidan kelgan xabarlardan mamnun bo'lishi kerak. Oddiy foydalanuvchi uchun bunday xabarlarning ma'lumotliligi ko'p hollarda muammoning sababini aniqlash va uni bartaraf etish uchun etarli emas.

Maqolada ko'rib chiqilgan foydalanuvchi uchun informatsion xato xabarlarini yaratish usuli juda universal bo'lib, u mijoz ilovalarida ham, Oracle server tomonida ham amalga oshirilishi mumkin. U turli xil dasturlarda qo'llanilishi mumkin, masalan:

  • Ma'lumotlar bazasi ma'lumotlarini kiritish va o'zgartirish uchun maxsus interfeysdan foydalanadigan dasturlar. Ko'pgina hollarda, ma'lumotlar bazasi strukturasini tahlil qilish natijasida ma'lumot beruvchi xato xabarlarini olish mumkin. Bu foydalanuvchini ishlab chiquvchilar va dasturiy ta'minotning minimal harakatlari bilan ularning sabablari haqida xabardor qiladi.
  • Foydalanuvchi tomonidan o'zboshimchalik bilan SQL so'rovlarini yaratish qobiliyatiga ega dasturlar. Ma'lumotlar bazasi strukturasini tahlil qilish asosida xabarlarni shakllantirish, ayniqsa, foydalanuvchilarning keng doirasiga, shu jumladan, ushbu sohada past bilimga ega bo'lgan dasturlarga tegishli bo'lishi mumkin. Bu foydalanuvchi uchun SQL so'rovlarida xato xabarlarini tushunarli qiladi.
  • mavzu platformalari. Maqolada tasvirlangan usullardan foydalanish mavzu platformasining o'zi tuzilishini tahlil qilish asosida ma'lumotlar bazasi xato xabarlarini yaratishga imkon beradi. Bu xatolik holatlarini hal qilish uchun ishlatiladigan platforma til kodini qisqartirish imkonini beradi. Va maxsus xabarlarni talab qiladigan, lekin ularsiz bo'lgan xatolar, ularning sabablarini aniqlashni osonlashtiradigan darajada ma'lumotli bo'ladi.

Yuqorida tavsiflangan xabarlarni shakllantirish muammolari, agar xato xabarlari shartli ravishda ikki guruhga bo'lingan bo'lsa, hal qilinishi mumkin:

  • ma'lumotlar bazasi strukturasini tahlil qilish asosida shakllanadigan universal xabarlar;
  • har bir xato uchun alohida belgilanadigan maxsus xabarlar.

Maqolada tasvirlangan ma'lumotlar bazasi xato xabarlarini yaratish usuli ko'plab relyatsion ma'lumotlar bazasi serverlarida qo'llanilishi mumkin. Maqolada Firebird server ma'lumotlar bazalari uchun foydalanish misoli ko'rib chiqiladi. Agar mijoz ilovasi Object Pascal (Delphi, Kylix, Free Pascal) da ishlab chiqilgan bo'lsa, JEDI kutubxonasining imkoniyatlari kutilmagan xatolarning sabablarini aniqlash uchun foydali bo'lishi mumkin.

1. Ma'lumotlar bazasi cheklovlaridan kelib chiqqan universal xato xabarlari

Yuqorida aytib o'tilganidek, universal xabarlarni yaratishning asosiy g'oyasi Oracle xato xabari ma'lumotlari va ma'lumotlar bazasi tuzilishi asosida oxirgi foydalanuvchi uchun etarlicha ma'lumotli va tushunarli bo'lgan xabarni shakllantirishdir. Faraz qilaylik, “TOVAR” (skript 1.1) jadvalida foydalanuvchi allaqachon jadvalda bo‘lgan nomli (“TITLE” ustuni) mahsulotni qo‘shishga harakat qiladi.

JADVAL DEMO.GOODS YARATING (KOD INTEGER NO NULL , TITLE VARCHAR2(50 bayt) NO NULL , PRICE NUMBER(16, 2) NO NULL , CHEKLASH CK_PRICE CHECK (PRICE > 0), CONSTRAINT PKODEYCODERICE_Y); TABLO DEMO.GOODS BO'YICHA Izoh - "Tovar"; DEMO.GOODS.CODE USTUNGA Izoh “Mahsulot kodi”; DEMO.GOODS.TITLE USTUNI BO'YICHA Izoh "Sarlavha"; DEMO.GOODS.NARX USTUNI BO'YICHA Izoh - "Narx"; DEMO.GOODS (TITLE) BO'YICHA NOMONLI DEMO.IDX_GOODS_TITLE INDEKSINI YARATING;

Skript 1.1. "TOVLAR" jadvalini yaratish.

Bu holda server xatolikka yo'l qo'yadi, chunki mahsulot nomini saqlaydigan "TITLE" ustuni "DEMO.IDX_GOODS_TITLE" noyob indeksiga kiritilgan:

Buning o'rniga, foydalanuvchi uchun xabar tuzilishi mumkin, masalan, xabarlardan biri:

  • "Mahsulotlar" jadvalidagi "Ism" maydonining qiymati noyob bo'lishi kerak!
  • Bunday nomdagi mahsulot allaqachon ro'yxatdan o'tgan! Mahsulot nomini tekshiring!
  • Xuddi shu nomdagi mahsulotlar mahsulot katalogida bo'lishi mumkin emas!

Garchi bu xabarlar bir-biridan farq qilsa-da, ularning barchasi o'ziga xoslik cheklovi buzilgan ob'ekt haqidagi ma'lumotlarni ko'rsatadi - bu "Mahsulotlar" jadvalining "Ism" maydoni.

Ushbu turdagi xabarlarni yaratishdagi muammolardan biri shundaki, maxsus maydon va jadval nomlari ma'lumotlar bazasidagi jadval va ustun nomlaridan farq qiladi. Foydalanuvchi xato xabarini tushunishi uchun u maxsus nomlardan foydalanishi kerak. Jadval va ustunlar uchun alohida jadval yoki sharhlar jadval va maydon nomlari va ularning shaxsiy nomlariga mos kelishi mumkin. Oxirgi variantni afzalroq deb hisoblash mumkin, chunki u bir vaqtning o'zida ma'lumotlar bazasini hujjatlashtirishga imkon beradi. Shuning uchun 1.1-skriptda foydalanuvchi tomonidan belgilangan nomlar jadval va uning ustunlari uchun izoh sifatida berilgan. Agar jadval va ustunlar uchun yuqoridagi xabarlar va izohlarni solishtirsak, birinchi xabarni shakllantirish eng oddiy variant ekanligini ko'rishimiz mumkin. Boshqa ikkita xabarni shakllantirish uchun leksik sintez talab qilinishi mumkin, ammo bu alohida vazifadir. Men sizning e'tiboringizni kelajakda maqolada har bir xatolik holati uchun mumkin bo'lgan xabar variantlaridan faqat bittasi berilganligiga qaratmoqchiman. Amalda, xabar uslubi va mazmunini tanlash bir qator omillarga bog'liq bo'lishi mumkin va tizim dizayneri tomonidan belgilanadi.

Albatta, xabarga kiritilishi kerak bo'lgan jadval yoki ustun uchun sharhlar yo'qligini istisno qilib bo'lmaydi. Bunday holda, xato xabari to'g'ridan-to'g'ri jadval yoki ustun nomini ko'rsatishi mumkin.

2. Kerakli maydon qiymati ko'rsatilmagan (cheklov NOT NULL)

Ushbu xato server tomonidan bir nechta hollarda hosil bo'ladi:

  • ustundagi "null emas" cheklovi buzilgan;
  • noyob indeks, asosiy kalit yoki noyob kalitning bir qismi bo'lgan ustun uchun hech qanday qiymat belgilanmagan.

Ushbu barcha holatlarda server xato qiladi:

Xato xabaridan jadval va ustun tavsifini olish uchun 2.1 so'rovidan foydalanish mumkin.

tc.comments ni table_comment sifatida, cc.comments ni ustun_comment sifatida tanlang dan all_tab_columns c, all_tab_comments tc, all_col_comments cc c.owner va cc.table_name = c.table_name va cc.column_name = c.column_name

So'rov 2.1. Jadval va ustun tavsifini oling

"Egasi", "jadval_nomi", "ustun_nomi" so'rov parametrlari sifatida siz mos ravishda xato xabaridan sxema, jadval va ustun nomini ko'rsatishingiz kerak. So'rov jadval va ustun uchun sharhlarni qaytaradi.

Ushbu so'rov natijalaridan foydalanib, xato xabari yaratilishi mumkin, masalan, quyidagi tarkib:

Ustunning qiymatini belgilashingiz kerak "<Описание поля>"stolda"<Описание таблицы>" da<добавлении новой/изменении>yozuvlar.

3. Maydon yoki ustunlar to'plami qiymatining o'ziga xosligi buziladi

Ustun uchun noyob qiymatni kiritish zarurati asosan uchta holatda talab qilinishi mumkin:

  • ustun asosiy kalitning bir qismidir;
  • ustun noyob kalitga kiritilgan;
  • ustun noyob indeksga kiritilgan.

Har uch holatda ham Oracle Database bir xil xatolik hosil qiladi:
ORA-00001: yagona cheklov buzilgan (<Схема>.<Ограничение>)

Xato xabari xatoga sabab bo'lgan cheklovni belgilaydi. Asosiy yoki noyob kalitlarga kiritilgan ustunlar haqida ma'lumot olish uchun siz 3.1 so'rovidan, indeks haqida ma'lumot olish uchun 3.2 so'rovdan foydalanishingiz mumkin.

dcs.constraint_type, cc.table_name, tc.comments ni jadval_izohi, cc.column_name, ccom.comments ni ustun_izoh sifatida tanlang dan all_cons_columns cc qo'shilish all_tab_comments tc on (tc.owner = cc.owner va tc.table_name = cc.table_name) all_col_comments ccom on (ccom.owner = cc.owner va ccom.table_name = cc.table_name va ccom.column_name = cc). ustun_nomi) (dcs.constraint_name = cc.constraint_name) dagi all_constraints dcs ga qo'shiling, bunda cc.owner = :owner va cc.constraint_name = :key_name
So'rov 3.1. Asosiy yoki noyob kalitlarga kiritilgan jadval ustunlari haqida ma'lumot olish.
ic.table_name, tc.comments ni table_comment, ic.column_name, ccom.comments ni ustun_comment sifatida tanlang dan all_ind_columns ic birlashing all_tab_comments tc on (tc.owner = ic.table_owner va tc.table_name = ic.table_name) all_col_comments ccom on (ccom.owner = ic.table_owner va ccom.table_name = ic.table_name va ccom.columnname = ccom.ic. ustun_nomi) bu erda jadval_egasi = :egasi va indeks_nomi =: indeks_nomi
So'rov 3.2. Indeksga kiritilgan jadval ustunlari haqida ma'lumot olish.

So'rov parametrlari sxema nomi ("egasi"), kalit nomi ("kalit_nomi") yoki indeks nomi ("indeks_nomi"). So'rovlar cheklovdagi jadvallar va ustunlar uchun nom va izohlarni qaytaradi. 3.1 so'rovi cheklash turini ham qaytaradi ("cheklash_turi"): "P" - asosiy kalit, "U" - yagona kalit. So'rovlar orqali qaytarilgan yozuvlar soni noyob cheklovdagi ustunlar soniga mos keladi.

Foydalanuvchi uchun o'ziga xoslik cheklovi haqida olingan ma'lumotlarga asoslanib, xato xabarlarining variantlari, masalan, 1-bo'limda keltirilganlar yaratilishi mumkin.

4. Xorijiy kalit cheklovlari tufayli yuzaga kelgan xatolar

Chet el kalitlari bilan bog'liq jadval ma'lumotlari bo'yicha operatsiyalarni bajarishda xatolarga olib keladigan bir nechta sabablar mavjud:

1. Bo'ysunuvchi jadvalga yozuv qo'shiladi, unda tashqi kalitga kiritilgan ustun asosiy jadvalda mos keladigan qiymatga ega emas. Shunga o'xshash holat, agar yangi ustun qiymati asosiy jadvalda bo'lmasa, bo'ysunuvchi jadval ustunining qiymatini o'zgartirganda yuzaga keladi. Bu holda Oracle ma'lumotlar bazasi xatolikni keltirib chiqaradi:

  1. Bolalar jadvalida havola qilingan asosiy jadvaldagi ustun qiymatini o'zgartirishga harakat qilinadi. Bu holatda Oracle Database xatolik hosil qiladi:
  1. Bolalar jadvalida havola qilingan asosiy jadvaldagi ma'lumotlarni o'chirishga harakat qilinadi. Agar ma'lumotlarni o'chirish operatsiyasi uchun jadvallar o'rtasidagi munosabatlar ta'rifida "HECH YO'Q" cheklovi ko'rsatilgan bo'lsa, Oracle asosiy jadvaldan ma'lumotlarni o'chirishga ruxsat bermaydi, agar bolalar jadvalida o'chirilayotgan yozuv bilan bog'liq yozuvlar bo'lsa. Bunday vaziyat uchun Oracle Database oldingi holatga o'xshash xatolikni yaratadi.

Chet el kalitining bir qismi bo'lgan asosiy va pastki jadvallar ustunlari haqida ma'lumot olish uchun quyidagi 4.1 so'rovidan foydalanishingiz mumkin.

a.cheklov_nomi, a.jadval_nomi, tc1.commentsni jadval_izoh, a2.ustun_nomi, cc1.commentsni ustun_sharh sifatida, b.egasini r_egasi, b.jadval_nomini r_jadval_nomi, tc2.commentsni r_jadval_sharh sifatida, b2.ustun_cclum2 nomini tanlang. .sharhlar r_column_comment sifatida dan all_constraints a, all_constraints b, all_constraints_columns a2, all_cons_columns b2, all_tab_comments tc1, all_col_comments tc1, all_col_comments cc1, all_tab_comments tc2, all_col_comments cc2 bu erda a.owner = :owner and a.constraint_pe.constrainty = "constraint_ame" va b:constraint_pe. ("P","U") va b.constraint_name = a.r_constraint_name va b.owner = a.r_owner va a2.constraint_name = a.constraint_name va a2.table_name = a.table_name va a2.owner = a.honer va b2.cheklash_nomi = b.cheklov_nomi va b2.jadval_nomi = b.jadval_nomi va b2.egasi = b.egasi va b2.pozitsiyasi = a2.pozitsiyasi va tc1. egasi = a.egasi va tc1.jadval_nomi = a.jadval_nomi va cc1. egasi = a2.owner va cc1.table_name = a2.table_name va cc1.column_name = a2.column_name va tc2.owner = b.owner va tc2.table_name = b.table_name va cc2.owner = b2.owner va cc2.table_name = b2.table_name va cc2.column_name = b2.column_name
So'rov 4.1. Chet el kaliti haqida ma'lumot olish.

So'rov ikkita parametrga ega: "egasi" va "xorijiy_kalit" - sxema va tashqi kalit, ular haqida ma'lumot olishni xohlaysiz. U chet el kalitiga kiritilgan ustunlar haqidagi ma'lumotlarni qaytaradi: "jadval_nomi", "jadval_sharh" - bo'ysunuvchi jadvalning nomi va tavsifi; "ustun_nomi", "ustun_sharh" - bo'ysunuvchi jadval ustunining nomi va tavsifi. "r_" prefiksli so'rov ustunlari asosiy jadval haqida ma'lumotni qaytaradi. So'rov tomonidan qaytarilgan yozuvlar soni tashqi kalitga kiritilgan ustunlar soniga mos keladi.

Ushbu ma'lumotlarga asoslanib, foydalanuvchi uchun tashqi kalit xato xabarlari yaratilishi mumkin.

5. Ma'lumotlar bazasi cheklovlaridan kelib chiqqan maxsus xato xabarlari

Agar biron sababga ko'ra universal xato xabari ishlatilmasa yoki yaratilmasa, maxsus xabarlardan foydalanish zarurati paydo bo'lishi mumkin. Oxirgi holatga misol qilib jadvallardagi CHECK cheklovlarini keltirish mumkin. Cheklangan sharoitlarda so'rovlar va shartlardan foydalanish mumkin, ularni tahlil qilish juda qiyin vazifa bo'lishi mumkin. Shuning uchun, ushbu cheklovlar uchun dizayn vaqtida aniqlangan xabarlardan foydalanish qulayroqdir.

Maxsus xato xabarlarining ikkita guruhini ajratish mumkin. Birinchi turdagi maxsus xabarlar umumiy ma'lumotlar bazasi bilan ishlaydigan barcha ilovalarda foydalanish uchun mo'ljallangan. Ularni erkin tarzda "ma'lumotlar bazasi darajasidagi maxsus xato xabarlari" deb atash mumkin. Xabarlarning ikkinchi guruhi ilovaga xosdir. Turli xil ilovalar foydalanuvchiga bir xil xato haqida turli xabarlar berishi kerak bo'lganda ular kerak bo'lishi mumkin. Ularni shartli ravishda "ilova darajasidagi maxsus xato xabarlari" deb atash mumkin. Ma'lumotlar bazasining o'zida birinchi guruh xabarlari haqidagi ma'lumotlarni saqlash va buning uchun alohida jadvaldan foydalanish qulay. Dasturga xos bo'lgan xabarlar uning resurslarida, masalan, alohida fayl sifatida yoki ma'lumotlar bazasida saqlanishi mumkin. Maxsus xabarlar xato kodi, sxema nomi va xato xabaridagi bir yoki bir nechta kalit so'zlar asosida aniqlanishi mumkin.

6. Jadvallar uchun cheklovlar xato xabarlarini CHECK

Jadvaldagi CHECK cheklovi tufayli xatolik yuzaga kelganda, server xatolik hosil qiladi:
ORA-02290: CHECK yaxlitlik cheklovi buzilgan (<Схема>.<Имя ограничения>)

Yuqorida aytib o'tilganidek, ko'pincha bunday xatolar uchun maxsus xabarlardan foydalanish qulay. Masalan, "GOODS" jadvalidagi "CK_PRICE" cheklovi maxsus xabarlar jadvalida saqlangan maxsus xabardan foydalanishi mumkin:

7. Maxsus va umumiy xato xabarlaridan keng qamrovli foydalanish

Foydalanuvchi uchun informatsion xato xabarlarini yaratishning moslashuvchan mexanizmi bir necha bosqichda amalga oshiriladi (1-rasm):

1. Maxsus dastur darajasidagi xato xabarini chiqaring. Dastur avval ushbu ilova uchun maxsus xabarlar orasida xato xabarini qidiradi. Agar shunday xabar topilsa, u ko'rsatiladi va xabarni shakllantirish tugallanadi.

2. Ma'lumotlar bazasi darajasida maxsus xato xabarini chiqarish. Agar 1-bosqichda hech qanday xabar topilmasa, ma'lumotlar bazasi darajasidagi maxsus xato xabari qidiriladi. Agar topilsa, u foydalanuvchiga ko'rsatiladi va xato xabari ishlab chiqarish shu erda tugaydi.

3. Ma'lumotlar bazasi strukturasini tahlil qilish asosida xabarni ko'rsatish (universal xabar). Agar oldingi bosqichlarda maxsus xabarlar topilmasa, u ma'lumotlar bazasi strukturasini tahlil qilish asosida shakllantiriladi. U foydalanuvchiga ko'rsatiladi va bu xabarning shakllanishini yakunlaydi.

4. Ma'lumotlar bazasi serveridan xabarni ko'rsatish. Agar oldingi uch bosqichda foydalanuvchi uchun hech qanday xabar yaratilmagan bo'lsa, Oracle'dan xato xabari ko'rsatiladi. Bu holat bir necha sabablarga ko'ra yuzaga kelishi mumkin. Masalan, RAISE_APPLICATION_ERROR funksiyasidan foydalangan holda saqlangan protsedura yoki triggerda ataylab yaratilgan maxsus xatolik yuzaga kelganda va xabar mazmunini o'zgartirish talab qilinmaydi.

Ushbu maqolada keltirilganidan ko'ra murakkabroq holatlar mumkin. Masalan, agar xabar saqlangan protsedurada yaratilgan bo'lsa, u o'z navbatida trigger yoki boshqa saqlangan protseduradan chaqirilishi mumkin. Bunday holda, sizga xato xabarini yaratgan protsedura qanday chaqirilganligi haqida ham ma'lumot kerak bo'lishi mumkin. Va shuning uchun asl xabar, masalan, saqlangan protseduralar va triggerlarning qo'ng'iroqlar to'plami haqidagi ma'lumotlarga asoslanib, to'ldirilishi yoki o'zgartirilishi mumkin.

Ba'zi hollarda, bunday xabarlar oldingi bosqichlarda yaratilganidan ko'ra ko'proq ma'lumotga ega bo'lishi mumkin. Masalan, DEMO.GOODS jadvali uchun CK_PRICE cheklovi oʻrniga (skript 1.1), yozuvni kiritish va yangilashdan oldin triggerda kerakli tekshiruvni amalga oshirishingiz va foydalanuvchi uchun allaqachon “tayyor” shaklda xabar yaratishingiz mumkin:

Agar mahsulot narxi noldan kam yoki teng bo'lsa, server xato qiladi, masalan:

Mijoz ilovasi ushbu xabarni foydalanuvchiga o'zgartirmasdan darhol yuborishi mumkin.

Yana bir sabab, xabarning shakllanishi ta'minlanmagan xatoning paydo bo'lishi bo'lishi mumkin.

Guruch. 1. Ma'lumotlar bazasi xato xabarini yaratish ketma-ketligi.

Shuni ta'kidlashni istardimki, agar dastur faqat maxsus xato xabarlaridan foydalansa ham, xabarlarni yaratish uchun umumiy funktsiyadan foydalanish dastur tuzilishini yaxshilaydi. Agar kerak bo'lsa, maxsus xabarlar formati yordam tizimiga, rasmlarga va boshqalarga havolalarni qo'llab-quvvatlashi mumkin. Ma'lumotlar bazasi xato xabarlarini yaratishning tavsiflangan usuli ko'proq mijoz ilovasida amalga oshirishga qaratilgan. Shu bilan birga, u server tomonida saqlangan protseduralarda, jadval triggerlarida, shuningdek, ma'lumotlar bazasi yoki SERVERERROR hodisasi sxemasi uchun tizim triggerlarida ishlatilishi mumkin.

Xulosa

Ushbu maqolaning maqsadi oxirgi foydalanuvchi uchun informatsion Oracle ma'lumotlar bazasi xato xabarlarini yaratish uchun ishlatilishi mumkin bo'lgan usulning asosiy g'oyalarini ko'rsatishdir. Amalga oshirishning ba'zi nuqtalari maqola doirasidan tashqarida qolsa-da, men maqolada tasvirlangan yondashuv dasturiy ta'minotni ishlab chiqishda mehnat xarajatlarini kamaytiradi, uning ishonchliligi va sifatini oshiradi, deb umid qilmoqchiman.

Istisnolar yuzaga kelganda, foydalanuvchi uchun qulay xato xabarlarini chiqarish muhimdir. Istisnolar allaqachon asosiy PL/SQL bloklari bo'limida aytib o'tilgan. Endi ularni batafsilroq ko'rib chiqish vaqti keldi.

Istisnolar

Istisno - bu faollashtirilgan xatolik - yoki hayajonlangan - muammo yuzaga kelganda. Turli xil istisnolar mavjud, ularning har biri muayyan turdagi muammolar bilan bog'liq. Istisno sodir bo'lganda, kodning bajarilishi istisnoni tashlagan bayonotda to'xtaydi va boshqaruv blokning istisno bilan ishlaydigan qismiga o'tkaziladi. Agar blokda bajariladigan bo'lim bo'lmasa, PL/SQL bajariladigan bo'limni topishga harakat qiladi. shu jumladan asosiy birlik (asosiy blokni o'rab olish), ya'ni. istisnoni tashlagan koddan tashqarida bo'lgan blokda. Agar bevosita o'rab turgan blokda ushbu istisno uchun ishlov beruvchi bo'lmasa, qidiruv keyingi darajadagi bloklarda mos keladigan ishlov beruvchi topilmaguncha davom etadi va agar topilmasa, dasturning bajarilishi ishlov berilmagan xato xabari bilan to'xtaydi.

Blokning istisnolardan foydalanish qismi informatsion xato xabarlarini chiqarish va bajarish uchun ideal joydir tozalash (tozalash), bu kelajakda chalkashlik yoki muammolarni keltirib chiqaradigan hamma narsadan xalos bo'lishga imkon beradi. Agar jadvalga qator qo'shgan protsedurani bajarish paytida istisno qilingan bo'lsa, odatdagi tozalash protsedurasi ROLLBACK iborasini o'z ichiga olishi mumkin.

Boshqaruv istisno ishlovchisiga o'tkazilgandan so'ng, u istisnoga sabab bo'lgan bayonotga qaytarilmaydi. Buning o'rniga boshqaruv ichki blok yoki protsedura/funksiya chaqiruvidan so'ng darhol qo'shuvchi asosiy blok bayonotiga o'tkaziladi.

Tizimdan istisnolar

Siz PL/SQL da oldindan belgilangan ZERO_DIVIDE istisnosi bilan allaqachon tanishsiz. PL/SQL yoki Oracle tomonidan tan olingan va chiqarilgan yana bir qancha tizim istisnolari mavjud. 1-jadvalda tizim istisnolarining to'liq ro'yxati keltirilgan.

PL/SQL da foydalanuvchilarga xato ma'lumotlarini ikki xil usulda berishingiz mumkin. Birinchi usul - xato kodini qaytaradigan SQLCODE buyrug'idan foydalanish. Bu kod salbiy raqam bo'lib, odatda istisno ishlanmay qolsa, dastur tugatilganda chop etiladigan ORA xatosi soniga teng. Ikkinchi usul - xato tasvirlangan matnli xabarni qaytarish. Tegishli buyruq SQLERRM deb nomlanishi ajablanarli emas. SQLCODE ham, SQLERRM ham istisno ishlovchida ishlatilishi mumkin. Eslatma: Barcha tizim istisnolarining nomlari mavjud emas.

Jadval1 . Tizimdan istisnolar

tizimdan istisno,xato kodi

Qo'zg'alish sababi

KURSOR_ Allaqachon_ OCHIQ

ORA-06511

Allaqachon ochiq kursorni ochishga urinish

DUP_VAL_ON_INDEX

ORA-00001

Noyob indeks va shuning uchun noyob cheklovga ega bo'lgan ustunga takroriy qiymat kiritishga urinish

Yaroqsiz_ KURSOR

ORA-01001

Ochilmagan kursorni OLISHga urinish yoki ochilmagan kursorni yopishga urinish

NO_DATA_FOUND

ORA-01403

SELECT nol qatorlarni qaytarganda SELECT INTO ga harakat qilish (va bu kitob doirasidan tashqaridagi boshqa sabablar)

DASTUR_ XATO

ORA-06501

Ichki xato. Odatda Oracle qo'llab-quvvatlash xizmatiga murojaat qilishingiz kerakligini anglatadi

SAQLASH_ XATO

ORA-06500

Dasturda tizim xotirasi yetarli emas

TIMEOUT_ON_RESOURCE

ORA-00051

Dastur ba'zi manbalar mavjud bo'lishini juda uzoq kutdi

JUDA_KO'P_QATIR

ORA-01422

PL/SQL da SELECT INTO bir nechta qatorni qaytardi

VALUE_ XATO

ORA-06502

PL/SOL noto‘g‘ri ma’lumotlarni konvertatsiya qilish yoki qisqartirish yoki yaroqsiz ma’lumotlar cheklanishiga duch keldi

NO_ BO'LMOQ

ORA-01476

Nolga bo'lishga harakat qiling

Asosiy blokda belgilangan istisnolar bilan qamrab olinmagan barcha boshqa istisnolar va ichki xatolar. Qaysi nomli istisno bilan ishlashni aniq bilmasangiz va chiqarilgan har qanday istisnolarni hal qilishni xohlasangiz ishlatiladi

Keling, ushbu bobdagi birinchi misolga qaytaylik va unda SQLCODE va ​​SQLERRM dan foydalanamiz. Quyida misolning manba kodi va uni ishga tushirish natijalari keltirilgan (1-rasm).

NUMBER_a soni:= 6;

Raqam_b NUMBER;

Raqam_b:= 0;

Raqam_a:= Raqam_a / Raqam_b;

Raqam_b:= 7;

dbms_output.put_line(" Raqam_b qiymati "|| Raqam_b);

ISTISOZ

QACHON NO_BO'LIB KESA

err_num NUMBER:= SQLCODE;

err_msg VARCHAR2(512) := SQLERRM;

dbms_output.put_line("ORA xato raqami" || err_num);

dbms_output.put_line("ORA xato xabari " || err_msg);

dbms_output.put_line("A-sonning qiymati" || Raqam_a);

dbms_output.put_line("B raqamining qiymati" || Raqam_b);

SQL> server chiqishini yoqing

SQL> E'lon qiling

2 soni_a NUMBER:= 6;

3 raqami_b NUMBER;

4 BOSHLADI

5 soni_b:= 0;

6 a soni:= a soni / b soni;

7 soni_b:= 7;

8 dbms_output. put_line(" B raqamining qiymati "|| son_b);

9 ISTISOZ

10 QACHON ZERO_DIVIDE

11 KEYIN

13 xato_num NUMBER:= SQLCODE;

14 err_msg VARCHAR2(512) := SQLERRM;

15 BOSHLASH

16 dbms_output. put_line("ORA xato raqami "|| err_num);

17 dbms_output. put_line("ORA xato xabari " || err_msg);

18 dbms_output.put_line("a sonining qiymati " || son_a);

19 dbms_output.put_line("B raqamining qiymati " || son_b);

20END;

21END;

ORA xato raqami -1476

ORA xato xabari ORA-01476: bo'luvchi nolga teng

6 raqamining qiymati

_b raqamining qiymati 0

PL/SQL protsedurasi muvaffaqiyatli yakunlandi.

Guruch. bitta. Tizim istisnolari bilan ishlashda SQLCODE va ​​SQLERRM dan foydalanish

Oracle ma'lumotlar bazasi ma'murlari va dasturchilari ba'zan o'z ishlarida ma'lumotlar bazasi "qasamyod" qila boshlaydi va ko'pincha umuman tushunarsiz tilda uchraydi. Ushbu maqolada biz Oracle Errors tilini va ogohlantirish xabarlarini ko'rib chiqamiz. Foydalanuvchilarga nima sodir bo'layotganini tezda boshqarishga va vaziyatni to'g'rilash choralarini ko'rishga yordam berish uchun barcha xatolar katta bo'limlar va kichik bo'limlarga guruhlangan. Ushbu maqolada biz guruhlarni ko'rib chiqamiz birinchi ming Oracle xatosi(diapazonlar bo'yicha 0 dan 999 gacha bo'lgan kodlar), shuningdek, ularning paydo bo'lish sabablarini ularni tuzatish bo'yicha harakatlar taklifi bilan tushuntiring. Xatoning formati "ORA-xxxxx". Boshida "ORA" prefiksi, so'ngra chiziqcha orqali besh xonali xato kodi keladi.

Oracle xato guruhlari

Xato xabarlari ORA-00000 - ORA-00099

ORA-00000 xabarlari normal, muvaffaqiyatli yakunlandi, ya'ni xato emas.

Yadroga kirishning uslubiy xatolari 0001-0049

  • ORA-00001: indeksdagi ikki nusxadagi kalit
  • ORA-00017: maksimal qo‘ng‘iroqlar soni oshib ketdi
  • ORA-00018: maksimal seanslar soni oshib ketdi
  • ORA-00019: seanslar soni litsenziyalar sonidan oshdi
  • ORA-00020: maksimal jarayonlar soni (son) oshib ketdi
  • ORA-00021 seansi boshqa jarayon tomonidan foydalanilmoqda. Seansni almashtirmang
  • ORA-00022: seans identifikatori yaroqsiz. Ruxsat berilmadi
  • ORA-00023: Sessiyada shaxsiy xotira havolalari mavjud. Seansni uzib bo‘lmadi
  • ORA-00024: bitta foydalanuvchi rejimida bir nechta jarayonlarga ulanish taqiqlanadi
  • ORA-00025: [string] joylashtira olmaydi
  • ORA-00026: seans identifikatori etishmayotgan yoki yaroqsiz
  • ORA-00027: joriy seansni yo‘q qilib bo‘lmadi
  • ORA-00028: seansingiz yo‘q qilindi
  • ORA-00029: sessiya foydalanuvchi sessiyasi emas
  • ORA-00030: belgilangan identifikatorli foydalanuvchi seansi mavjud emas
  • ORA-00031: seans yo‘q qilish uchun belgilangan
  • ORA-00032: sessiyani ko‘chirish paroli noto‘g‘ri
  • ORA-00033: bo'sh parol bilan joriy seans
  • ORA-00034: joriy PL/SQL seansida QAYTA QILISH yoki QAYTA QILIB bo‘lmaydi
  • ORA-00035: LICENSE_MAX_USERS qiymati joriy foydalanuvchilar sonidan kam bo‘lmasligi kerak
  • ORA-00036: SQL rekursiyasining maksimal darajalari (qiymati) soniga erishildi
  • ORA-00037: seansni boshqa server guruhiga o‘tkazib bo‘lmadi
  • ORA-00038: Seans yaratib bo‘lmadi. Server guruhi boshqa foydalanuvchiga tegishli

ENQ xatolari 0050-0080

  • ORA-00050: navbatni olishda operatsion tizim xatosi
  • ORA-00051: resurs vaqti tugadi
  • ORA-00052: qaytarilgan resurslarning maksimal soni oshib ketdi
  • ORA-00053: navbatlarning maksimal sonidan oshib ketdi
  • ORA-00054: resurs NOWAIT ko‘rsatkichiga kirish bilan band
  • ORA-00055: DML blokirovkalarining maksimal soni oshib ketdi
  • ORA-00056: DDL qulfi qulflangan ob'ektga o'rnatilgan
  • ORA-00057: stolni vaqtincha qulflashning maksimal sonidan oshib ketdi
  • ORA-00058: DB_BLOCK_SIZE oʻrnatilgan maʼlumotlar bazasiga teng boʻlishi kerak
  • ORA-00059: DB_FILES parametr qiymati oshib ketdi
  • ORA-00060: resursni kutish vaqtida boshi berk ko'chaga kirdi
  • ORA-00061: turli misolda turli xil DML_LOCK sozlamalari mavjud
  • ORA-00062: Butun jadvaldagi DML blokirovkasini olish mumkin emas. DML_LOCKS sozlamasi null
  • ORA-00063: LOG_FILES parametr qiymati oshib ketdi
  • ORA-00064: obyektni joylashtirish mumkin emas, u operatsion tizim uchun juda katta
  • ORA-00065: FIXED_DATE parametrini ishga tushirishda xatolik
  • ORA-00066: LOG_FILES qiymatlari mos kelmaydi
  • ORA-00067: string parametri uchun yaroqsiz qiymat, satr boʻlishi kerak
  • ORA-00068: string parametri uchun yaroqsiz qiymat, satr boʻlishi kerak
  • ORA-00069: jadvalni bloklab bo‘lmadi - [string] da blokirovka rad etildi
  • ORA-00070: [string] buyrug‘i yaroqsiz
  • ORA-00071: jarayonlar soni 1 dan ortiq boʻlishi kerak:
  • ORA-00072: Belgilangan jarayon faol emas
  • ORA-00073: buyruq uchun ko‘rsatilgan argumentlar soni noto‘g‘ri
  • ORA-00074: jarayon aniqlanmagan
  • ORA-00075: jarayon [string] joriy misolda topilmadi
  • ORA-00076: dump [string] topilmadi
  • ORA-00077: Belgilangan dump yaroqsiz
  • ORA-00078: dumpni nom bo‘yicha hal qilib bo‘lmadi
  • ORA-00079: oʻzgaruvchi [qiymat] topilmadi
  • ORA-00080: xotiraning noto'g'ri maydonini o'chirishga harakat qilindi
  • ORA-00081: belgilangan diapazon yaroqsiz
  • ORA-00082: xotira diapazoni belgilangan diapazonda emas
  • ORA-00083: SGA buzilgan bo'lishi mumkin
  • ORA-00084: Global hudud PGA, SGA yoki UGA boʻlishi kerak
  • ORA-00085: joriy qo‘ng‘iroq mavjud emas
  • ORA-00086: foydalanuvchi chaqiruvi mavjud emas
  • ORA-00087: buyruqni masofaviy nusxada bajarib bo'lmaydi
  • ORA-00088: buyruq umumiy server tomonidan bajarilmaydi
  • ORA-00089: ORADEBUG buyrug'idagi namuna raqami noto'g'ri
  • ORA-00090: ORADEBUG buyrug'i klasterli ma'lumotlar bazasida xotirani to'g'ri taqsimlay olmadi
  • ORA-00091: LARGE_POOL_SIZE belgilanishi kerak
  • ORA-00092: LARGE_POOL_SIZE LARGE_POOL_MIN_ALLOC dan katta bo‘lishi kerak
  • ORA-00093: %s noto‘g‘ri ko‘rsatilgan
  • ORA-00094: %s Integer qiymatini o‘z ichiga olishi kerak
  • ORA-00096: parametr [qiymat] uchun noto‘g‘ri qiymat [qiymat] diapazonda bo‘lishi kerak
  • ORA-00097: SQL92 tomonidan qo'llab-quvvatlanmaydigan Oracle SQL xususiyatlari:
  • ORA-00099: Resurs vaqti tugadi. Potentsial PDML boshsizligi

Mintaqa va segment xatolar ORA-00100 - ORA-00299

  • ORA-00100: maʼlumotlar topilmadi
  • ORA-00101: DISPATCHERS tizim parametrining noto‘g‘ri spetsifikatsiyasi
  • ORA-00102: Belgilangan tarmoq protokolidan dispetcherlar foydalana olmaydi
  • ORA-00103: yaroqsiz tarmoq protokoli, dispetcherlar foydalanishi uchun ajratilgan
  • ORA-00104: blokirovka aniqlandi, barcha mavjud serverlar bloklandi, resurs kutilmoqda
  • ORA-00105: dispetcher konfiguratsiyasi juda ko‘p
  • ORA-00106: dispetcherga ulanganda ma'lumotlar bazasini ishga tushirish yoki to'xtatib bo'lmaydi
  • ORA-00107: ORACLE tinglovchi jarayoniga ulanib bo‘lmadi
  • ORA-00108: dispetcherni asinxron ulanishlarni qabul qilish uchun sozlash imkonsiz
  • ORA-00111: yaroqsiz atribut [string]
  • ORA-00112: atribut qiymati null
  • ORA-00113: protokol nomi [string] juda uzun
  • ORA-00114: SERVICE_NAMES tizim parametri uchun yaroqsiz qiymat
  • ORA-00115: ulanish uzildi, ulanish jadvali toʻlgan
  • ORA-00116: SERVICE_NAMES qiymati noto‘g‘ri
  • ORA-00117: PROTOKOL, MANZIL yoki TAVSIF ko'rsatilishi kerak
  • ORA-00118: faqat bitta PROTOKOL, MANZIL yoki TAVSIF qiymatini belgilash mumkin
  • ORA-00119: tizim parametri qiymati yaroqsiz
  • ORA-00120: dispetcherga ruxsat berilmagan yoki o'rnatilmagan
  • ORA-00121: SHARED_SERVERS DISPATCHERS opsiyasisiz aniqlangan
  • ORA-00122: tarmoq konfiguratsiyasini ishga tushirib bo‘lmadi
  • ORA-00123: bo'sh turgan umumiy server
  • ORA-00124: MAX_SHARED_SERVERSsiz DISPATCHERS koʻrsatilgan
  • ORA-00125: ulanishni tiklash; noto'g'ri tushuncha
  • ORA-00126: ulanishni tiklash; qarama-qarshilik
  • ORA-00127: dispetcher mavjud emas
  • ORA-00128: buyruq dispetcher nomini talab qiladi
  • ORA-00129: tinglash manzili noto‘g‘ri
  • ORA-00130: tinglash manzili noto‘g‘ri
  • ORA-00131: tarmoq protokoli ko'rsatilgan ro'yxatga olishni qo'llab-quvvatlamaydi
  • ORA-00132: sintaksis xatosi yoki tarmoq nomi noto‘g‘ri
  • ORA-00150: takroriy tranzaksiya identifikatori
  • ORA-00151: takroriy tranzaksiya identifikatori
  • ORA-00152: joriy seans so‘ralgan seansga mos kelmaydi
  • ORA-00153: XA kutubxonasida xato
  • ORA-00154: tranzaksiya monitoridagi protokol xatosi
  • ORA-00155: global tranzaksiyadan tashqari ishni bajarib bo'lmaydi
  • ORA-00160: global tranzaksiya nomi maksimal uzunlikdan oshib ketdi
  • ORA-00161: tranzaksiya uzunligi yaroqsiz
  • ORA-00162: tashqi maʼlumotlar bazasi identifikatori maksimal qiymatdan oshib ketdi
  • ORA-00163: tashqi maʼlumotlar bazasi nomi maksimal qiymatdan oshib ketdi
  • ORA-00164: portativ taqsimlangan tranzaktsiyalar ustiga taqsimlangan avtonom tranzaktsiyalarga ruxsat berilmaydi
  • ORA-00165: masofaviy operatsiyalar bilan oflayn portativ taqsimlangan tranzaktsiyalarga ruxsat berilmaydi
  • ORA-00200: boshqaruv faylini yaratib bo‘lmadi
  • ORA-00201: boshqaruv fayli versiyasi [string] ORACLE versiyasi [string] bilan mos kelmaydi
  • ORA-00202: boshqaruv fayli: [string]
  • ORA-00203: noto‘g‘ri boshqaruv fayli ishlatilgan
  • ORA-00204: boshqaruv faylida maʼlumotlar blokini oʻqish xatosi (blok [string], bloklar [string])
  • ORA-00205: boshqaruv fayli identifikatsiya qilinmadi. Qo'shimcha ma'lumot olish uchun jurnalga qarang
  • ORA-00206: boshqaruv fayliga yozish xatosi (blok [string], bloklar [string])
  • ORA-00207: boshqaruv fayli ushbu ma'lumotlar bazasidan emas
  • ORA-00208: boshqaruv fayllari soni ruxsat etilgan qiymatdan oshib ketadi [string]
  • ORA-00209: boshqaruv fayli maʼlumotlar bloki mos kelmadi. Qo'shimcha ma'lumot olish uchun jurnalga qarang
  • ORA-00210: Belgilangan boshqaruv faylini ochib bo‘lmadi
  • ORA-00211: boshqaruv fayli avvalgisiga mos kelmaydi
  • ORA-00212: blok hajmi [string] minimal talab qilingan [string] dan kichik
  • ORA-00213: boshqaruv faylidan qayta foydalanish mumkin emas, fayl hajmi %1: %2 talab qilinadi:
  • ORA-00214: boshqaruv fayl versiyasi fayl versiyasiga mos kelmaydi
  • ORA-00215: kamida bitta boshqaruv fayli boʻlishi kerak
  • ORA-00216: 8.0.2 dan portlash uchun boshqaruv fayli hajmini o‘zgartirib bo‘lmaydi:
  • ORA-00217: boshqaruv fayli hajmini 9.0.1 dan ko‘chirish uchun o‘zgartirib bo‘lmaydi:
  • ORA-00218: boshqaruv fayllari maʼlumotlar blokining oʻlchami DB_BLOCK_SIZE tomonidan belgilangan hajmga mos kelmaydi
  • ORA-00219: boshqaruv fayli hajmi belgilangan hajmdan oshib ketadi
  • ORA-00220: boshqaruv faylini qo‘shib bo‘lmadi, batafsil ma’lumot uchun ogohlantirish jurnaliga qarang
  • ORA-00221: boshqaruv fayliga yozish xatosi
  • ORA-00222: operatsiya allaqachon o'rnatilgan boshqaruv fayli nomidan foydalanishga harakat qiladi
  • ORA-00223: O‘zgartirilayotgan fayl yaroqsiz yoki noto‘g‘ri versiyaga ega
  • ORA-00224: noto‘g‘ri yozuv turiga ega boshqaruv fayli hajmini o‘zgartirib bo‘lmadi
  • ORA-00225: boshqaruv faylining kutilgan hajmi [string] haqiqiy oʻlchamdan [string] farq qiladi
  • ORA-00226: muqobil boshqaruv fayli ochiq bo'lsa, ishlash mumkin emas
  • ORA-00227: boshqaruv faylida buzilgan ma'lumotlar bloki topildi (blok [string] bloklari [string]).
  • ORA-00228: muqobil boshqaruv fayli nomining uzunligi ruxsat etilgan qiymatdan oshib ketdi [string]
  • ORA-00229 operatsiyasi rad etildi. Snapshot fayli allaqachon navbatga qoʻyilgan va qayta ishlanmoqda.
  • ORA-00230 operatsiyasi rad etildi. Boshqarish fayli oniy tasvir navbati mavjud emas
  • ORA-00231: boshqaruv fayli oniy tasviri nomlanmagan
  • ORA-00232: boshqaruv fayli surati mavjud emas, buzilgan yoki o‘qib bo‘lmaydi
  • ORA-00233: boshqaruv fayli nusxasi buzilgan yoki o‘qib bo‘lmaydi
  • ORA-00234: oniy tasvirni aniqlash yoki ochish yoki boshqaruv faylini nusxalashda xatolik
  • ORA-00235: nazorat fayli parallel o'zgartirish uchun bloklangan
  • ORA-00236: surat bekor qilindi, zaxira boshqaruv fayli tanlandi
  • ORA-00237: suratga olishga ruxsat berilmagan. Yangi boshqaruv fayli yaratildi
  • ORA-00238: operatsiya fayl nomidan maʼlumotlar bazasi nomi sifatida foydalanishga harakat qiladi
  • ORA-00250: arxivator ishlamayapti
  • ORA-00251: LOG_ARCHIVE_DUPLEX_DEST %1 bilan bir xil katalog bo‘lishi mumkin emas:
  • ORA-00252: jurnal bo'sh. Arxivlash mumkin emas
  • ORA-00253: belgilangan qator uzunligi chegaradan oshib ketdi
  • ORA-00254: arxivni boshqarish liniyasida xato
  • ORA-00255: jurnal faylini arxivlashda xatolik
  • ORA-00256: Arxiv qatorini tahlil qilishda xatolik yuz berdi
  • ORA-00257: arxivator xatosi. Resurs band bo‘lsa, ulana olmayapman
  • ORA-00258: NOARCHIVELOG jurnalida qo‘lda arxivlash ko‘rsatilishi kerak
  • ORA-00259: ochiq misollar jurnali joriy jurnal va uni arxivlab bo‘lmaydi
  • ORA-00260: [string] ipi uchun faol navbat jurnali [string] topilmadi
  • ORA-00261: jurnal o'zgartirilgan yoki arxivlangan
  • ORA-00262: joriy jurnal [string] boshqa mavzu [string] bilan band, almashtirib bo‘lmaydi
  • ORA-00263: mavzuni arxivlash uchun jurnallar yo'q [string]
  • ORA-00264: qayta tiklash shart emas
  • ORA-00265: Namunani tiklash talab qilinadi, lekin ARCHIVELOG rejimini sozlash mumkin
  • ORA-00266: arxiv jurnali nomi talab qilinadi
  • ORA-00267: arxiv jurnali nomi shart emas
  • ORA-00268: Belgilangan jurnal fayli mavjud emas
  • ORA-00269: Belgilangan jurnal fayli [string] emas, [string] oqimining bir qismidir
  • ORA-00270: arxiv jurnalini yaratishda xatolik [string]
  • ORA-00271: arxivlash uchun jurnallar yo'q
  • ORA-00272: arxiv jurnaliga yozishda xatolik [string]
  • ORA-00273: To'g'ridan-to'g'ri yuklangan ma'lumotlarni jurnalga yozmasdan tiklash
  • ORA-00274: yaroqsiz tiklash parametri qiymati [qiymat] belgilandi
  • ORA-00275: tiklash jarayoni allaqachon boshlangan
  • ORA-00276: CHANGE kalit so‘zi ko‘rsatilgan, lekin o‘zgartirish raqami ko‘rsatilmagan
  • ORA-00277: yaroqsiz tiklash opsiyasi UNTIL bayrog'i [string]
  • ORA-00278: qayta tiklash uchun jurnal fayli [string] endi talab qilinmaydi
  • ORA-00279: jurnal fayli nomi talab qilinadi
  • ORA-00280: kerakli oqim va ketma-ketlik nomi
  • ORA-00281: dispetcher yordamida tiklashni amalga oshirib bo'lmaydi
  • ORA-00282: UPI chaqiruvi qo‘llab-quvvatlanmaydi, ALTER DATABASE RECOVER-dan foydalaning
  • ORA-00283: tiklash seansi xatolar tufayli bekor qilindi
  • ORA-00284: tiklash seansi davom etmoqda
  • ORA-00285: yaroqsiz TIME qiymati
  • ORA-00286: mavjud fayllar yoki yaroqli maʼlumotlar fayllari yoʻq
  • ORA-00287: ko‘rsatilgan o‘zgartirish raqami [string] oqim [string] da topilmadi
  • ORA-00288: tiklashni davom ettirish uchun ALTER DATABASE RECOVER CONTINUE-dan foydalaning
  • ORA-00289: o'zgaruvchi [qiymat]
  • ORA-00290: Operatsion tizim xatosi. Quyidagi xato xabariga qarang
  • ORA-00291: PARALLEL raqamli qiymat talab qiladi
  • ORA-00292: parallel tiklash komponenti o'rnatilmagan
  • ORA-00293: boshqaruv fayli qayta ishlash jurnali bilan sinxronlashtirilmagan
  • ORA-00294: arxiv jurnali uchun yaroqsiz format belgilangan [string]
  • ORA-00295: noto‘g‘ri ma’lumotlar/vaqtinchalik ma’lumotlar fayli raqami [string], 1: va [string] orasida bo‘lishi kerak
  • ORA-00296: QAYTALASH MA'LUMOTLARI RO'YXATI qiymati oshib ketdi
  • ORA-00297: QAYTA QUVVATLASH MA'LUMOT FAYLLARI RO'YXATINI QAYTA QUVVATLASH MA'LUMOTLARI RO'YXATINI ko'rsatish uchun zarur
  • ORA-00298: atribut qiymati etishmayotgan yoki yaroqsiz
  • ORA-00299: %1 maʼlumotlar faylini fayl darajasida tiklash

Ma'lumotlar bazasini kiritish-chiqarish boshqaruvi xatolari ORA-00300 - ORA-00399

Oracle ma'lumotlar bazasiga kirish va undan chiqishni boshqarishdagi xatolar:

  • ORA-00300: takrorlash jurnali blokining o‘lchami noto‘g‘ri, belgilangan o‘lcham [string] o‘lcham chegarasidan oshib ketdi [string]
  • ORA-00301: jurnal faylini [string] qo‘shishda xatolik – faylni yaratib bo‘lmadi
  • ORA-00302: qayta tiklash fayllari soni chegarasidan oshib ketdi
  • ORA-00303: Parallel Redo-ni bajarib bo'lmadi
  • ORA-00304: so‘ralgan INSTANCE_NUMBER band
  • ORA-00305: [string] ning jurnali [string] nomuvofiq va boshqa maʼlumotlar bazasiga tegishli
  • ORA-00306: misol chegarasiga yetdi [string]
  • ORA-00307: diapazondan tashqarida INSTANCE_NUMBER so‘raldi, maksimal [string]
  • ORA-00308: arxiv jurnalini ochib boʻlmadi [string]
  • ORA-00309: jurnal boshqa ma'lumotlar bazasiga tegishli
  • ORA-00310: arxivlangan jurnal [string] ketma-ketligini o'z ichiga oladi; zarur ketma-ketlik [qiymat]
  • ORA-00311: Arxiv jurnali sarlavhasini o‘qib bo‘lmadi
  • ORA-00312: mavjud jurnal [string] mavzu [string]
  • ORA-00313: jurnallar guruhi faylini ochishda xatolik [string] oqim [string]
  • ORA-00314: jurnal [string], kutilgan ketma-ketlik [string] [string] bilan mos kelmaydi
  • ORA-00315: jurnal [string] oqim [string], sarlavhada noto‘g‘ri qiymat [string]
  • ORA-00316: jurnal [string], sarlavhadagi [string] qiymati bu jurnal fayli emasligini bildiradi
  • ORA-00317: belgilangan fayl [string] jurnal fayli emas
  • ORA-00318: jurnal [string] ruxsat etilgan hajmdan oshib ketdi [string] [string] bilan mos kelmaydi
  • ORA-00319: jurnal [string] noto'g'ri yuvish holatiga ega
  • ORA-00320: oqim [string] fayl sarlavhasini o‘qib bo‘lmadi
  • ORA-00321: jurnal fayli sarlavhasidagi maʼlumotlarni yangilab boʻlmadi [string] oqim [string]
  • ORA-00322: [string] jurnalining [string] joriy nusxasi emas
  • ORA-00323: joriy oqim jurnali [string] ishlatilmaydi va qolganlari arxivlanishi kerak
  • ORA-00324: jurnal fayli nomi [string] tarjimasi [string] juda uzun, chegaradan oshib ketdi [string]
  • ORA-00325: oqim arxivi jurnali [string] sarlavha qiymati noto‘g‘ri [string]
  • ORA-00326: jurnal [string] bilan boshlanadi, avval oʻzgartirilgan [string] talab qilinadi
  • ORA-00327: [string] jurnalining [string] jismoniy hajmi [string] talab qilinganidan kichikroq [string]
  • ORA-00328: arxivlangan jurnal [string] bilan tugaydi, keyinroq oʻzgartirish kerak [string]
  • ORA-00329: arxivlangan jurnal [string] bilan boshlanadi, [string] oʻzgarishi kerak
  • ORA-00330: arxiv jurnali [string] bilan tugaydi, oʻzgartirish zarur [string]
  • ORA-00331: jurnal versiyasi [string] ORACLE versiyasi [string] bilan mos kelmaydi
  • ORA-00332: arxiv jurnali juda kichik, ehtimol toʻliq arxivlanmagan
  • ORA-00333: mavjud [string] dan noto'g'ri bloklarni [string] o'qish jurnalini qayta bajaring
  • ORA-00334: arxiv jurnali [string]
  • ORA-00335: jurnal mavjud [string]: Bu raqam bilan jurnal yo'q, jurnal mavjud emas
  • ORA-00336: jurnal fayli blokining hajmi minimal blok hajmidan kichikroq [string]
  • ORA-00337: jurnal fayli [string] mavjud emas va hajmi belgilanmagan
  • ORA-00338: log [string] oxirgi nazorat fayli qiymatidan kattaroq
  • ORA-00339: arxivlangan jurnalda qayta urinishlar mavjud emas
  • ORA-00340: [string] jurnalining [string] jurnalini qayta ishlashda kiritish/chiqarish xatosi
  • ORA-00341: jurnal faylida [string] sarlavha raqami noto‘g‘ri [string]
  • ORA-00342: arxiv jurnalida SCN maʼlumotlari yoʻq [string]
  • ORA-00343: juda koʻp xato, jurnal yopildi
  • ORA-00344: mavjud jurnalni qayta yaratib bo‘lmadi [string]
  • ORA-00345: jurnalni qayta yozishda xatolik, blok [string] jami [string]
  • ORA-00346: jurnal eskirgan deb belgilangan (STALE)
  • ORA-00347: [string] jurnalining [string] blok oʻlchamiga ega [string], mos kelmaydi, [string] boʻlishi kerak
  • ORA-00348: qayta tiklashni qayta ishlash muvaffaqiyatsiz tugadi, misol to'xtatilishi kerak
  • ORA-00349: [string] uchun blok hajmi olinmadi
  • ORA-00350: [string] misolining jurnali [string] (stream [string]) arxivlanishi kerak
  • ORA-00351: tiklash vaqti noto'g'ri
  • ORA-00352: [string] oqimidagi barcha jurnallar arxivlanishi kerak - ruxsat berilmaydi
  • ORA-00353: buzilgan jurnal bloki [string] o'zgartirish [string] vaqt [string]
  • ORA-00354: jurnal blokining sarlavhasi buzilgan
  • ORA-00355: raqamni ketma-ket o'zgartirish
  • ORA-00356: o‘zgartirish tavsifi uzunligi noto‘g‘ri
  • ORA-00357: jurnal fayli uchun juda koʻp aʼzolar koʻrsatilgan, maksimal [string]
  • ORA-00358: juda koʻp aʼzolar koʻrsatilgan, maksimal [string]
  • ORA-00359: jurnal fayli guruhi [string] mavjud emas
  • ORA-00360: Jurnal fayliga a'zo emas: [string]
  • ORA-00361: oxirgi jurnalni [string] [string] guruhidan olib tashlab boʻlmadi
  • ORA-00362: zarur aʼzo [string] guruhidagi toʻgʻri jurnal fayli
  • ORA-00363: jurnal arxivlanmagan
  • ORA-00364: yangi jurnal sarlavhasiga yozish mumkin emas
  • ORA-00365: Belgilangan jurnal yaroqsiz
  • ORA-00366: Jurnal [string] oqimi [string], fayl sarlavhasida nazorat summasi xatosi
  • ORA-00367: fayl sarlavhasida nazorat summasi xatosi
  • ORA-00368: takrorlash jurnali blokida nazorat summasi xatosi
  • ORA-00369: joriy mavzu jurnali [string] buzilgan va boshqa jurnallar tozalangan
  • ORA-00371: umumiy hovuzda xotira yetarli emas, kamida [string] boʻlishi kerak
  • ORA-00372: [string] faylini hozirda o‘zgartirib bo‘lmaydi
  • ORA-00373: ochiq jurnal versiyasi [string] ORACLE versiyasi [string] bilan mos kelmaydi
  • ORA-00374: db_block_size=[qiymat] parametrining qiymati yaroqsiz; [qiymat..qiymat] oralig'ida kompozit bo'lishi kerak
  • ORA-00375: db_block_size standart qiymatini olinmadi
  • ORA-00376: [string] faylini hozir o‘qib bo‘lmaydi
  • ORA-00377: [string] faylining tez-tez zaxira nusxasi yozish operatsiyalarida blokirovkaga olib keladi
  • ORA-00378: belgilangan bufer keshini yaratib bo‘lmadi
  • ORA-00379: [string]K bloki uchun [string] bufer keshida bepul buferlar yo‘q
  • ORA-00380: db_[qiymat]k_cache_size [qiymat]K standart blok hajmini belgilab bo‘lmaydi.
  • ORA-00381: bufer kesh hajmini belgilash uchun eski va yangi variantlardan foydalana olmaysiz
  • ORA-00382: %s blok hajmi noto‘g‘ri, yaroqli qiymat [str..value]
  • ORA-00383: keshning standart qiymatini nolga tushirish mumkin emas
  • ORA-00384: keshni kengaytirish uchun xotira yetarli emas
  • ORA-00390: mavzu [string] jurnali [string] tozalandi va joriy jurnal bo‘lishi mumkin emas
  • ORA-00391: bundan buyon barcha mavzular yangi jurnal formatiga o‘tishi kerak
  • ORA-00392: ip [string] jurnali [string] tozalandi, ishlashga ruxsat berilmagan
  • ORA-00393: oflayn ma'lumotlar bazasini tiklash uchun zarur bo'lgan mavzu [string] jurnali.
  • ORA-00394: mavjud jurnal arxivlashda qayta ishlatiladi
  • ORA-00395: maʼlumotlar bazasi klonining jurnali nomini oʻzgartirish kerak
  • ORA-00396: xato [string] bir martalik qayta tiklash uchun orqaga qaytishni talab qiladi
  • ORA-00397: misolni tiklash xato bilan bekor qilindi
  • ORA-00398: to'g'ri konfiguratsiyadan oldin to'xtatilgan tiklash
  • ORA-00399: redo log o'zgarishlarining buzilgan tavsifi

Ma'lumotlar bazasini ishga tushirish xatolari ORA-00400 - ORA-00499

  • ORA-00400: parametr [string] uchun noto‘g‘ri qiymat [string]
  • ORA-00401: [qiymat] parametr qiymati ushbu versiyada qo‘llab-quvvatlanmaydi
  • ORA-00402: [string] versiyasidagi maʼlumotlar bazasi oʻzgarishlaridan [string] versiyasi tomonidan foydalanilmaydi
  • ORA-00403: [string] boshqa [string] misollari bilan bir xil emas
  • ORA-00404: O'zgartirilgan fayl topilmadi: [string]
  • ORA-00405: moslik turi [string]
  • ORA-00406: MUVOFIQ opsiya [string] yoki undan yuqorisini talab qiladi
  • ORA-00407: [string].[string] versiyasidan [string].[string] versiyasiga qayta yangilashga ruxsat berilmagan
  • ORA-00408: parametr qiymati [string] TRUE qilib o‘rnatildi
  • ORA-00436: Oracle litsenziyalanmagan. Yordam uchun Oracle korporatsiyasiga murojaat qiling
  • ORA-00437: Oracle ilg'or xususiyatlari litsenziyalanmagan. Yordam uchun Oracle korporatsiyasiga murojaat qiling
  • ORA-00438: [string] opsiyasi sozlanmagan
  • ORA-00439: ixtiyoriy xususiyatga ruxsat berilmagan: [string]
  • ORA-00443: fon jarayoni [string] ishlamayapti
  • ORA-00444: fon jarayoni [string] ishga tushirilganda muvaffaqiyatsiz tugadi
  • ORA-00445: fon jarayoni [string] soniyadan keyin [string] boshlanmadi
  • ORA-00446: fon jarayoni kutilmaganda boshlandi
  • ORA-00447: fon jarayonidagi muhim xato
  • ORA-00448: fon jarayonining normal tugashi
  • ORA-00449: fon jarayoni [string] xatosi [string] bilan birdan tugatildi
  • ORA-00470: LGWR jarayoni xatolik bilan chiqdi
  • ORA-00471: DBWR jarayoni xatolik bilan chiqdi
  • ORA-00472: pmon jarayoni xatolik bilan chiqdi
  • ORA-00473: ARCH jarayoni xatolik bilan chiqdi
  • ORA-00474: smon jarayoni xatolik bilan chiqdi
  • ORA-00475: TRWR jarayoni xatolik bilan chiqdi
  • ORA-00476: RECO jarayoni xatolik bilan chiqdi
  • ORA-00477: SNP* jarayoni xatolik bilan chiqdi
  • ORA-00478: smon jarayoni xato bilan chiqdi [string]
  • ORA-00480: LCK* jarayoni xato bilan chiqdi
  • ORA-00481: LMON jarayoni xatolik bilan chiqdi
  • ORA-00482: LMD* jarayoni xatolik bilan chiqdi
  • ORA-00483: oʻchirish vaqtida jarayon anormal tarzda tugatildi
  • ORA-00484: LMS* jarayoni xatolik bilan chiqdi
  • ORA-00485: DIAG jarayoni xato bilan chiqdi [string]

Xato xabarlari ORA-00500 - ORA-00599

  • ORA-00568: ishlov beruvchi uzilishlarining maksimal soni oshib ketdi

Falokatni tiklash xatolari ORA-00600 - ORA-00699

  • ORA-00600: Ichki xato kodi, argumentlar [qiymat], [qiymat], [qiymat], [qiymat], [qiymat], [qiymat], [qiymat], [qiymat]
  • ORA-00601: tarmoqni blokirovka qilishda ziddiyat
  • ORA-00602: ichki dasturiy ta'minotdan istisno
  • ORA-00603: Oracle server seansi muhim xato tufayli tugatildi
  • ORA-00604: rekursiv SQL darajasida xatolik yuz berdi [string]
  • ORA-00606: ichki xato kodi
  • ORA-00607: Ma'lumotlar blokini o'zgartirishda ichki xato

Lug'at xatolari ORA-00700 - ORA-00799

  • ORA-00701: maʼlumotlar bazasini ishga tushirish uchun zarur boʻlgan obyektni oʻzgartirib boʻlmaydi
  • ORA-00702: yuklovchi versiyasi [string] versiyasi [string] bilan mos kelmaydi
  • ORA-00703: misol qatori kesh blokirovkalarining maksimal soni oshib ketdi
  • ORA-00704: yuklash jarayoni anormal tarzda yakunlandi
  • ORA-00705: ishga tushirish vaqtida yaroqsiz holat; misolni to'xtating va qayta ishga tushiring
  • ORA-00706: fayl formatini oʻzgartirishda xatolik [string]

Umumiy ORACLE xatolari ORA-00800 - ORA-00899

  • ORA-0800: bufer yozish jarayoni faol emas(buferga yozish jarayoni faol emas).
    Sabab: Muammo buferga yozish jarayonini olib tashlashga olib kelgan ORACLE-ni ishga tushirishga urinish bilan bog'liq. Odatda, bu xabar xatolik sababini tushuntiruvchi tizim xatosi xabari bilan birga chiqariladi.
    Harakat: Xato sababini bilish uchun tizim xato xabaridan (agar mavjud bo'lsa) foydalaning. Agar tizim xatosi bo'lmasa, talablar ro'yxati uchun ORACLE o'rnatish qo'llanmasiga qarang. Barcha ORACLE mantiqiy nomlari toʻgʻri ekanligiga, ORACLE katalogida yetarlicha boʻsh disk maydoni mavjudligiga va global boʻlimlar va sahifalar yetarli ekanligiga ishonch hosil qiling. Shuningdek, ORACLE byudjeti talab qilinadigan ustuvorlikka ega ekanligiga ishonch hosil qiling. Muammoning manbai aniqlanmasa, tegishli o'rnatish dasturiga murojaat qiling.
  • ORA-0801: tasvirdan keyin yozish jarayoni faol emas
    Sabab: Bu xususiyat qo'llab-quvvatlanmaydi.
    Harakat: Iltimos, tegishli o'rnatish dasturiga qarang.
  • ORA-0802: kontekst maydoni yaroqsiz
    Sabab
    Harakat
  • ORA-0805: opiodr: mos kelmaydigan rekursiya darajasi soni
    Sabab:Bu ichki xato xabari boʻlib, normal ishlash vaqtida yuzaga kelmaydi.
    Harakat: Muammoning batafsil tavsifi uchun tegishli sozlash dasturiga murojaat qiling.
  • ORA-0806: oldin tasvir jarayoni faol emas
    Sabab
    Harakat
  • ORA-0807: tozalash jarayoni faol emas
    Sabab: Muammo ORACLE dasturini ishga tushirishga urinish bilan bog'liq bo'lib, bu oldindan ko'rish jarayonining bekor qilinishiga olib keldi.Odatda, bu xabar xatolik sababini tushuntiruvchi tizim xatosi xabari bilan birga chiqariladi.
    Harakat: Xato sababini bilish uchun tizim xato xabaridan (agar mavjud bo'lsa) foydalaning. Agar tizim xatosi bo'lmasa, to'g'ri o'rnatishni tekshirish uchun operatsion tizimingiz uchun ORACLE o'rnatish qo'llanmasiga qarang. Muammoning manbai aniqlanmasa, tegishli o'rnatish dasturiga murojaat qiling.
  • ORA-0809: opispf: yaroqsiz maxsus funksiya kodi.
    Sabab:Bu ichki xato xabari boʻlib, normal ishlash vaqtida yuzaga kelmaydi.
    Harakat: Muammoning batafsil tavsifi uchun tegishli sozlash dasturiga murojaat qiling.
  • ORA-0810: opiomc: kontekst maydoni asl manzillarda qayta koʻrsatilmagan
    Sabab:Bu ichki xato xabari boʻlib, normal ishlash vaqtida yuzaga kelmaydi.
    Harakat: Muammoning batafsil tavsifi uchun tegishli sozlash dasturiga murojaat qiling.
  • ORA-0811: o'qish jarayoni faol emas
    Sabab: Muammo ORACLE-ni ishga tushirishga urinish bilan bog'liq, bu esa o'qish jarayonining bekor qilinishiga olib keldi. Odatda, bu xabar xatolik sababini tushuntiruvchi tizim xatosi xabari bilan birga chiqariladi.
    Harakat: Xato sababini bilish uchun tizim xato xabaridan (agar mavjud bo'lsa) foydalaning. Agar tizim xatosi bo'lmasa, to'g'ri o'rnatishni tekshirish uchun operatsion tizimingiz uchun ORACLE o'rnatish qo'llanmasiga qarang. Muammoning manbai aniqlanmasa, tegishli o'rnatish dasturiga murojaat qiling.
  • ORA-0813: tasdiqlash xatosi (ilova olib tashlandi).
    Sabab:Bu ORACLE SORT bilan bogʻliq ichki xato xabari. Oddiy ish paytida bunday bo'lishi mumkin emas.
    Harakat: Muammoning batafsil tavsifi uchun tegishli sozlash dasturiga murojaat qiling.
  • ORA-0814: ltbdrv: noqonuniy qulflash rejimi
    Sabab:Bu ichki xato xabari boʻlib, normal ishlash vaqtida yuzaga kelmaydi.
    Harakat: Muammoning batafsil tavsifi uchun tegishli sozlash dasturiga murojaat qiling.
  • ORA-00816: xato xabari tarjima qilinmadi
    Sabab:Bu ichki xato xabari boʻlib, normal ishlash vaqtida yuzaga kelmaydi.
    Harakat: Muammoning batafsil tavsifi uchun tegishli sozlash dasturiga murojaat qiling.
  • ORA-0817: prsgkw: ichki xato belgisi topilmadi
    Sabab:Bu ichki xato xabari boʻlib, normal ishlash vaqtida yuzaga kelmaydi.
    Harakat: Muammoning batafsil tavsifi uchun tegishli sozlash dasturiga murojaat qiling.
  • ORA-0818: opispf: osf juda katta
    Sabab:Bu ichki xato xabari boʻlib, normal ishlash vaqtida yuzaga kelmaydi.
    Harakat: Muammoning batafsil tavsifi uchun tegishli sozlash dasturiga murojaat qiling.

Sintaksis xatolari ORA-00900 - ORA-00999

  • ORA-00900: yaroqsiz SQL bayonoti.
    Sabab: Siz kiritgan bayonot haqiqiy SQL buyrug'i sifatida tan olinmadi.
    Harakat: Yozuv xatolarini tekshiring, SQL buyrugʻi kalit soʻzlari quyidagi soʻzlardan biri bilan boshlanishiga ishonch hosil qiling: ALTER, AUDIT, CREATE, DELETE, DOP, GRANT, INSERT, NOAUDIT, RENAME, REVOKE, SELECT, UPDATE, LOCK, VALIDATE. Boshqa buyruqlar bu xatoga sabab bo'ladi.
  • ORA-00901: yaroqsiz CREATE buyrug'i sintaksisi / Yaroqsiz yaratish buyrug'i.
    Sabab: CREATE buyrug'ida yaroqsiz CREATE opsiyasi ishlatilgan.
    Harakat: Yozuv xatolarini tekshiring, CREATE buyrug'idan keyin quyidagi variantlardan biri kelganligiga ishonch hosil qiling: INDEX, PARTITION, SPACE DEFINITION, SYNONIM, TABLE yoki VIEW.
  • ORA-00902: noto'g'ri ma'lumotlar turi.
    Sabab: CREATE yoki ALTER TABLE bayonotida kiritilgan ma'lumotlar turi haqiqiy emas.
    Harakat: Yozuv xatolarini tekshiring, har bir ustun nomidan keyin quyidagi maʼlumotlar turlaridan biri kelishiga ishonch hosil qiling: DATA, CHAR, NUMBER, RAW, LONG yoki LONG RAW.
  • ORA-00903: jadval nomi yaroqsiz.
    Sabab: Kiritilgan jadval yoki guruh nomlari mavjud emas yoki yaroqsiz. ALTER/DROP CLUSTER buyrug'ida noto'g'ri yoki mavjud bo'lmagan guruh nomi ko'rsatilgan bo'lsa, bu xabar ham paydo bo'ladi.
    Harakat: Yozuv xatolarini tekshiring. Yaroqli guruh nomi harf bilan boshlanishi va faqat harflar, raqamlar va maxsus belgilardan iborat bo'lishi kerak: $, # va _. Ism 30 ta belgidan oshmasligi va ajratilgan so'z bo'lmasligi kerak.
  • ORA-00904: ustun nomi noto‘g‘ri.
    Sabab: Kiritilgan ustun nomi yoʻq yoki yaroqsiz.
    Harakat: To‘g‘ri ustun nomini kiriting. Yaroqli nom harf bilan boshlanishi va faqat harflar, raqamlar va maxsus belgilardan iborat bo'lishi kerak: $, # va _. Ism 30 ta belgidan oshmasligi va ajratilgan so'z bo'lmasligi kerak. Agar u boshqa belgilarni o'z ichiga olsa, u qo'sh tirnoq ichida bo'lishi kerak.
  • ORA-00905: kalit so'z etishmayapti.
    Sabab: Kerakli kalit so'z o'tkazib yuborilgan.
    Harakat: Buyruqlar sintaksisini tekshiring va etishmayotgan kalit so'zlarni qo'shing.
  • ORA-00906: chap qavs yetishmayapti.
    Sabab: Majburiy chap qavs olib tashlandi. Asosiy buyruqlar (masalan, CREATE TABLE, CREATE CLUSTER va INSERT) qavslar ichiga olingan elementlar ro'yxatini talab qiladi. Qavslar WHERE bandidagi ketma-ketliklar atrofida va UPDATE jadvali SET ustunida ham talab qilinadi = (SELECT ...).
    Harakat: Buyruqning sintaksisini tekshiring va etishmayotgan qavslarni kiriting.
  • ORA-00907: oʻng qavs yetishmayapti
    Sabab: Chap qavs yopilish o'ng qavssiz kiritilgan yoki oldingi ma'lumotlar qavs ichiga olingan. Barcha qavslar juftlangan bo'lishi kerak.
    Harakat: Yopuvchi o'ng qavsni joylashtiring.
  • ORA-00908: NULL kalit so‘zi yo‘q
    Sabab: CREATE yoki ALTER TABLE iboralarida bu ustunda hech qanday null qiymatga ruxsat berilmaganligini bildirish uchun NOT kiritilgan, lekin NULL kalit so'zi olib tashlangan.
    Harakat: Agar sizga ushbu ustunda qiymat kerak bo'lsa, NOT kalit so'zini NOT NULL bilan almashtiring.
  • ORA-00909: argumentlar soni yaroqsiz
    Sabab: Oʻrnatilgan ORACLE funksiyasiga havola notoʻgʻri argumentlar soni bilan qilingan.SYSDATEdan tashqari barcha ORACLE funksiyalari kamida bitta argumentni talab qiladi.
    Harakat: Buyruqlar sintaksisini tekshiring va kerakli argumentlar sonini kiriting.
  • ORA-00910: belgilangan uzunlik CHAR ustuni uchun juda katta
    Sabab: Belgilar maydoni oʻlchami koʻrsatilmagan yoki notoʻgʻri koʻrsatilgan. Har bir belgilar ustuni uchun maksimal uzunlikni belgilashingiz kerak.Ushbu uzunlik 0: dan 240: gacha qiymatlarni qabul qilishi mumkin.
    Harakat: Maksimal uzunlikni 0 dan 240 gacha kiriting: .
  • ORA-00911: yaroqsiz belgi
    Sabab: Maxsus belgi yaroqsiz yoki faqat ma'lum joylarda amal qiladi. Agar nomda maxsus belgi ($, # va _ dan tashqari) ishlatilsa va ism qo'sh tirnoq (") ichida bo'lmasa, bu xabar paydo bo'ladi.
    Harakat: Buyruqdan noto'g'ri belgini olib tashlang.
  • ORA-00912: stekda operandlarsiz operand pop operatsiyasi
    Sabab: Bu ichki xato xabari bo'lib, normal ishlash vaqtida yuzaga kelmaydi.
    Harakat: Muammoning batafsil tavsifi uchun tegishli sozlash dasturiga murojaat qiling.
  • ORA-00913: juda koʻp qiymatlar
    Sabab: Buyruq ikkita bir xil qiymatlar to'plamini qabul qiladi, lekin ikkinchi to'plamda birinchisiga qaraganda ko'proq elementlar mavjud. Masalan: WHERE yoki HAVING bandidagi quyi so'rovda ustunlar juda ko'p bo'lishi mumkin yoki VALUES yoki SELECT bandida INSERT bandiga qaraganda ko'proq ustun bo'lishi mumkin.
    Harakat: Elementlar sonini tekshiring va ularni o'zgartiring.
  • ORA-00914: ADD kalit so‘zi yetishmayapti
    Sabab: ALTER PARTITION buyrug'i ADD kalit so'zisiz kiritildi.
    Harakat: buyruq sintaksisini tekshiring va uni qaytadan urinib ko'ring.
  • ORA-00915: lug‘at jadvaliga tarmoqqa kirish hozirda ruxsat etilmagan
    Sabab:Bu ichki xato xabari boʻlib, normal ishlash vaqtida yuzaga kelmaydi.
    Harakat: Muammoning batafsil tavsifi uchun tegishli sozlash dasturiga murojaat qiling.
  • ORA-00917: vergul yo'q vergul yo'q
    Sabab: Ustunlar roʻyxatida yoki INSERT bayonotidagi qiymatlar roʻyxatida yoki ((c,d),(e) shakl roʻyxatida vergul yoʻq< f),...).
    Harakat: SQL bayonotidagi sintaksisni tekshiring va agar kerak bo'lsa, etishmayotgan vergulni qo'shing.
  • ORA-00918: ustun noaniq belgilangan
    Sabab: Birlashtirish uchun ishlatiladigan ustun bir nechta jadvalda mavjud. Qo'shilishda bir nechta jadvalda mavjud bo'lgan har qanday ustun jadval nomini o'z ichiga olishi kerak. Ustun nomi faqat EMP emas, TABLE.COLUM yoki TABLE_ALIAS.COLUMN, EMP.DEPTNO yoki E.DEPTNO bo‘lishi kerak.
    Harakat: Yuqorida ko'rsatilganidek, nuqta yoki muqobil jadval nomidan oldin ustun nomiga jadval nomini kiriting.
  • ORA-00919: yaroqsiz funktsiya
    Sabab: Funktsiya (argument) turidagi funktsiyaga o'xshash kirish ORACLE funktsiyasi sifatida tan olinmaydi.
    Harakat: Yaroqli funksiya nomlari roʻyxati uchun qoʻllanmaga qarang.
  • ORA-00920: yaroqsiz aloqa operatori
    Sabab: Yaroqsiz yoki etishmayotgan shart bayonoti bilan vazifani qidiring.
    Harakat: Yaroqli shartli bayonotni kiriting. Quyidagi relyatsion bayonotlarga ruxsat beriladi: =, !=,<>, >, >=, <, <=,IN, IS, NULL, LIKE, и BETWEEN.
  • ORA-00921: SQL buyrug'ining kutilmagan tugashi
    Sabab: SQL buyrug'i to'liq emas. Yaroqli buyruqning bir qismi kiritildi, lekin kamida bitta asosiy komponent olib tashlandi.
    Harakat: Buyruqlar sintaksisini tekshiring va etishmayotgan komponentlarni kiriting.
  • ORA-00922: yaroqsiz variant
    Sabab: Ustun taʼrifida yoki hudud taʼrifida yaroqsiz variant eʼlon qilindi.
    Harakat: Ustun yoki mintaqa ta'rifidan noto'g'ri parametrni olib tashlang. Ustunni tavsiflovchi to'g'ri variant NULL EMAS, ustunda NULL qiymatlari bo'lmasligini bildiradi. Vergul yoki yopish qavsdan tashqari ma'lumotlar turidan keyingi barcha narsalar yaroqsiz variant sifatida tasniflanadi. DATA yoki LONG ma'lumotlar turi uchun uzunlikni tavsiflashda siz ushbu xato xabarini olasiz. Qo‘llanish doirasini aniqlash deklaratsiyasida faqat quyidagi variantlarga ruxsat beriladi: INITIAL, INCREMENT va MAXEXTENTS (DATAPAGES va INDEXPAGES uchun) va PCTFREE (faqat DATAPAGES uchun).
  • ORA-00923: FROM kalit so‘zi yo‘q
    Sabab: SELECT yoki REVOKE iborasida FROM kalit soʻzi oʻtkazib yuborilgan, notoʻgʻri joylashtirilgan yoki notoʻgʻri yozilgan. FROM kalit so'zi SELECT operatoridagi tanlangan elementga yoki REVOKE operatoridagi tanlangan jadval nomiga mos kelishi kerak.
    Harakat: FFROM so'zini almashtiring. Tanlangan ro'yxatning o'zi xato bo'lishi mumkin. Taxallusni qo'shish uchun bitta tirnoqdan foydalanganingizga ishonch hosil qiling va taxallus zahiralangan so'zmi yoki yo'qmi.
  • ORA-00924: BY kalit so'zi yo'q
    Sabab: GROUP BY, ORDER BY yoki CONNECTED BY ifodalarida BY kalit so‘zi yo‘q. Bundan tashqari, GRANT buyrug'ida INDENTIFIED so'zidan keyin BY kelishi kerak.
    Harakat: BY so'zini to'g'ri kiriting.
  • ORA-00925: INTO kalit so‘zi yo‘q
    Sabab: INSERT buyrug'i INTO kalit so'zisiz ishlatilgan.
    Harakat: INSERT ni INSERT INTO bilan almashtiring.
  • ORA-00926: VALUES kalit so‘zi yetishmayapti
    Sabab: VALUES yoki SELECT kalit so'zsiz INSERT iborasi. INSERT INTO iborasidan keyin VALUES yoki SELECT ketma-ketligi kelishi kerak.
    Harakat: INSERT INTO ifodasidan keyin VALUES ifodasini yoki ketma-ketlikni kiriting.
  • ORA-00927: teng sig‘im yo‘q
    Sabab: Quyidagi joylardan birida tenglik belgisi yo'q: * UPDATE buyrug'ining SET operatorida * keyin! CREATE INDEX buyrug'ining PCTFREE ifodasida * tengsizlikni ko'rsatish uchun
    Harakat: Teng belgisini kiriting.
  • ORA-00928: SELECT kalit soʻzi yoʻq
    Sabab: CREATE VIEW buyrug'iga SELECT ketma-ketligi kiritilishi kerak.
    Harakat: CREATE VIEW buyrug'iga kerakli SELECT iborasini kiriting.
  • ORA-00929: etishmayotgan davr
    Sabab:Bu ichki xato xabari boʻlib, normal ishlash vaqtida yuzaga kelmaydi.
    Harakat: Muammoning batafsil tavsifi uchun tegishli sozlash dasturiga murojaat qiling.
  • ORA-00930: yulduzcha yetishmayapti
    Sabab:Bu ichki xato xabari boʻlib, normal ishlash vaqtida yuzaga kelmaydi.
    Harakat: Muammoning batafsil tavsifi uchun tegishli sozlash dasturiga murojaat qiling.
  • ORA-00931: identifikator yetishmayapti
    Sabab:Bu ichki xato xabari boʻlib, normal ishlash vaqtida yuzaga kelmaydi.
    Harakat: Muammoning batafsil tavsifi uchun tegishli sozlash dasturiga murojaat qiling.
  • ORA-00932: nomuvofiq ma'lumotlar turlari mos kelmaydigan ma'lumotlar turi
    Sabab: Belgilar maydonini ma'lumotlar maydoniga qo'shishga harakat qiling. Ma'lumotlar faqat raqamli maydonlarga qo'shilishi mumkin.
    Harakat: Ma'lumotlar maydonini qo'shishdan oldin TO_NUMBER funksiyasidan foydalanib, belgilar maydonini raqamli maydonga aylantiring.
  • ORA-00933: SQL buyrug'i va to'g'ri tugatilmagan
    Sabab: SQL buyrug'i noto'g'ri ifoda bilan tugatildi. Masalan: ORDER BY bandi CREATE VIEW yoki INSERT operatoriga kiritilishi mumkin.Lekin ORDER BY boshqa ko‘rinish yaratish uchun ishlatilmasligi yoki asosiy tartibda kiritilmasligi kerak.
    Harakat: Buyruqlar sintaksisini tekshiring va keraksiz komponentlarni olib tashlang. O'chirilgan ifodalarni boshqa buyruqlar bilan takrorlash imkoniyatiga ega bo'lishingiz kerak. Misol uchun, agar siz ko'rib chiqish qatorlariga buyurtma bermoqchi bo'lsangiz, ko'rib chiqishni so'rashdagi kabi davom eting, lekin yaratishda emas. Ushbu xato, agar chiziq davomi bo'sh bo'lsa, SQL * Forms dan foydalanganda ham paydo bo'lishi mumkin. Ofsetlarni tekshiring va bo'shliqlarni olib tashlang. Agar bitta argument bilan I ifodasini ishlatsangiz, tegishli SQL yakunlaridan foydalanishingiz kerak, masalan: IN(X). IN ifodasi kamida ikkita argumentni olishi kerak.
  • ORA-00934: bu yerda oʻrnatish funksiyasiga ruxsat berilmagan
    Sabab: guruh funksiyalaridan biri (AVG, SUM, MAX, MIN, COUNT kabi) WHERE yoki GROUP BY bandida ishlatilgan.
    Harakat: WHERE yoki GROUP BY bandlaridan guruh funksiyasini olib tashlang.Funksiyani so‘rov yoki HAVING bandiga kiritish orqali kerakli natijaga erishishingiz mumkin.
  • ORA-00935: oʻrnatilgan funksiya juda chuqur joylashtirilgan
    Sabab:Bu ichki xato xabari boʻlib, normal ishlash vaqtida yuzaga kelmaydi.
    Harakat: Muammoning batafsil tavsifi uchun tegishli sozlash dasturiga murojaat qiling.
  • ORA-00936: ifoda etishmayapti
    Sabab: Ifodaning zaruriy qismi olib tashlandi. Masalan, SELECT buyrug'i ustunlar ro'yxatisiz yoki mos kelmaydigan turdagi ifoda (SAL+) bilan kiritiladi. Bu SELECT TABLE kabi zahiradagi so'zlar o'tkazib yuborilsa ham sodir bo'lishi mumkin.
    Harakat: Buyruqlar sintaksisini tekshiring va etishmayotgan buyruqlarni kiriting.
  • ORA-00937: bitta guruh funktsiyasi mavjud emas
    Sabab: Agar ustun ifodasi GROUP BY bandiga kiritilmagan bo'lsa, siz bir vaqtning o'zida guruh funksiyasini (AVG, SUM, COUNT, MIN yoki MAX) va maxsus ustun ifodasini so'rovga kirita olmaysiz.
    Harakat: Soʻrovdan ustun ifodasini yoki guruh funksiyasini olib tashlang yoki ustun sanab oʻtilgan GROUP BY bandini qoʻshing.
  • ORA-00938: funktsiya uchun argumentlar yetarli emas
    Sabab: Funktsiyada juda kam argumentlar e'lon qilingan.
    Harakat: Funktsiya sintaksisini tekshiring va kerakli argumentlarni qo'shing.
  • ORA-00939: funktsiya uchun argumentlar juda koʻp
    Sabab: Funktsiyada juda ko'p argumentlar mavjud.
    Harakat: Funksiya sintaksisini tekshiring va faqat kerakli argumentlarni tavsiflang.
  • ORA-00940: ARTER buyrug‘i yaroqsiz ALTER buyrug‘i noto‘g‘ri
    Sabab: Yaroqsiz ALTER opsiyasi tasvirlangan. Faqat bo'limlar va jadvallar takrorlanmasligi mumkin. Yaroqli ALTER buyrug'i quyidagi variantlardan biri bilan boshlanishi kerak: ALTER TABLE yoki ALTER PARTITION.
    Harakat Eslatma: ALTER buyrug'ining to'g'ri yozilishi uchun sintaksisni tekshiring.
  • ORA-00941: klaster nomi etishmayapti
    Sabab: Guruh nomi yo'q yoki noto'g'ri.
    Harakat: To'g'ri guruh nomini tavsiflang. Yaroqli guruh nomi harf bilan boshlanadi, 30 ta belgidan oshmasligi kerak va faqat harflar, raqamlar va $, _ va # maxsus belgilardan iborat. Bu ajratilgan so'z bo'lmasligi kerak. Ism CREATE CLUSTER kalit so'zidan keyin darhol chop etilishi kerak.
  • ORA-00942: jadval yoki koʻrinish mavjud emas
    Sabab: Bu jadval yoki umumiy koʻrinish mavjud emas. yoki jadval o'rniga ko'rinish nomi kiritiladi. Mavjud foydalanuvchi jadvallari va umumiy ko'rinishlarni TAB umumiy ko'rinishida ko'rish mumkin.
    Harakat: Yozuv xatolarini tekshiring va jadval o'rniga ko'rib chiqish nomini kiritgan bo'lsangiz. Mavjud nomlarni kiriting.
  • ORA-00943: klaster mavjud emas
    Sabab: Foydalanuvchi resursi tavsiflangan nom bilan guruhga kiritilmagan.
    Harakat: CLUSTER kalit so'zidan keyin darhol to'g'ri guruh nomini tavsiflang.
  • ORA-00944: klasterli ustunlar soni yetarli emas
    Sabab: CREATE CLUSTER buyrug'ida tavsiflanganidan kamroq guruhlangan ustunlar bilan jadval yaratishga harakat qilindi. CREATE TABLE buyrug'ining CLUSTER ifodasi guruh yaratilganda aniqlangan barcha guruhlangan ustunlarni tavsiflashi kerak. Guruh nomidan foydalanib, siz COL lug'at jadvalidagi barcha guruh ustunlarini ko'rishingiz mumkin.
    Harakat: CREATE TABLE buyrug'idagi barcha ustun nomlarini tavsiflang.
  • ORA-00945: belgilangan klasterli ustun mavjud emas
    Sabab: CREATE TABLE iborasining ifodasida tasvirlangan ustun bu jadvaldagi ustun emas.
    Harakat: Jadval ustuni nomidan foydalanib takrorlang.
  • ORA-00946: TO kalit so‘zi yo‘q
    Sabab: GRANT buyrug'i TO kalit so'zisiz kiritilgan yoki bu buyruqning noto'g'ri shakli ishlatilgan.
    Harakat: GRANT buyrug'ining ikkita asosiy shaklining sintaksisini tekshiring (ma'lumotlar bazasiga ruxsat berish va imtiyozlar berish). TO kalit so'zini GRANT buyrug'iga to'g'ri kiriting.
  • ORA-00947: qiymatlar yetarli emas
    Sabab: SQL bayonoti ikkita bir xil qiymatlar to'plamini talab qiladi, ikkinchisi esa kamroq qiymatlarni o'z ichiga oladi. Bu shuningdek, ichki o'rnatilgan SELECT WHERE yoki HAVING ifodalarida kamroq ustunlarni topsa, sodir bo'lishi mumkin, masalan: WHERE(A,B) IN (SELECT C FROM..) Xato VALUES yoki ifodasi bo'lgan INSERT operatorida ham paydo bo'lishi mumkin. SELECTda INSERT uchun yetarli qiymatlar mavjud emas, masalan: INSERT INTO jadvali (A,B) VALUES("C").
    Harakat: Har bir to'plamning kuchini tekshiring va ularni soni bo'yicha tenglashtiring.
  • ORA-00948: ALTER CLUSTER bayonoti endi qo‘llab-quvvatlanmaydi
    Sabab: ALTER CLUSTER bayonoti olib tashlandi
    Harakat: Jadvaldan ma'lumotlarni qo'shish uchun quyidagi SQL operatorlari to'plamidan foydalaning: JADVAL TUZISH<новая_таблица>SELECT*FROM<старая_таблица>KLASTER<имя_группы>DOPLASH<старая_таблица>va JADVALNI NOMINI O'GARTIRISh<новая_таблица> <старая_таблица>.
  • ORA-00949: tashqi ma'lumotlar bazasiga noqonuniy havola
    Sabab:Bu ichki xato xabari boʻlib, normal ishlash vaqtida yuzaga kelmaydi.
    Harakat: Muammoning batafsil tavsifi uchun tegishli sozlash dasturiga murojaat qiling.
  • ORA-00950: bekor qilish opsiyasi yaroqsiz DROP opsiyasi
    Sabab: DROP buyrug'idan so'ng TABLE, VIEW, SYNONYM, CLUSTER yoki SPACE kabi DROP opsiyasi mavjud emas edi.
    Harakat: Buyruqlar sintaksisini tekshiring va DROP opsiyasi uchun to'g'ri formatdan foydalaning.
  • ORA-00951: klaster bo'sh emas
    Sabab: DROP buyrug'i bo'sh bo'lmagan guruhni tavsiflaydi. Guruh faqat jadvallarni o'z ichiga olmasa, o'chirilishi mumkin. DROP TABLE buyrug'i yordamida jadvalni guruhdan olib tashlang.
    Harakat: Guruhdan barcha jadvallarni olib tashlang va keyin DROP CLUSTER buyrug'idan foydalaning.
  • ORA-00952: GROUP kalit so‘zi yetishmayapti
    Sabab: Guruh noto'g'ri amalga oshirilgan.
    Harakat: Foydalanuvchidan hech qanday harakat talab etilmaydi.
  • ORA-00953: indeks nomi etishmayapti
    Sabab: CREATE, DROP, VALIDATE INDEX buyruqlarida indeks nomi noto‘g‘ri yoki yo‘q.
    Harakat: INDEX kalit so'zidan keyin to'g'ri indeks nomini kiriting. Agar siz indeksni oʻchirmoqchi yoki toʻgʻrilamoqchi boʻlsangiz, INDEXES umumiy koʻrinishiga qarab nomini tekshiring. Agar siz yangi indeks yaratishingiz kerak bo'lsa, avval sintaksisni tekshiring.
  • ORA-00954: INDENTIFIED kalit so‘zi yetishmayapti
    Sabab: GRANT CONNECTION buyrug'i INDENTIFIED kalit so'zisiz berilgan.
    Harakat: Foydalanuvchi nomidan keyin INDENTIFIED kalit so'zini kiriting. Buyruq formati quyidagicha: ULANISHNI BERISH<список пользователей>TOMONIDAN ANIQLANGAN<пароль списка>.
  • ORA-00955: nom allaqachon mavjud ob'ekt tomonidan ishlatilgan
    Sabab: Mavjud bo'lgan jadval, ko'rinish, guruh yoki sinonim yaratishga harakat qilindi. Har bir foydalanuvchi jadvali nomi boshqa foydalanuvchilarga tegishli bo'lgan boshqa jadval nomlari, ko'rinishlari, guruhlari yoki sinonimlaridan farqli bo'lishi kerak.
    Harakat: Noyob jadval, koʻrinish, guruh yoki sinonim nomini kiriting yoki mavjudni oʻzgartiring yoki oʻchiring.
  • ORA-00956: noto'g'ri tekshirish varianti - noto'g'ri tekshirish opsiyasi
    Sabab: Yaroqsiz tekshirish opsiyasi mavjud edi.
    Harakat: Buyruqning sintaksisini tekshiring va to'g'ri variant bilan qayta urinib ko'ring.
  • ORA-00957: ikki nusxadagi ustun nomi
    Sabab: Ustun nomi CREATE yoki INSERT bayonotida ikki marta e'lon qilingan. Jadval, umumiy ko'rinish yoki guruhdagi ustun nomi noyob bo'lishi kerak.
    Harakat: CREATE buyrug'idagi ustun nomini yangi noyob bilan almashtiring. INSERT buyrug'ida takroriy nomlarni olib tashlang.
  • ORA-00958: CHECK kalit so‘zi yetishmayapti
    Sabab: CREATE VIEW iborasining WITH CHECK OPTION bandida WHITH kalit so‘zidan keyin darhol CHECK belgisi yo‘q.
    Harakat: SQL bayonotining sintaksisini tekshiring.
  • ORA-00959: bo'shliqni aniqlash nomi mavjud emas
    Sabab: A DROP SPACE buyrug'i mavjud bo'lmagan hudud nomini tasvirlab berdi.
    Harakat: Mavjud doirani aniqlash nomlaridan foydalaning. Mavjud nomlarni ko‘rish uchun SPACES dan SNAME ni tanlang.
  • ORA-00960: INITIAL qiymati yaroqsiz
    Sabab: CREATE SPACE buyrug'ida noto'g'ri boshlang'ich ma'lumotlar sahifasi yoki indeks sahifasi raqami ko'rsatilgan. Bu qiymat kamida 3 bo'lishi kerak.
    Harakat: Kamida 3 boʻlgan BAŞLASH qiymatini kiriting.
  • ORA-00961: yaroqsiz INCREMENT qiymati
    Sabab: Ma'lumotlar sahifasi yoki indeks sahifasi uchun noto'g'ri qadamlarni hisoblash qiymati tasvirlangan. Qadam qiymati 3 dan katta bo'lishi kerak.
    Harakat: 3 dan katta INCREMENT qiymatini kiriting.
  • ORA-00962: yaroqsiz PCTFREE qiymati
    Sabab: SPACE ta'rifida noto'g'ri bo'sh joy foizi qiymati tasvirlangan. Bu qiymat 1:99 oralig'ida bo'lishi kerak.
    Harakat: 1: va 99 oralig'ida PCTFREE qiymatini kiriting.
  • ORA-00963: yaroqsiz SIZE qiymati
    Sabab: CREATE CLUSTER buyrug'ida blokning mantiqiy o'lchamining noto'g'ri qiymati ko'rsatilgan. Mantiqiy blok hajmi kichik ma'lumotlar guruhlarini samarali saqlash uchun ishlatiladi.
    Harakat: Mantiqiy blok hajmining ruxsat etilgan qiymatini tavsiflang (0 dan katta).
  • ORA-00964: fazoni himoya qilish nomi yaroqsiz
    Sabab: Yaroqsiz soha nomi CREATE/DROP SPACE buyrug‘ida yoki CREATE TABLE da ko‘rsatilgan yoki mavjud bo‘lmagan soha nomi CREATE TABLE buyrug‘ida ko‘rsatilgan.
    Harakat: Yaroqli hudud nomini kiriting. Yaroqli nom harf bilan boshlanadi, 30 ta belgidan oshmasligi kerak va faqat harflar, raqamlar va $, _ va # maxsus belgilardan iborat. Bu ajratilgan so'z bo'lmasligi kerak. Agar ismingiz to'g'ri bo'lsa, siz beixtiyor TEMP qamrovi ta'rifini olib tashlagan bo'lishingiz mumkin.
  • ORA-00965: bo'shliqni aniqlash nomi allaqachon mavjud
    Sabab: CREATE SPACE buyrug'ida mavjud soha nomi ishlatilgan. Hudud taʼrifi nomlari noyob boʻlishi kerak.
    Harakat: Hudud uchun noyob nom kiriting.
  • ORA-00966: TABLE kalit so'zi etishmayapti
    Sabab: LOCK buyrug'i ishlatilgan va TABLE kalit so'zi noto'g'ri yozilgan, yoki o'tkazib yuborilgan yoki noto'g'ri joylashtirilgan. LOCK buyrug'i quyidagicha boshlanishi kerak: LOCK TABLE<имя таблицы> ... .
    Harakat: TABLE kalit so'zini tegishli joyga kiriting.
  • ORA-00968: INDEX kalit so‘zi yetishmayapti
    Sabab: CREATE UNIQUE buyrug'i ishlatilgan va INDEX kalit so'zi noto'g'ri yozilgan yoki o'tkazib yuborilgan yoki noto'g'ri joylashtirilgan.
    Harakat: Sintaksisni tekshiring va qayta urinib ko'ring.
  • ORA-00969: ON kalit so'zi yo'q
    Sabab: GRANT yoki CREATE INDEX buyrug'i ishlatilgan va ON kalit so'zi noto'g'ri yozilgan yoki o'tkazib yuborilgan yoki noto'g'ri joylashtirilgan.
    Harakat: ON kalit so'zini tegishli joyga kiriting.
  • ORA-00970: WITH kalit so'zi yo'q - WITH kalit so'zi yo'q
    Sabab: START kalit so'zi WITHsiz ishlatilgan. So‘rov uchun START WITH bandida ikkala kalit so‘z ham talab qilinadi.
    Harakat: START so‘zini START BILAN bilan almashtiring.
  • ORA-00971: SET kalit so'zi etishmayapti - SET kalit so'zi etishmayapti
    Sabab: UPDATE buyrug'ida SET kalit so'zi noto'g'ri yozilgan yoki o'tkazib yuborilgan yoki noto'g'ri joylashtirilgan.
    Harakat: O'zgartirish uchun jadval nomidan keyin SET kalit so'zini kiriting.
  • ORA-00972: identifikator juda katta
    Sabab: Ma'lumotlar bazasi ob'ektining nomi 30 belgidan ortiq.(Ma'lumotlar bazasi ob'ektlari - jadvallar, guruhlar, ko'rinishlar, indekslar, sinonimlar, sohalar va foydalanuvchi nomlari.
    Harakat: Ismni maksimal 30 belgigacha qisqartiring.
  • ORA-00973: qatorlar hisobi noto‘g‘ri
    Sabab: CREATE INDEX buyrug'ida tasvirlangan qatorlar soni qiymati 0 dan kichik raqam.
    Harakat: Yaroqli qiymatni tavsiflang (0 dan katta).
  • ORA-00974: indeks blokining yuklanish koeffitsienti yaroqsiz (foiz)
    Sabab: CREATE INDEX buyrug'ida tasvirlangan foydalanilgan hajmning foizi, maydon 1: 90% oralig'iga tegishli emas.
    Harakat: PCTFREE qiymatini 1 dan 90 gacha kiriting. Standart qiymat 10.
  • ORA-00975: Sana + sana ruxsat etilmaydi
    Sabab: Ikkita maʼlumot maydonini birga qoʻshishga harakat qiling. Ma'lumotlarni faqat raqam maydonlariga qo'shish mumkin, boshqa ma'lumotlarga emas.
    Harakat: Raqam maydoniga maʼlumotlar maydoni qoʻshing.
  • ORA-00977: takroriy audit optio - ikki tomonlama tekshirish opsiyasi
    Sabab: Xuddi shu nazorat opsiyasi yana tasvirlangan.
    Harakat: Ortiqcha boshqaruv tavsifini olib tashlang.
  • ORA-00978: GROUP BY dan tashqari ichki o'rnatilgan to'plam funktsiyasi
    Sabab: Guruh funksiyasi (masalan, MIN, MAX yoki AVG) boshqa guruh funksiyasi ichida (masalan, MAX(COUNT(*))) kabi GROUP BY bandisiz ishlatilgan.
    Harakat: GROUP BY bandini qo'shing yoki tashqi joylashtirish darajasini olib tashlang.
  • ORA-00979: GROUP BY ifodasi emas GROUP BY ga tegishli emas
    Sabab: GROUP BY bandida SELECT bandining barcha ifodalari mavjud emas. Guruh funktsiyalariga kiritilmagan SELECT iboralari (COUNT, SUM, AVG, MAX, MIN) GROUP BY bandida ko'rsatilishi kerak.
    Harakat: GROUP BY bandidagi funktsiyalarni guruhlash uchun argument bo'lmagan barcha SELECT iboralarini qo'shing.
  • ORA-00980: sinonim tarjimasi endi yaroqsiz
    Sabab: Siz ishlatgan sinonim oʻchirilgan yoki nomi oʻzgartirilgan jadval, koʻrinish yoki sinonim uchun ishlatilgan.
    Harakat: Sinonimni o'rniga u mo'ljallangan jadval, ko'rinish, sinonimi nomini qo'ying. Yoki to'g'ri jadvallar, ko'rinishlar yoki sinonimlar uchun sinonimni qayta yarating.
  • ORA-00981: jadval va tizim miqyosidagi audit opsiyalarini aralashtirib boʻlmaydi
    Sabab: Bir vaqtning o'zida jadval va tizimning kenglik opsiyasi bir xil AUDIT bayonotida tasvirlangan.
    Harakat: Operatorni to'g'rilang.
  • ORA-00982: ortiqcha belgisi etishmayapti
    Sabab: Qo'shilganda, chap qavsdan keyin ortiqcha belgisi (+) bo'lmaydi. Qo'shishda chap (ochiq) qavs qo'shimchani tavsiflovchi deb talqin qilinadi va ortiqcha belgisi kutiladi. Ustunga qo'shimchani tavsiflash uchun ustun tavsifidan keyin qavs (+) ichiga olingan ortiqcha belgisi bo'lishi kerak.
    Harakat: SQL sintaksisini to'g'rilang.
  • ORA-00984: bu yerda ustunga ruxsat berilmaydi
    Sabab: Ustun nomi ruxsat etilmagan joylarda ishlatilgan, masalan, INSERT iborasining VALUES bandida.
    Harakat: Buyruqlar sintaksisini tekshiring va ustun nomlaridan faqat ruxsat etilgan joylarda foydalaning.
  • ORA-00985: dastur nomi yaroqsiz
    Sabab
    Harakat
  • ORA-00986: etishmayotgan yoki yaroqsiz guruh nom(lar)i - etishmayotgan yoki yaroqsiz guruh nom(lar)i
    Sabab: Bu xususiyat amalga oshirilmagan.
    Harakat: Foydalanuvchi harakati talab qilinmaydi.
  • ORA-00987: etishmayotgan yoki yaroqsiz foydalanuvchi nomi(lar)i
    Sabab: GRANT buyrug'ida foydalanuvchi nomi ko'rsatilmagan yoki ko'rsatilgan nomlardan biri noto'g'ri. Yaroqli foydalanuvchi nomlari GRANT buyrug'idagi TO so'zidan keyin paydo bo'lishi kerak. Yaroqli foydalanuvchi nomi harf bilan boshlanadi, 30 ta belgi bilan cheklangan va faqat harflar, raqamlar va $, _ va # maxsus belgilardan iborat. Bu ajratilgan so'z bo'lmasligi kerak.
    Harakat: GRANT buyrug'idagi TO kalit so'zidan keyin haqiqiy foydalanuvchi nomini (yoki foydalanuvchilar ro'yxatini) tavsiflang.
  • ORA-00988: etishmayotgan yoki yaroqsiz parol(lar)
    Sabab: GRANT buyrug'ida parollardan ko'ra ko'proq foydalanuvchi nomlari mavjud. GRANT buyrug'ida ko'rsatilgan har bir foydalanuvchi uchun haqiqiy parol ko'rsatilishi kerak.
    Harakat: Har bir foydalanuvchi uchun to'g'ri parolni kiriting.
  • ORA-00989: foydalanuvchi nomlari uchun juda koʻp parollar berilgan
    Sabab: GRANT buyrug'idagi foydalanuvchi nomlari bilan tavsiflanganidan ko'ra ko'proq parollar mavjud. GRANT buyrug'ida ko'rsatilgan har bir foydalanuvchi uchun faqat bitta parol kiritilishi kerak.
    Harakat: Bir xil sonli foydalanuvchilar va parollarni kiriting.
  • ORA-00990: etishmayotgan yoki yaroqsiz imtiyoz
    Sabab: GRANT imtiyozlari buyrug'ida hech qanday imtiyoz e'lon qilinmagan yoki ulardan biri yaroqsiz.
    Harakat: Bir yoki bir nechta haqiqiy imtiyozlarni kiriting. Quyidagi imtiyozlarga ruxsat beriladi: SELECT, INSERT, DELETE, UPDATE, ALTER, INDEX, DROP, CLUSTER va ALL. Bittadan ortiq imtiyozlarni ularni vergul (,) bilan ajratilgan ro‘yxatga kiritish yoki barcha imtiyozlarni berish uchun HAMMA so‘zini tasvirlash orqali berilishi mumkin.
  • ORA-00991: GRANT buyrug'i uchun tanib bo'lmaydigan format
    Sabab: GRANT buyrug'ining noto'g'ri shakli kiritildi.
    Harakat: Buyruqlar sintaksisini tekshiring GRANT buyrug'ining ikki turi mavjud. Birinchi tur foydalanuvchining ma'lumotlar bazasiga kirishini aniqlash uchun ishlatiladi va quyidagi formatga ega bo'lishi kerak: GRANT CONNECT/RESOURCE/DBA TO<имя пользователя>Identifikatsiya qilingan<пароль>. CONNECT, RESOURCE yoki DBA kalit so‘zlaridan kamida bittasi bo‘lishi kerak. Ikkinchi tur ma'lumotlar bazasi ob'ektlariga imtiyozlar berish uchun ishlatiladi va quyidagi formatga ega: GRANT<список привелегий>ON<обзор/ таблица>TO< индентификатор пользователя>/JAMOAT.
  • ORA-00992: REVOKE buyrug'i uchun tanib bo'lmaydigan format
    Sabab: REVOKE buyrug'ining noto'g'ri shakli kiritildi.
    Harakat: Buyruqning sintaksisini tekshiring va uni qaytadan urinib ko'ring.
  • ORA-00993: GRANT kalit so‘zi yo‘q
    Sabab: WITH opsiyasi GRANT buyrug‘ining oxirida GRANT opsiyasisiz e’lon qilindi. Foydalanuvchiga imtiyozlar berish va ularni boshqa foydalanuvchilarga berishga ruxsat berish uchun GRANT buyrug‘i oxiridagi WITH GRANT OPTIIO opsiyasidan foydalaning.
    Harakat: WITH kalit so‘zini WITH GRANT OPTION bilan almashtiring.
  • ORA-00994: OPTION kalit so‘zi yo‘q – OPTIO kalit so‘zi yo‘q
    Sabab: WITH GRANT varianti GRANT buyrug'ining oxirida OPTION so'zisiz ishlatilgan.
    Harakat: Kalitni GRANT BILAN dan GRANT OPSIYASI BILAN ga o'zgartiring.
  • ORA-00995: sinonim identifikatori etishmayotgan yoki yaroqsiz
    Sabab: CREATE yoki DROP SYNONYM buyrug'ida sinonim nomi yo'q qilingan yoki noto'g'ri.
    Harakat: Yozuv xatolari va buyruq sintaksisini tekshiring. Yaroqli sinonim nomi ikkala buyruqdagi SYNONYM tugmachasidan keyin darhol kelishi kerak. Yaroqli sinonimik nom harf bilan boshlanadi, 30 ta belgi bilan cheklangan va faqat harflar, raqamlar va $, _ va # maxsus belgilardan iborat. Bu ajratilgan so'z bo'lmasligi kerak.
  • ORA-00996: birlashtiruvchi operator ¦¦ emas ¦ - biriktiruvchi operator || emas, |
    Sabab: Yagona chiziq (|) birlashtirishni tasvirlashga urinish sifatida tushunilgan, lekin birlashtiruvchi operator ikkita chiziqdan (||) iborat.
    Harakat: Birlashtirish operatsiyasi uchun qoʻshaloq zarbani kiriting yoki birlashtirish kerak boʻlmasa, bitta zarbani olib tashlang.
  • ORA-00997: uzoq ma'lumotlar turidan noqonuniy foydalanish
    Sabab: Siz funktsiyada yoki WHERE, GROUP BY, ORDER BY bandlarida 240 belgidan ortiq ma'lumotlarni saqlash uchun foydalaniladigan LONG ma'lumotlar turidan foydalangansiz. LONG qiymati faqat SELECT bandida ishlatilishi mumkin.
    Harakat: Ushbu maydonni funksiya yoki taklifdan olib tashlang.
  • ORA-00998: bu ifodani ustun yorlig‘i bilan nomlashi kerak
    Sabab: CREATE VIEW buyrug'ida funksiya yoki ifoda ishlatilgan, lekin tegishli ustun nomi e'lon qilinmagan. Ko'rinish uchun ifoda yoki funksiya ishlatilsa, barcha ustun va ko'rinish nomlari CREATE VIEW buyrug'ida to'g'ri ro'yxatga olinishi kerak.
    Harakat: Ko'rib chiqish nomidan keyin barcha ko'rib chiqish ustunlari nomlarini qavs ichiga kiriting.
  • ORA-00999: ko‘rish nomi noto‘g‘ri.
    Sabab: CREATE VIEW buyrug'ida ko'rinish nomi etishmayotgan yoki noto'g'ri.
    Harakat: CREATE VIEW dan so‘ng darhol to‘g‘ri ko‘rinish nomini kiriting. Yaroqli ko‘rib chiqish nomi harf bilan boshlanadi, 30 ta belgi bilan cheklangan va faqat harflar, raqamlar va $,_ va # maxsus belgilardan iborat. Bu ajratilgan so'z bo'lmasligi kerak.