უახლესი სტატიები
მთავარი / ახალი ამბები / Oracle მონაცემთა ბაზის სერვერის შეცდომების დამუშავების მახასიათებლები. Oracle-ის შეცდომები: მონაცემთა ბაზის შეცდომები, ახსნა და გამოსასწორებელი მოქმედებები Oracle-ის გამონაკლისის ვარიანტები

Oracle მონაცემთა ბაზის სერვერის შეცდომების დამუშავების მახასიათებლები. Oracle-ის შეცდომები: მონაცემთა ბაზის შეცდომები, ახსნა და გამოსასწორებელი მოქმედებები Oracle-ის გამონაკლისის ვარიანტები

გამონაკლისების მართვა PL/SQL-ში

ნებისმიერ პროცედურულ ენაზე მნიშვნელოვანია გვახსოვდეს, რომ პროგრამები არის სრული და ცალკეული ერთეული მონაცემთა ბაზიდან. ამრიგად, როდესაც პროგრამა ითხოვს სტრიქონებს მონაცემთა ბაზიდან, პროგრამისტი უნდა დარწმუნდეს, რომ მოთხოვნა წარმატებით დასრულდა.

რელაციურ მონაცემთა ბაზებში მონაცემთა ბაზა ყოველთვის გადასცემს სპეციალურ ცვლადს სახელწოდებით SQLCODE უკან ნებისმიერ ზარის პროგრამაში. SQLCODE, რომელიც დაბრუნდა პროგრამიდან მონაცემთა ბაზაში მისაწვდომი ზარიდან, ითარგმნება Oracle-ის მიერ დასახელებულ ლოგიკურ ცვლადად (იხ. ცხრილი ქვემოთ).

PL/SQL გამონაკლისი ცვლადი

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

მაგალითად, თუ მონაცემთა ბაზა დააბრუნებს SQLCODE=100, PL/SQL ცვლადი NO_DATA_FOUND დაყენდება TRUE-ზე.

გამონაკლისის გარეშე, ყველა PL/SQL პროგრამა უნდა შეწყდეს, როდესაც მოულოდნელი SQLCODE დაბრუნდება Oracle-ის მონაცემთა ბაზაში.

ამან შეიძლება დამღუპველი გავლენა მოახდინოს მონაცემთა ბაზაზე, განსაკუთრებით მაშინ, როდესაც PL/SQL იტვირთავს მონაცემებს ცხრილებში, რომლებიც დაფუძნებულია ცრუ ობიექტებზე. ამ ტრაგედიის თავიდან ასაცილებლად Oracle გთავაზობთ WHEN OTHERS ცვლადს, რომელიც დაყენებულია TRUE-ზე, თუ რაიმე მოულოდნელი SQLCODE დაბრუნდება Oracle-ის მონაცემთა ბაზიდან.

მაგალითად, განიხილეთ შემდეგი კოდი:

გამოაცხადე
err_num NUMBER;
err_msg VARCHAR2(100);
დასაწყისი
...
გამონაკლისი
...
როცა სხვები მაშინ
err_num:= SQLCODE;
err_msg:= SUBSTR(SQLERRM, 1, 100);
შეცდომებში INSERT INTO VALUES (err_num, err_msg);
ᲓᲐᲡᲐᲡᲠᲣᲚᲘ;

აქ ჩვენ ვხედავთ, რომ ჩვენი გამონაკლისის დამუშავებას აქვს EXCEPTIONS არეალის ტესტირება WHEN OTHERS. თუ WHEN OTHERS ლოგიკური ცვლადი არის TRUE, PL/SQL კოდი იჭერს SQLCODE-ს და მასთან დაკავშირებულ შეცდომის შეტყობინებას (SQLERRM) და ინახავს ამ მნიშვნელობებს Oracle-ის შეცდომების სპეციალურ ცხრილში.

Oracle გამონაკლისების მართვა

დეველოპერები ხშირად მონიშნავენ შეცდომის პირობებს და ამუშავებენ მათ Oracle-ის გამონაკლისების დამუშავებისა და IF-THEN ლოგიკის გამოყენებით.

Oracle-ის გამონაკლისების დამუშავება IF-THEN ლოგიკის გამოყენებით შეცდომების დროშის დასაფიქსირებლად

ზემოთ მოყვანილი მაგალითი ასახავს Oracle-ის გამონაკლისების მართვას ლოგიკური ცვლადის გამოყენებით bAidAmountOkთვალყური ადევნოს მდგომარეობას თითოეული მოსწავლის ჩანაწერის დამუშავების განმავლობაში.

Oracle-ის გამონაკლისების დამუშავების ეს გამოყენება გავლენას ახდენს შესრულებაზე. Oracle გამონაკლისის დამუშავება იყენებს მრავალ ინსტრუქციას შეცდომის მდგომარეობის შესამოწმებლად. Oracle-ის გამონაკლისების მართვის თითოეული ინსტრუქცია მოითხოვს CPU ციკლების დასრულებას. ბევრად უკეთესი მიდგომა მოიცავს Oracle-ის გამონაკლისების დამუშავებას CPU ციკლების გაფუჭების თავიდან ასაცილებლად, როგორც ეს ქვემოთ ჩანს:

Oracle-ის გამონაკლისის დამმუშავებლების გამოყენება მუშაობის გასაუმჯობესებლად.

Oracle-ის გამონაკლისების დამუშავების ამ მაგალითში, xAID_AMOUNT_OKგამონაკლისი აშკარად არის აწეული მარყუჟის შიგნით. ეს საშუალებას აძლევს შესრულებას გამოტოვოს ინსტრუქციები, რომლებიც წარმოიქმნება სტუდენტის GPA-ის შემოწმების შემდეგ, რაც შეამცირებს პროცესორს, რომელიც გამოიყენება Oracle-ის გამონაკლისების დამუშავებაში.

Oracle-ის გამონაკლისების მართვა ძალიან ეფექტურია. როდესაც Oracle-ის გამონაკლისი ჩნდება, ბლოკში არსებული ყველა შემდგომი ინსტრუქცია გვერდის ავლით ხდება, რათა გამონაკლის დამუშავება Oracle-ის გამონაკლისების დამმუშავებლის მიერ. Oracle-ის გამონაკლისების მართვა შეიძლება გამოყენებულ იქნას შესრულების მნიშვნელოვნად გაზრდისთვის.

ბურლსონი ამერიკის გუნდია

Შენიშვნა: Oracle-ის ეს დოკუმენტაცია შეიქმნა, როგორც დამხმარე და Oracle-ის ტრენინგის მითითება ჩვენი DBA-ის შესრულების ტუნინგის კონსულტანტების მიერ გამოსაყენებლად. თავისუფლად დასვით შეკითხვები ჩვენს Oracle ფორუმზე.

გადაამოწმეთ გამოცდილება! ყველამ, ვინც განიხილავს Oracle-ის მხარდაჭერის ექსპერტის სერვისების გამოყენებას, დამოუკიდებლად უნდა გამოიკვლიოს თავისი რწმუნებათა სიგელები და გამოცდილება და არ დაეყრდნოს რეკლამებსა და თვითგამოცხადებულ ექსპერტიზას. Oracle-ის ყველა ლეგიტიმური ექსპერტი აქვეყნებს მათ.

შეცდომა? შესრულების tuning


საავტორო უფლება 1996 - 2017 წწ

ყველა უფლება დაცულია ბურლესონის მიერ

® არის Oracle Corporation-ის რეგისტრირებული სავაჭრო ნიშანი.

დისტანციური გადაუდებელი დახმარება უზრუნველყოფილია Conversational-ის მიერ

ამ თავში განვიხილავთ გამონაკლისებს PL/SQL-ში. გამონაკლისი არის შეცდომის პირობა პროგრამის შესრულების დროს. PL/SQL მხარს უჭერს პროგრამისტებს ასეთი პირობების დაჭერაში გამონაკლისიდაბლოკოს პროგრამაში და მიიღება შესაბამისი ქმედება შეცდომის მდგომარეობის წინააღმდეგ. არსებობს ორი სახის გამონაკლისი −

  • სისტემით განსაზღვრული გამონაკლისები
  • მომხმარებლის მიერ განსაზღვრული გამონაკლისები

სინტაქსი გამონაკლისების მართვისთვის

გამონაკლისების დამუშავების ზოგადი სინტაქსი შემდეგია. აქ შეგიძლიათ ჩამოთვალოთ იმდენი გამონაკლისი, რამდენიც შეგიძლიათ. ნაგულისხმევი გამონაკლისი დამუშავდება გამოყენებით როცა სხვები მაშინ

გამოაცხადე დასაწყისი გამონაკლისი WHEN გამონაკლისი1 THEN exclusive1-handling-განცხადებები WHEN exclusive2 THEN exclusive2-handling-განცხადებები WHEN გამონაკლისი3 THEN exclusive3-handling-განცხადებები ........ WHEN სხვები THEN exclusive3-handling-განცხადებები END;

მაგალითი

მოდით დავწეროთ კოდი კონცეფციის საილუსტრაციოდ. ჩვენ გამოვიყენებთ CUSTOMERS ცხრილს, რომელიც შევქმენით და ვიყენებდით წინა თავებში -

აცხადებენ c_id customers.id%type:= 8; c_name customers.Name%type; c_addr customers.address%type; BEGIN აირჩიეთ სახელი, მისამართი INTO c_name, c_addr FROM კლიენტები WHERE id = c_id; DBMS_OUTPUT.PUT_LINE("სახელი:"|| c_name); DBMS_OUTPUT.PUT_LINE("მისამართი: " || c_addr); EXCEPTION WHEN no_data_found THEN dbms_output.put_line("ასეთი კლიენტი არ არის!"); WHEN სხვები მაშინ dbms_output.put_line("შეცდომა!"); ᲓᲐᲡᲐᲡᲠᲣᲚᲘ; /

ასეთი მომხმარებელი არ არის! PL/SQL პროცედურა წარმატებით დასრულდა.

ზემოთ მოცემულ პროგრამაში ნაჩვენებია მომხმარებლის სახელი და მისამართი, რომლის ID არის მოცემული. ვინაიდან ჩვენს მონაცემთა ბაზაში არ არის მომხმარებელი ID ღირებულებით 8, პროგრამა აყენებს გამონაკლისს გაშვების დროს ᲛᲝᲜᲐᲪᲔᲛᲘ ᲕᲔᲠ ᲛᲝᲘᲫᲔᲑᲜᲐ, რომელიც დატყვევებულია EXCEPTION ბლოკი.

გამონაკლისების ამაღლება

გამონაკლისები ჩნდება მონაცემთა ბაზის სერვერის მიერ ავტომატურად, როდესაც არის მონაცემთა ბაზის შიდა შეცდომის ადგილი, მაგრამ გამონაკლისები შეიძლება პირდაპირ იყოს პროგრამისტის მიერ ბრძანების გამოყენებით. ამაღლება. ქვემოთ მოცემულია მარტივი სინტაქსი გამონაკლისის ასამაღლებლად −

გამოაცხადეთ გამონაკლის_სახელი EXCEPTION; BEGIN IF პირობა, შემდეგ აწიეთ exclusive_name; ᲓᲐᲐᲡᲠᲣᲚᲔ ᲗᲣ; EXCEPTION WHEN Exception_name THEN განცხადება; ᲓᲐᲡᲐᲡᲠᲣᲚᲘ;

თქვენ შეგიძლიათ გამოიყენოთ ზემოაღნიშნული სინტაქსი Oracle-ის სტანდარტული გამონაკლისის ან მომხმარებლის მიერ განსაზღვრული ნებისმიერი გამონაკლისის ასამაღლებლად. შემდეგ განყოფილებაში ჩვენ მოგცემთ მაგალითს მომხმარებლის მიერ განსაზღვრული გამონაკლისის ამაღლების შესახებ. თქვენ შეგიძლიათ გაზარდოთ Oracle-ის სტანდარტული გამონაკლისები ანალოგიურად.

მომხმარებლის მიერ განსაზღვრული გამონაკლისები

PL/SQL საშუალებას გაძლევთ განსაზღვროთ საკუთარი გამონაკლისები თქვენი პროგრამის საჭიროების მიხედვით. მომხმარებლის მიერ განსაზღვრული გამონაკლისი უნდა იყოს დეკლარირებული და შემდეგ აშკარად, RAISE განცხადების ან პროცედურის გამოყენებით. DBMS_STANDARD.RAISE_APPLICATION_ERROR.

გამონაკლისის გამოცხადების სინტაქსია −

გამოაცხადო ჩემი გამონაკლისი გამონაკლისი;

მაგალითი

შემდეგი მაგალითი ასახავს კონცეფციას. ეს პროგრამა ითხოვს მომხმარებლის ID-ს, გამონაკლისის შემთხვევაში, როდესაც მომხმარებელი შეაქვს არასწორი ID invalid_idამაღლებულია.

აცხადებენ c_id customers.id%type:= &cc_id; c_name customers.Name%type; c_addr customers.address%type; -- მომხმარებლის განსაზღვრული გამონაკლისი ex_invalid_id EXCEPTION; დაიწყეთ თუ 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; /

როდესაც ზემოაღნიშნული კოდი შესრულებულია SQL მოთხოვნაზე, ის აწარმოებს შემდეგ შედეგს -

შეიყვანეთ მნიშვნელობა cc_id-ისთვის: -6 (მოდით, შეიყვანოთ მნიშვნელობა -6) ძველი 2: c_id customers.id%type:= &cc_id; new 2: c_id customers.id%type:= -6; ID უნდა იყოს ნულზე მეტი !PL/SQL პროცედურა წარმატებით დასრულდა.

წინასწარ განსაზღვრული გამონაკლისები

PL/SQL უზრუნველყოფს ბევრ წინასწარ განსაზღვრულ გამონაკლისს, რომელიც შესრულებულია პროგრამის მიერ მონაცემთა ბაზის რომელიმე წესის დარღვევისას. მაგალითად, წინასწარ განსაზღვრული გამონაკლისი NO_DATA_FOUND ჩნდება, როდესაც SELECT INTO განცხადება არ დააბრუნებს რიგებს. შემდეგ ცხრილში ჩამოთვლილია რამდენიმე მნიშვნელოვანი წინასწარ განსაზღვრული გამონაკლისი −

გამონაკლისი Oracle შეცდომა SQLCODE აღწერა
ACCESS_INTO_NULL 06530 -6530 ის იზრდება, როდესაც null ობიექტს ავტომატურად ენიჭება მნიშვნელობა.
CASE_NOT_FOUND 06592 -6592 ის ჩნდება, როდესაც არცერთი არჩევანი არ არის არჩეული CASE განცხადების WHEN პუნქტში და არ არის ELSE პუნქტი.
COLLECTION_IS_NULL 06531 -6531 ის იზრდება, როდესაც პროგრამა ცდილობს გამოიყენოს შეგროვების სხვა მეთოდები, გარდა EXISTS, არაინიციალიზებულ ჩადგმულ ცხრილზე ან ვარეიზე, ან პროგრამა ცდილობს მნიშვნელობების მინიჭებას არაინინიციალიზებული ჩასმული ცხრილის ან ვარეის ელემენტებს.
DUP_VAL_ON_INDEX 00001 -1 ის იზრდება, როდესაც დუბლიკატი მნიშვნელობების შენახვას ცდილობენ სვეტში უნიკალური ინდექსით.
INVALID_CURSOR 01001 -1001 ის იზრდება, როდესაც მცდელობა ხდება კურსორის დაუშვებელი ოპერაციის განხორციელება, როგორიცაა გაუხსნელი კურსორის დახურვა.
ᲐᲠᲐᲡᲬᲝᲠᲘ ᲜᲝᲛᲔᲠᲘ 01722 -1722 ის იზრდება, როდესაც სიმბოლოს სტრიქონის რიცხვად გადაქცევა ვერ ხერხდება, რადგან სტრიქონი არ წარმოადგენს მოქმედ რიცხვს.
LOGIN_უარი 01017 -1017 ის იზრდება, როდესაც პროგრამა ცდილობს შევიდეს მონაცემთა ბაზაში არასწორი მომხმარებლის სახელით ან პაროლით.
ᲛᲝᲜᲐᲪᲔᲛᲘ ᲕᲔᲠ ᲛᲝᲘᲫᲔᲑᲜᲐ 01403 +100 ის იზრდება, როდესაც SELECT INTO განცხადება არ აბრუნებს მწკრივებს.
NOT_LOGGED_ON 01012 -1012 ის იზრდება, როდესაც მონაცემთა ბაზის გამოძახება ხდება მონაცემთა ბაზასთან დაკავშირების გარეშე.
PROGRAM_ERROR 06501 -6501 ის იზრდება, როდესაც PL/SQL-ს აქვს შიდა პრობლემა.
ROWTYPE_MISMATCH 06504 -6504 ის იზრდება, როდესაც კურსორი იღებს მნიშვნელობას ცვლადში, რომელსაც აქვს მონაცემთა შეუთავსებელი ტიპი.
SELF_IS_NULL 30625 -30625 ის ჩნდება წევრის მეთოდის გამოძახებისას, მაგრამ ობიექტის ტიპის ეგზემპლარი არ იყო ინიციალიზებული.
STORAGE_ERROR 06500 -6500 ის იზრდება, როდესაც PL/SQL მეხსიერება ამოიწურა ან მეხსიერება დაზიანებულია.
TOO_MANY_ROWS 01422 -1422 ის იზრდება, როდესაც SELECT INTO განცხადება დააბრუნებს ერთზე მეტ მწკრივს.
VALUE_ERROR 06502 -6502 ის იზრდება, როდესაც ხდება არითმეტიკული, კონვერტაციის, შეკვეცის ან ზომის შეზღუდვის შეცდომა.
ZERO_DIVIDE 01476 1476 ის ამაღლებულია, როდესაც მცდელობაა გაყოთ რიცხვი ნულზე.

დოქტორი ვლადიმერ ლიხაჩოვი, კალუგის პედაგოგიური უნივერსიტეტი კ.ე.ციოლკოვსკის სახელობის

მონაცემთა ბაზებთან მომუშავე პროგრამებისთვის მნიშვნელოვანია არა მხოლოდ მათი შეცდომების სწორად დამუშავება, არამედ ამ შეცდომების შესახებ ინფორმაციული შეტყობინებების გენერირება. ასეთი შეტყობინებების არსებობა საშუალებას გაძლევთ სწრაფად დაადგინოთ მიზეზები და გამოასწოროთ შეცდომები. ეს განსაკუთრებით ეხება საბოლოო მომხმარებლის პროგრამასთან მუშაობისას, რადგან უმეტეს შემთხვევაში მან არ იცის არა მხოლოდ კონკრეტული მონაცემთა ბაზის სტრუქტურა, არამედ რელაციური მონაცემთა ბაზების თეორიული საფუძვლებიც.

უცნაურად საკმარისია, რომ პროგრამებში შეცდომის შეტყობინებების ფორმირების სიტუაცია საკმაოდ ხშირად ძალიან განსხვავდება თავად შეცდომების დამუშავებისგან. შეცდომების დამუშავებისას, როგორც წესი, შესაძლებელია შემუშავდეს საერთო სტრატეგია, რომელიც საშუალებას გაძლევთ ლოკალიზდეს მათი დამუშავება ერთ ან რამდენიმე ფუნქციაში. შეცდომის შეტყობინებების მსგავსი მიდგომა შეიძლება განხორციელდეს იმის საფუძველზე, რომ შეცდომის შეტყობინებაში Oracle სერვერი მიუთითებს შეცდომის ტიპსა და მონაცემთა ბაზის ობიექტს, რამაც გამოიწვია იგი. ასეთი ობიექტები, როგორც წესი, არის შეზღუდვები, როგორიცაა პირველადი, უნიკალური და უცხო კლავიშები, უნიკალური ინდექსები, "არა ნულოვანი" შეზღუდვები და ა.შ. დეტალური ინფორმაცია ამ შეზღუდვების შესახებ შეგიძლიათ მიიღოთ სისტემის ცხრილებიდან და მონაცემთა ბაზის ხედებიდან და მნიშვნელობები, რომლებიც შეიძლება შეიცვალოს. და შეიცვლება შეიძლება დადგინდეს.მიიყვანა შეცდომამდე. მაგრამ პრობლემა ის არის, რომ რეალურ აპლიკაციებში შეცდომის შეტყობინებების წარმოქმნის ასეთი მექანიზმის დანერგვა უამრავ სირთულეს აწყდება:

  • შეცდომის შეტყობინების დამოკიდებულება პროგრამის დანიშნულებაზე. ერთიდაიგივე მონაცემთა ბაზაში მომუშავე პროგრამებისთვისაც კი შეიძლება საჭირო გახდეს სხვადასხვა შეტყობინებების გენერირება ერთი და იგივე შეცდომის შესახებ. მაგალითად, მომხმარებლის მონაცემების რედაქტირების პროგრამაში შეტყობინება უნდა იყოს: "პროდუქტი ამ სახელით უკვე რეგისტრირებულია! შეამოწმეთ პროდუქტის სახელი!". მაგრამ მონაცემთა იმპორტის პროგრამაში საჭიროა სრულიად განსხვავებული შინაარსის შეტყობინება: „იმპორტირებული მონაცემები დუბლირებულია – შეამოწმეთ მონაცემების იმპორტის თარიღი!“.
  • შეტყობინებების გენერირების სირთულე მონაცემთა ბაზის შეზღუდვით გამოწვეული ზოგიერთი შეცდომისთვის. მაგალითად, CHECK შეზღუდვებს ცხრილებზე შეუძლია გამოიყენოს საკმაოდ რთული მოთხოვნები და პირობები. ამიტომ, მათი ანალიზის საფუძველზე შეტყობინებების ფორმირება შეიძლება საკმაოდ რთული ამოცანა იყოს.
  • ცხრილებისა და სვეტების მორგებული სახელების გამოყენება კლიენტის პროგრამებში, რომლებიც განსხვავდება მონაცემთა ბაზაში არსებული მათი სახელებისგან. მაგალითად, ცხრილს აქვს სახელი "GOODS", ხოლო კლიენტის აპლიკაციაში ამ ცხრილის მონაცემები შეიძლება გამოჩნდეს დირექტორიაში, როგორც "პროდუქტები" ან "პროდუქტები".

ამ ფაქტორების ერთობლიობა ჩვეულებრივ იწვევს იმ ფაქტს, რომ შეტყობინებების ფორმირება, თუნდაც ერთი და იგივე ტიპის შეცდომის შესახებ, ინდივიდუალურად ხორციელდება თითოეული ტრანზაქციისთვის. შედეგად, შეცდომის შეტყობინებების გენერირების კოდი ნაწილდება მთელ აპლიკაციაში, რაც ართულებს მის შენარჩუნებას. თითქმის ყველა შესაძლო შეცდომისთვის კოდის დაწერის აუცილებლობის გამო, ზოგიერთი შეცდომა, რომელიც დეველოპერმა იცის, ხდება მომხმარებლისთვის შესაბამისი შეტყობინებების გარეშე. შედეგად, საბოლოო მომხმარებლისთვის საკმარისად ინფორმატიული შეტყობინებები იქმნება მხოლოდ ზოგიერთი შეცდომის გამო, სხვა შემთხვევაში, ის უნდა იყოს კმაყოფილი, საუკეთესო შემთხვევაში, თავად მონაცემთა ბაზის სერვერის შეტყობინებებით. ასეთი შეტყობინებების ინფორმატიულობა საშუალო მომხმარებლისთვის უმეტეს შემთხვევაში არ არის საკმარისი პრობლემის მიზეზის დასადგენად და მის აღმოსაფხვრელად.

სტატიაში განხილული მომხმარებლისთვის ინფორმაციული შეცდომის შეტყობინებების გენერირების მეთოდი საკმაოდ უნივერსალურია; მისი დანერგვა შესაძლებელია როგორც კლიენტის აპლიკაციებში, ასევე Oracle სერვერის მხარეს. მისი გამოყენება შესაძლებელია სხვადასხვა ტიპის პროგრამებში, როგორიცაა:

  • პროგრამები, რომლებიც იყენებენ სპეციალურ ინტერფეისს მონაცემთა ბაზის მონაცემების შესაყვანად და შესაცვლელად. უმეტეს შემთხვევაში, ინფორმაციული შეცდომის შეტყობინებების მიღება შესაძლებელია მონაცემთა ბაზის სტრუქტურის ანალიზით. ეს აცნობებს მომხმარებელს მათი მიზეზის შესახებ დეველოპერებისა და პროგრამული უზრუნველყოფის მინიმალური ძალისხმევით.
  • პროგრამები მომხმარებლის მიერ თვითნებური SQL მოთხოვნების შექმნის შესაძლებლობით. მონაცემთა ბაზის სტრუქტურის ანალიზზე დაფუძნებული შეტყობინებების ფორმირება განსაკუთრებით აქტუალურია პროგრამებისთვის, რომლებიც გათვლილია მომხმარებელთა ფართო სპექტრზე, მათ შორის ამ სფეროში ცოდნის დაბალი დონის მქონეთათვის. ეს გახდის მომხმარებლისთვის უფრო გასაგები შეცდომის შეტყობინებებს SQL მოთხოვნებში.
  • საგნობრივი პლატფორმები. სტატიაში აღწერილი მეთოდების გამოყენება საგნის პლატფორმას საშუალებას მისცემს თავად შექმნას მონაცემთა ბაზის შეცდომის შეტყობინებები მისი სტრუქტურის ანალიზის საფუძველზე. ეს შესაძლებელს გახდის პლატფორმის ენის კოდის შემცირებას, რომელიც გამოიყენება შეცდომის სიტუაციების მოსაგვარებლად. და შეცდომები, რომლებიც საჭიროებენ სპეციალურ შეტყობინებებს, მაგრამ აღმოჩნდა მათ გარეშე, საკმარისად ინფორმატიული იქნება, რათა გაადვილდეს მათი მიზეზის დადგენა.

ზემოთ აღწერილი შეტყობინებების ფორმირების პრობლემები შეიძლება მოგვარდეს, თუ შეცდომის შეტყობინებები პირობითად იყოფა ორ ჯგუფად:

  • უნივერსალური გზავნილები, რომლებიც ყალიბდება მონაცემთა ბაზის სტრუქტურის ანალიზის საფუძველზე;
  • სპეციალური შეტყობინებები, რომლებიც განისაზღვრება ინდივიდუალურად თითოეული შეცდომისთვის.

სტატიაში აღწერილი მონაცემთა ბაზის შეცდომის შეტყობინებების გენერირების მეთოდი შეიძლება გამოყენებულ იქნას მონაცემთა ბაზის ბევრ სერვერზე. სტატიაში განხილულია Firebird სერვერის მონაცემთა ბაზებისთვის მისი გამოყენების მაგალითი. თუ კლიენტის აპლიკაცია განვითარებულია Object Pascal-ში (Delphi, Kylix, Free Pascal), მაშინ JEDI ბიბლიოთეკის შესაძლებლობები შეიძლება სასარგებლო იყოს მოულოდნელი შეცდომების მიზეზების დასადგენად.

1. უნივერსალური შეცდომის შეტყობინებები, რომლებიც გამოწვეულია მონაცემთა ბაზის შეზღუდვით

როგორც ზემოთ აღინიშნა, უნივერსალური შეტყობინებების შექმნის მთავარი იდეა არის საკმარისად ინფორმატიული და გასაგები გზავნილის ჩამოყალიბება საბოლოო მომხმარებლისთვის Oracle-ის შეცდომის შეტყობინებების და მონაცემთა ბაზის სტრუქტურის საფუძველზე. დავუშვათ, რომ ცხრილში „GOODS“ (სკრიპტი 1.1) მომხმარებელი ცდილობს დაამატოს პროდუქტი სახელწოდებით (სვეტი „TITLE“), რომელიც უკვე არის ცხრილში.

შექმენით TABLE DEMO.GOODS (კოდის მთელი რიცხვი NULL , TITLE VARCHAR2 (50 ბაიტი) NOT NULL , PRICE NUMBER(16, 2) NOT NULL , CONSTRAINT CK_PRICE შემოწმება (PRICE > 0), CONSTRAINT PPKMARRIDEYGOOD; კომენტარი TABLE DEMO.GOODS-ზე არის "საქონელი"; კომენტარი სვეტზე DEMO.GOODS.CODE არის "პროდუქტის კოდი"; კომენტარი სვეტზე DEMO.GOODS.TITLE არის "სათაური"; კომენტარი სვეტის DEMO.GOODS.PRICE არის "ფასი"; შექმენით უნიკალური ინდექსი DEMO.IDX_GOODS_TITLE DEMO.GOODS-ზე(TITLE);

სკრიპტი 1.1. "საქონლის" ცხრილის შექმნა.

სერვერი წარმოქმნის შეცდომას ამ შემთხვევაში, რადგან სვეტი "TITLE", რომელიც ინახავს პროდუქტის სახელს, შედის უნიკალურ ინდექსში "DEMO.IDX_GOODS_TITLE":

ამის ნაცვლად, მომხმარებლისთვის შეიძლება ჩამოყალიბდეს შეტყობინება, მაგალითად, ერთ-ერთი შეტყობინება:

  • "პროდუქტები" ცხრილში "სახელი" ველის მნიშვნელობა უნიკალური უნდა იყოს!
  • ამ სახელწოდების პროდუქტი უკვე რეგისტრირებულია! შეამოწმეთ პროდუქტის სახელი!
  • პროდუქტის იგივე სახელი არ შეიძლება იყოს პროდუქტის დირექტორიაში!

მიუხედავად იმისა, რომ ეს შეტყობინებები განსხვავდება, ისინი ყველა მიუთითებს ინფორმაციას ობიექტის შესახებ, რომლისთვისაც დარღვეულია უნიკალურობის შეზღუდვა - ეს არის "პროდუქტები" ცხრილის "სახელი" ველი.

ამ ტიპის შეტყობინებების გენერირების ერთ-ერთი პრობლემა არის ის, რომ მორგებული ველებისა და ცხრილების სახელები განსხვავდება მონაცემთა ბაზის ცხრილებისა და სვეტების სახელებისგან. იმისათვის, რომ მომხმარებელმა გაიგოს შეცდომის შეტყობინება, მან უნდა გამოიყენოს მორგებული სახელები. ცალკე ცხრილი ან კომენტარები ცხრილებისა და სვეტებისთვის შეიძლება გამოყენებულ იქნას ცხრილებისა და ველების სახელებისა და მათი მორგებული სახელების შესატყვისად. ეს უკანასკნელი ვარიანტი შეიძლება ჩაითვალოს უფრო სასურველად, რადგან ის საშუალებას გაძლევთ ერთდროულად მოახდინოთ მონაცემთა ბაზის დოკუმენტაცია. სწორედ ამიტომ სკრიპტ 1.1-ში მომხმარებლის მიერ განსაზღვრული სახელები მოცემულია ცხრილისა და მისი სვეტების კომენტარების სახით. თუ შევადარებთ ზემოთ მოცემულ შეტყობინებებს და კომენტარებს ცხრილისა და სვეტებისთვის, დავინახავთ, რომ პირველი შეტყობინების ფორმირება უმარტივესი ვარიანტია. დანარჩენი ორი გზავნილის ფორმირებისთვის შესაძლოა საჭირო იყოს ლექსიკური სინთეზი, მაგრამ ეს ცალკე ამოცანაა. თქვენი ყურადღება მინდა გავამახვილო იმ ფაქტზე, რომ მომავალში სტატიაში მოცემულია მხოლოდ ერთი შესაძლო შეტყობინების ვარიანტი თითოეული შეცდომის შემთხვევისთვის. პრაქტიკაში, შეტყობინებების სტილისა და შინაარსის არჩევანი შეიძლება დამოკიდებული იყოს რიგ ფაქტორებზე და განისაზღვრება სისტემის დიზაინერის მიერ.

რა თქმა უნდა, არ არის გამორიცხული, რომ არ იყოს კომენტარები ცხრილის ან სვეტისთვის, რომელიც უნდა იყოს შეტანილი შეტყობინებაში. ამ სიტუაციაში შეცდომის შეტყობინებამ შეიძლება პირდაპირ აჩვენოს ცხრილის ან სვეტის სახელი.

2. საჭირო ველის მნიშვნელობა არ არის მითითებული (შეზღუდვა NOT NULL)

ეს შეცდომა გენერირდება სერვერის მიერ რამდენიმე შემთხვევაში:

  • დაირღვა სვეტის „არა ნულოვანი“ შეზღუდვა;
  • მნიშვნელობა არ იყო მითითებული სვეტისთვის, რომელიც არის უნიკალური ინდექსის, ძირითადი გასაღების ან უნიკალური გასაღების ნაწილი.

ყველა ამ შემთხვევაში, სერვერი ქმნის შეცდომას:

შეცდომის შეტყობინებებიდან ცხრილისა და სვეტის აღწერილობის მისაღებად, შეიძლება გამოყენებულ იქნას მოთხოვნა 2.1.

აირჩიეთ tc.comments როგორც table_comment, cc.comments როგორც column_comment დან all_tab_columns c, all_tab_comments tc, all_col_comments cc c.owner და cc.table_name = c.table_name და cc.column_name = c.column_name

მოთხოვნა 2.1. მიიღეთ ცხრილი და სვეტის აღწერა

როგორც მოთხოვნის პარამეტრებში "მფლობელი", "table_name", "column_name" თქვენ უნდა მიუთითოთ სქემის, ცხრილის და სვეტის სახელი შეცდომის გაგზავნიდან, შესაბამისად. შეკითხვა აბრუნებს კომენტარს ცხრილისა და სვეტისთვის.

ამ მოთხოვნის შედეგების გამოყენებით, შეიძლება შეიქმნას შეცდომის შეტყობინება, მაგალითად, შემდეგი შინაარსი:

თქვენ უნდა მიუთითოთ სვეტის მნიშვნელობა "<Описание поля>"მაგიდაზე"<Описание таблицы>"-ზე<добавлении новой/изменении>ჩანაწერები.

3. დარღვეულია ველის ან სვეტების სიმრავლის მნიშვნელობის უნიკალურობა

სვეტისთვის უნიკალური მნიშვნელობის შეყვანის აუცილებლობა შეიძლება საჭირო გახდეს ძირითადად სამ შემთხვევაში:

  • სვეტი არის ძირითადი გასაღების ნაწილი;
  • სვეტი შედის უნიკალურ გასაღებში;
  • სვეტი შედის უნიკალურ ინდექსში.

სამივე შემთხვევაში Oracle Database წარმოქმნის იგივე შეცდომას:
ORA-00001: დარღვეულია უნიკალური შეზღუდვა (<Схема>.<Ограничение>)

შეცდომის შეტყობინება მიუთითებს შეზღუდვას, რამაც გამოიწვია შეცდომა. მთავარ ან უნიკალურ კლავიშებში შემავალი სვეტების შესახებ ინფორმაციის მისაღებად შეგიძლიათ გამოიყენოთ მოთხოვნა 3.1, ინდექსის შესახებ ინფორმაციის მისაღებად - მოთხოვნა 3.2.

აირჩიეთ dcs.constraint_type, cc.table_name, tc.comments როგორც table_comment, cc.column_name, ccom.comments როგორც column_comment დან all_cons_columns cc შეუერთდი all_tab_comments tc on (tc.owner = cc.owner და tc.table_name = cc.table_name) შეუერთდი all_col_comments ccom on (ccom.owner = cc.owner და ccom.table_name = cc.table_name და ccom.ccumn._name. column_name) შეუერთდეს all_constraints dcs-ზე (dcs.constraint_name = cc.constraint_name) სადაც cc.owner = :owner და cc.constraint_name = :key_name
მოთხოვნა 3.1. ძირითადი ან უნიკალური კლავიშებში შემავალი ცხრილის სვეტების შესახებ ინფორმაციის მოპოვება.
აირჩიეთ ic.table_name, tc.comments როგორც table_comment, ic.column_name, ccom.comments როგორც column_comment დან all_ind_columns ic შეუერთდი all_tab_comments tc on (tc.owner = ic.table_owner და tc.table_name = ic.table_name) შეუერთდი all_col_comments ccom on (ccom.owner = ic.table_owner და ccom.table_name = ic.table_name და c_com სვეტის_სახელი) სადაც table_owner = :owner და index_name = :index_name
მოთხოვნა 3.2. ინდექსში შემავალი ცხრილის სვეტების შესახებ ინფორმაციის მიღება.

შეკითხვის პარამეტრებია სქემის სახელი ("მფლობელი"), გასაღების სახელი ("key_name") ან ინდექსის სახელი ("index_name"). მოთხოვნები აბრუნებს შეზღუდვის ცხრილებისა და სვეტების სახელებს და კომენტარებს. შეკითხვა 3.1 ასევე აბრუნებს შეზღუდვის ტიპს ("constraint_type"): "P" - ძირითადი გასაღები, "U" - უნიკალური გასაღები. მოთხოვნების მიერ დაბრუნებული ჩანაწერების რაოდენობა ემთხვევა უნიკალურ შეზღუდვის სვეტების რაოდენობას.

მომხმარებლისთვის უნიკალურობის შეზღუდვის შესახებ მიღებული ინფორმაციის საფუძველზე, შეიძლება შეიქმნას შეცდომის შეტყობინებების ვარიანტები, მაგალითად, ის, რაც მოცემულია 1-ელ ნაწილში.

4. უცხო გასაღების შეზღუდვებით გამოწვეული შეცდომები

უცხო კლავიშებთან დაკავშირებულ ცხრილის მონაცემებზე ოპერაციების შესრულებისას, არსებობს რამდენიმე მიზეზი, რაც იწვევს შეცდომებს:

1. დაქვემდებარებულ ცხრილს ემატება ჩანაწერი, რომელშიც საგარეო გასაღებში შემავალ სვეტს არ აქვს შესაბამისი მნიშვნელობა მთავარ ცხრილში. ანალოგიური სიტუაცია ხდება დაქვემდებარებული ცხრილის სვეტის მნიშვნელობის შეცვლისას, თუ ახალი სვეტის მნიშვნელობა არ არის მთავარ ცხრილში. Oracle მონაცემთა ბაზა ამ შემთხვევაში წარმოქმნის შეცდომას:

  1. მცდელობა ხდება შეცვალოს სვეტის მნიშვნელობა მშობლის ცხრილში, რომელიც მითითებულია შვილო ცხრილში. ამ შემთხვევაში, Oracle Database წარმოქმნის შეცდომას:
  1. მცდელობაა წაშალოთ მონაცემები სამაგისტრო ცხრილში, რომლებიც მითითებულია შვილობილ ცხრილში. თუ მონაცემთა წაშლის ოპერაციისთვის ცხრილებს შორის ურთიერთობის განმარტებაში მითითებულია შეზღუდვა "NO ACTION", მაშინ Oracle არ დაუშვებს მონაცემთა წაშლას ძირითადი ცხრილიდან, თუ შვილობილ ცხრილს აქვს ჩანაწერები, რომლებიც დაკავშირებულია წაშლილ ჩანაწერთან. ამ სიტუაციისთვის Oracle Database წარმოქმნის წინა შემთხვევის მსგავს შეცდომას.

შეგიძლიათ გამოიყენოთ მოთხოვნა 4.1 ქვემოთ, რათა მიიღოთ ინფორმაცია ძირითადი და შვილობილი ცხრილების სვეტების შესახებ, რომლებიც უცხო გასაღების ნაწილია.

აირჩიეთ a.constraint_name, a.table_name, tc1.comments როგორც table_comment, a2.column_name, cc1.comments როგორც column_comment, b.owner როგორც r_owner, b.table_name როგორც r_table_name, tc2.კომენტარები როგორც r_table_comment, b2._ccumn_name როგორც .კომენტარები, როგორც r_column_comment დან all_constraints a, all_constraints b, all_cons_columns a2, all_cons_columns b2, all_tab_comments tc1, all_col_comments cc1, all_tab_comments tc2, all_col_comments cc2, სადაც a.owner = :owner და a.constraint_con_type = "Rinstraint_constraint_type =" ("P","U") და b.constraint_name = a.r_constraint_name და b.owner = a.r_owner და a2.constraint_name = a.constraint_name და a2.table_name = a.table_name და a2.owner = a.owner და b2.constraint_name = b.constraint_name და b2.table_name = b.table_name და b2.owner = b.owner და b2.position = a2.position და tc1.owner = a.owner და tc1.table_name = a.table_name და cc1. მფლობელი = a2.owner და cc1.table_name = a2.table_name და cc1.column_name = a2.column_name და tc2.owner = b.owner და tc2.table_name = b.table_name და cc2.owner = b2.owner და cc2.table_name = b2.table_name და cc2.column_name = b2.column_name
მოთხოვნა 4.1. უცხო გასაღების შესახებ ინფორმაციის მიღება.

მოთხოვნას აქვს ორი პარამეტრი: "მფლობელი" და "უცხო_გასაღები" - სქემა და უცხო გასაღები, რომლის შესახებაც გსურთ ინფორმაციის მიღება. ის აბრუნებს ინფორმაციას უცხოური გასაღების შემადგენლობაში შემავალი სვეტების შესახებ: „table_name“, „table_comment“ - დაქვემდებარებული ცხრილის სახელწოდება და აღწერა; "column_name", "column_comment" - დაქვემდებარებული ცხრილის სვეტის დასახელება და აღწერა. შეკითხვის სვეტები პრეფიქსით "r_" აბრუნებს ინფორმაციას ძირითადი ცხრილის შესახებ. მოთხოვნის მიერ დაბრუნებული ჩანაწერების რაოდენობა შეესაბამება უცხო კლავიშში შეტანილი სვეტების რაოდენობას.

ამ ინფორმაციის საფუძველზე, მომხმარებლისთვის შეიძლება შეიქმნას შეცდომის შეტყობინებები.

5. სპეციალური შეცდომის შეტყობინებები, რომლებიც გამოწვეულია მონაცემთა ბაზის შეზღუდვით

სპეციალური შეტყობინებების გამოყენების აუცილებლობა შეიძლება წარმოიშვას, თუ უნივერსალური შეცდომის გაგზავნა რაიმე მიზეზით ვერ გამოიყენება ან ვერ წარმოიქმნება. ამ უკანასკნელი შემთხვევის მაგალითია CHECK შეზღუდვები ცხრილებზე. შეზღუდულ პირობებში შეიძლება გამოვიყენოთ მოთხოვნები და პირობები, რომელთა ანალიზი საკმაოდ რთული ამოცანაა. ამიტომ, ამ შეზღუდვებისთვის, ხშირად უფრო მოსახერხებელია შეტყობინებების გამოყენება, რომლებიც განსაზღვრულია დიზაინის დროს.

შეიძლება გამოიყოს შეცდომის სპეციალური შეტყობინებების ორი ჯგუფი. პირველი ტიპის სპეციალური შეტყობინებები განკუთვნილია ყველა აპლიკაციისთვის, რომელიც მუშაობს საერთო მონაცემთა ბაზასთან. მათ თავისუფლად შეიძლება ეწოდოს "სპეციალური მონაცემთა ბაზის დონის შეცდომის შეტყობინებები". შეტყობინებების მეორე ჯგუფი სპეციფიკურია აპლიკაციისთვის. ისინი შეიძლება საჭირო გახდეს, როდესაც სხვადასხვა აპლიკაციებმა უნდა მიაწოდონ მომხმარებელს სხვადასხვა შეტყობინებები იმავე შეცდომის შესახებ. მათ პირობითად შეიძლება ეწოდოს "სპეციალური განაცხადის დონის შეცდომის შეტყობინებები". მოსახერხებელია შეტყობინებების პირველი ჯგუფის შესახებ ინფორმაციის შენახვა თავად მონაცემთა ბაზაში და ამისთვის ცალკე ცხრილის გამოყენება. პროგრამისთვის სპეციფიკური შეტყობინებები შეიძლება ინახებოდეს მის რესურსებში, მაგალითად, ცალკე ფაილის სახით ან ასევე მონაცემთა ბაზაში. სპეციალური შეტყობინებების იდენტიფიცირება შესაძლებელია შეცდომის კოდის, სქემის სახელისა და შეცდომის შეტყობინების ერთი ან მეტი საკვანძო სიტყვის საფუძველზე.

6. შეამოწმეთ შეზღუდვის შეცდომის შეტყობინებები ცხრილებისთვის

როდესაც შეცდომა ჩნდება მაგიდაზე CHECK შეზღუდვის გამო, სერვერი წარმოქმნის შეცდომას:
ORA-02290: შეამოწმეთ მთლიანობის შეზღუდვა დაირღვა (<Схема>.<Имя ограничения>)

როგორც ზემოთ აღინიშნა, ხშირად მოსახერხებელია სპეციალური შეტყობინებების გამოყენება ასეთი შეცდომებისთვის. მაგალითად, "CK_PRICE" შეზღუდვა "GOODS" ცხრილში შეიძლება გამოიყენოს მორგებული შეტყობინება შენახული შეტყობინების ცხრილში:

7. ჩვეულებრივი და ზოგადი შეცდომის შეტყობინებების ყოვლისმომცველი გამოყენება

მომხმარებლისთვის ინფორმაციული შეცდომის შეტყობინებების გენერირების მოქნილი მექანიზმი დანერგილია რამდენიმე ეტაპად (ნახ. 1):

1. გამოიტანეთ პერსონალური განაცხადის დონის შეცდომის შეტყობინება. პროგრამა თავდაპირველად ეძებს შეცდომის შეტყობინებას ამ პროგრამის კონკრეტულ შეტყობინებებს შორის. თუ ასეთი შეტყობინება იქნა ნაპოვნი, ის გამოჩნდება და შეტყობინების ფორმირება დასრულებულია.

2. გამოიტანეთ სპეციალური შეცდომის შეტყობინება მონაცემთა ბაზის დონეზე. თუ 1-ელ საფეხურზე შეტყობინება ვერ მოიძებნა, მოძებნილია სპეციალური მონაცემთა ბაზის დონის შეცდომის შეტყობინება. თუ ნაპოვნია, ის ეჩვენება მომხმარებელს და შეცდომის შეტყობინებების გენერაცია მთავრდება.

3. მონაცემთა ბაზის სტრუქტურის ანალიზის საფუძველზე შეტყობინების ჩვენება (უნივერსალური შეტყობინება). თუ წინა ეტაპებზე სპეციალური შეტყობინებები არ იქნა ნაპოვნი, მაშინ იგი ყალიბდება მონაცემთა ბაზის სტრუქტურის ანალიზის საფუძველზე. ის ეჩვენება მომხმარებელს და ამით სრულდება შეტყობინების ფორმირება.

4. მონაცემთა ბაზის სერვერიდან შეტყობინების ჩვენება. თუ წინა სამ საფეხურზე მომხმარებლისთვის არანაირი შეტყობინება არ შეიქმნა, მაშინ Oracle-ის შეცდომის შეტყობინება გამოჩნდება. ეს მდგომარეობა შეიძლება წარმოიშვას რამდენიმე მიზეზის გამო. მაგალითად, როდესაც ჩნდება მორგებული შეცდომა, რომელიც განზრახ გენერირებული იყო შენახულ პროცედურაში ან ტრიგერში RAISE_APPLICATION_ERROR ფუნქციის გამოყენებით და შეტყობინების შინაარსი, რომლის შეცვლაც არ არის საჭირო.

შესაძლებელია უფრო რთული შემთხვევები, ვიდრე ამ სტატიაშია მოცემული. მაგალითად, თუ შეტყობინება გენერირებულია შენახულ პროცედურაში, რომელიც თავის მხრივ შეიძლება გამოიძახოთ ტრიგერით ან სხვა შენახული პროცედურისგან. ამ შემთხვევაში, შესაძლოა დაგჭირდეთ ინფორმაცია იმის შესახებ, თუ როგორ გამოიძახეს პროცედურა, რომელმაც შექმნა შეცდომის შეტყობინება. და ამიტომ, ორიგინალური შეტყობინება შეიძლება დაემატოს ან შეიცვალოს, მაგალითად, შენახული პროცედურების და ტრიგერების ზარის დასტაზე ინფორმაციის საფუძველზე.

ზოგიერთ შემთხვევაში, ასეთი შეტყობინებები შეიძლება იყოს უფრო ინფორმატიული, ვიდრე წინა ეტაპებზე გენერირებული. მაგალითად, ნაცვლად CK_PRICE შეზღუდვისა DEMO.GOODS ცხრილისთვის (სკრიპტი 1.1), თქვენ შეგიძლიათ განახორციელოთ საჭირო შემოწმება ჩანაწერში ჩანაწერის ჩასმამდე და განახლებამდე და შექმნათ შეტყობინება მომხმარებლისთვის უკვე "მზა" ფორმით:

თუ პროდუქტის ფასი ნულის ტოლია ან ნაკლებია, სერვერი წარმოქმნის შეცდომას, მაგალითად:

კლიენტის აპლიკაციას შეუძლია დაუყოვნებლივ გაუგზავნოს ეს შეტყობინება მომხმარებელს ცვლილების გარეშე.

კიდევ ერთი მიზეზი შეიძლება იყოს შეცდომის გამოჩენა, რომლისთვისაც შეტყობინების ფორმირება არ არის გათვალისწინებული.

ბრინჯი. 1. მონაცემთა ბაზის შეცდომის შეტყობინების გენერირების თანმიმდევრობა.

მინდა აღვნიშნო, რომ მაშინაც კი, თუ აპლიკაცია იყენებს მხოლოდ სპეციალურ შეცდომის შეტყობინებებს, მაშინ შეტყობინებების გენერირებისთვის საერთო ფუნქციის გამოყენება გააუმჯობესებს პროგრამის სტრუქტურას. საჭიროების შემთხვევაში, სპეციალური შეტყობინებების ფორმატს შეუძლია უზრუნველყოს დახმარების სისტემის ბმულები, სურათები და ა.შ. მონაცემთა ბაზის შეცდომის შეტყობინებების გენერირების აღწერილი მეთოდი უფრო მეტად არის ორიენტირებული კლიენტის აპლიკაციაში განხორციელებაზე. ამავდროულად, მისი გამოყენება შესაძლებელია სერვერის მხარეს შენახულ პროცედურებში, ცხრილის ტრიგერებში, ასევე მონაცემთა ბაზის ან სქემის SERVERERROR მოვლენის სისტემის ტრიგერებში.

დასკვნა

ამ სტატიის მიზანია აჩვენოს მეთოდის ძირითადი იდეები, რომელიც შეიძლება გამოყენებულ იქნას საბოლოო მომხმარებლისთვის Oracle მონაცემთა ბაზის შეცდომის შესახებ ინფორმაციული შეტყობინებების გენერირებისთვის. მიუხედავად იმისა, რომ განხორციელების ზოგიერთი პუნქტი დარჩა სტატიის ფარგლებს მიღმა, მსურს იმედი ვიქონიო, რომ სტატიაში აღწერილი მიდგომა შეამცირებს შრომის ხარჯებს პროგრამული უზრუნველყოფის შემუშავებაში, გააუმჯობესებს მის საიმედოობას და ხარისხს.

როდესაც ხდება გამონაკლისები, მნიშვნელოვანია მომხმარებლისთვის მოსახერხებელი შეცდომის შეტყობინებების გაცემა. გამონაკლისები უკვე ნახსენები იყო ძირითადი PL/SQL ბლოკების განყოფილებაში. ახლა დროა განვიხილოთ ისინი უფრო დეტალურად.

გამონაკლისები

გამონაკლისი არის შეცდომის პირობა, რომელიც გააქტიურებულია - ან აღელვებული - როდესაც პრობლემა ჩნდება. არსებობს მრავალი განსხვავებული გამონაკლისი, თითოეული დაკავშირებულია კონკრეტულ ტიპის პრობლემასთან. როდესაც გამონაკლისი ხდება, კოდის შესრულება ჩერდება იმ განცხადებაზე, რომელმაც გამონაკლისი გამოავლინა და კონტროლი გადადის ბლოკის იმ ნაწილზე, რომელიც ამუშავებს გამონაკლისს. თუ ბლოკი არ შეიცავს შესრულებად განყოფილებას, PL/SQL ცდილობს მოიძიოს შესრულებადი განყოფილება მათ შორის ბაზის ერთეული (ძირითადი ბლოკის დამაგრება), ე.ი. ბლოკში, რომელიც გარე კოდია, რომელმაც გამონაკლისი ჩააგდო. თუ არ არის ამ გამონაკლისის დამმუშავებელი უშუალო მიმაგრებულ ბლოკში, მაშინ ძიება გრძელდება შემდეგი დონის ბლოკებში, სანამ არ მოიძებნება შესაფერისი დამმუშავებელი, ხოლო თუ ის ვერ მოიძებნა, მაშინ პროგრამის შესრულება ჩერდება დაუმუშავებელი შეცდომის შეტყობინებით.

ბლოკის გამონაკლისის დამუშავების ნაწილი იდეალური ადგილია ინფორმაციული შეცდომის შეტყობინებების გასაცემად და შესასრულებლად გაწმენდა (გასუფთავება), რომელიც საშუალებას გაძლევთ თავიდან აიცილოთ ყველაფერი, რამაც შეიძლება გამოიწვიოს დაბნეულობა ან პრობლემები მომავალში. თუ გამონაკლისი იქნა დაშვებული პროცედურის შესრულებისას, რომელიც ჩასმულია მწკრივი ცხრილში, მაშინ ტიპიური გასუფთავების პროცედურა შეიძლება შეიცავდეს ROLLBACK განცხადებას.

როდესაც კონტროლი გადაეცემა გამონაკლისის დამმუშავებელს, ის აღარ ბრუნდება გამონაკლისის გამომწვევ განცხადებაში. ამის ნაცვლად, კონტროლი გადაეცემა თანდართულ საბაზისო ბლოკის განცხადებას ჩადგმული ბლოკის ან პროცედურის/ფუნქციის გამოძახებისთანავე.

სისტემის გამონაკლისები

თქვენ უკვე იცნობთ PL/SQL-ში წინასწარ განსაზღვრულ ZERO_DIVIDE გამონაკლისს. არსებობს საკმაოდ ბევრი სხვა სისტემური გამონაკლისი, რომლებიც აღიარებულია და იდება PL/SQL ან Oracle-ის მიერ. ცხრილი 1 გთავაზობთ სისტემის გამონაკლისების უფრო სრულ ჩამონათვალს.

PL/SQL-ში შეგიძლიათ შეცდომის შესახებ ინფორმაცია მიაწოდოთ მომხმარებლებს ორი გზით. პირველი გზა არის SQLCODE ბრძანების გამოყენება, რომელიც აბრუნებს შეცდომის კოდს. ეს კოდი არის უარყოფითი რიცხვი, რომელიც ჩვეულებრივ უდრის ORA შეცდომის რაოდენობას, რომელიც იბეჭდება განაცხადის შეწყვეტისას, თუ გამონაკლისი არ არის დამუშავებული. მეორე გზა არის შეცდომის აღწერის ტექსტური შეტყობინების დაბრუნება. გასაკვირი არ არის, რომ შესაბამის ბრძანებას ეწოდება SQLERRM. ორივე SQLCODE და SQLERRM შეიძლება გამოყენებულ იქნას გამონაკლისის დამმუშავებელში. შენიშვნა: სისტემის ყველა გამონაკლისს არ აქვს სახელები.

მაგიდა1 . სისტემის გამონაკლისები

სისტემის გამონაკლისი,შეცდომის კოდი

აგზნების მიზეზი

კურსორი_ უკვე_ გახსენით

ORA-06511

უკვე ღია კურსორის გახსნის მცდელობა

DUP_VAL_ON_INDEX

ORA-00001

დუბლიკატი მნიშვნელობის ჩასმის მცდელობა სვეტში, რომელსაც აქვს უნიკალური ინდექსი და, შესაბამისად, უნიკალური შეზღუდვა

არასწორი_ კურსორი

ORA-01001

გაუხსნელი კურსორის მოპოვების მცდელობა ან კურსორის დახურვის მცდელობა, რომელიც არ არის გახსნილი

ᲛᲝᲜᲐᲪᲔᲛᲘ ᲕᲔᲠ ᲛᲝᲘᲫᲔᲑᲜᲐ

ORA-01403

SELECT INTO-ს მცდელობა, როდესაც SELECT დააბრუნებს ნულოვან მწკრივებს (და სხვა მიზეზები, რომლებიც სცილდება ამ წიგნის ფარგლებს)

პროგრამა_ შეცდომა

ORA-06501

შიდა შეცდომა. ჩვეულებრივ ნიშნავს, რომ თქვენ უნდა დაუკავშირდეთ Oracle-ის მხარდაჭერას

შენახვა_ შეცდომა

ORA-06500

პროგრამას არ აქვს საკმარისი სისტემური მეხსიერება

TIMEOUT_ON_RESOURCE

ORA-00051

პროგრამა ძალიან დიდხანს ელოდა გარკვეული რესურსის ხელმისაწვდომობას

TOO_MANY_ROWS

ORA-01422

SELECT INTO PL/SQL-ში დააბრუნა ერთზე მეტი მწკრივი

VALUE_ შეცდომა

ORA-06502

PL/SOL-მა წააწყდა მონაცემთა არასწორი კონვერტაციას ან შეკვეცას, ან მონაცემთა არასწორი შეზღუდვას

ᲜᲣᲚᲘ_ გაყოფა

ORA-01476

ნულზე გაყოფის მცდელობა

ყველა სხვა გამონაკლისი და შიდა შეცდომა, რომელიც არ არის დაფარული საბაზისო ბლოკში განსაზღვრული გამონაკლისებით. გამოიყენება მაშინ, როდესაც არ იცით ზუსტად რომელი დასახელებული გამონაკლისის დამუშავება გსურთ და გსურთ გამონაკლისების დამუშავება

ახლა მოდით დავუბრუნდეთ ამ თავის პირველ მაგალითს და გამოვიყენოთ მასში SQLCODE და SQLERRM. ქვემოთ მოცემულია მაგალითის საწყისი კოდი და მისი გაშვების შედეგები (ნახ. 1).

Num_a NUMBER:= 6;

Num_b NUMBER;

Num_b:= 0;

Num_a:= Num_a / Num_b;

Num_b:= 7;

dbms_output.put_line("Num_b-ის მნიშვნელობა"|| Num_b);

გამონაკლისი

WHEN ZERO_DIVIDE მაშინ

err_num NUMBER:= SQLCODE;

err_msg VARCHAR2(512) := SQLERRM;

dbms_output.put_line("ORA შეცდომის ნომერი" || err_num);

dbms_output.put_line("ORA შეცდომის შეტყობინება" || err_msg);

dbms_output.put_line("Num_a-ს მნიშვნელობა" || Num_a);

dbms_output.put_line("Num_b მნიშვნელობა" || Num_b);

SQL> ჩართულია სერვერის გამომავალი

SQL> დეკლარირება

2 num_a NUMBER:= 6;

3 num_b NUMBER;

4 იწყება

5 num_b:= 0;

6 num_a:= num_a / num_b;

7 num_b:= 7;

8 dbms_output. put_line(" num_b-ის მნიშვნელობა "|| ​​num_b);

9 გამონაკლისი

10 WHEN ZERO_DIVIDE

11 მაშინ

13 err_num NUMBER:= SQLCODE;

14 err_msg VARCHAR2(512) := SQLERRM;

15 დასაწყისი

16 dbms_output.put_line("ORA შეცდომის ნომერი"|| err_num);

17 dbms_output.put_line("ORA შეცდომის შეტყობინება" || err_msg);

18 dbms_output.put_line("მნიშვნელობა num_a" || num_a);

19 dbms_output.put_line("მნიშვნელობა num_b" || num_b);

20END;

21 ბოლოს;

ORA შეცდომის ნომერი -1476

ORA შეცდომის შეტყობინება ORA-01476: გამყოფი ტოლია ნულის

num_a 6-ის მნიშვნელობა

num_b 0-ის მნიშვნელობა

PL/SQL პროცედურა წარმატებით დასრულდა.

ბრინჯი. ერთი. SQLCODE-ისა და SQLERRM-ის გამოყენება სისტემის გამონაკლისების დამუშავებისას

Oracle-ის მონაცემთა ბაზის ადმინისტრატორები და პროგრამისტები ზოგჯერ აწყდებიან თავიანთ საქმიანობაში, რომ მონაცემთა ბაზა იწყებს „გინებას“ და ხშირად ისეთ ენაზე, რომელიც ბოლომდე არ არის გასაგები. ამ სტატიაში განვიხილავთ Oracle Errors ენას და გამაფრთხილებელ შეტყობინებებს. ყველა შეცდომა დაჯგუფებულია დიდ განყოფილებებად და ქვესექციად, რათა დაეხმაროს მომხმარებლებს სწრაფად ნავიგაციაში, რა ხდება და მიიღონ ზომები სიტუაციის გამოსასწორებლად. ამ სტატიაში განვიხილავთ ჯგუფებს Oracle-ის პირველი ათასი შეცდომა(დიაპაზონების მიხედვით კოდები 0-დან 999-მდე), ასევე განმარტეთ მათი გარეგნობის მიზეზები მათი გამოსწორების მოქმედებების წინადადებით. შეცდომის ფორმატია "ORA-xxxxx". დასაწყისში მოდის პრეფიქსი "ORA", შემდეგ კი ტირეზე ხუთნიშნა შეცდომის კოდი.

Oracle-ის შეცდომის ჯგუფები

შეცდომის შეტყობინებები ORA-00000 - ORA-00099

ORA-00000 შეტყობინებები ნორმალურია, წარმატებით დასრულდა, ანუ არ არის შეცდომა.

მეთოდოლოგიური ბირთვის წვდომის შეცდომები 0001-0049

  • ORA-00001: დუბლიკატი გასაღები ინდექსში
  • ORA-00017: ზარების მაქსიმალური რაოდენობა გადაჭარბებულია
  • ORA-00018: სესიების მაქსიმალური რაოდენობა გადაჭარბებულია
  • ORA-00019: სესიების რაოდენობამ გადააჭარბა ლიცენზიების რაოდენობას
  • ORA-00020: პროცესების მაქსიმალური რაოდენობა (რაოდენობა) გადააჭარბა
  • ORA-00021 სესია გამოიყენება სხვა პროცესით. არ გადართოთ სესია
  • ORA-00022: არასწორი სესიის ID. წვდომა აკრძალულია
  • ORA-00023: სესია შეიცავს პირადი მეხსიერების მითითებებს. სესიის გათიშვა შეუძლებელია
  • ORA-00024: ერთზე მეტ პროცესთან დაკავშირება აკრძალულია ერთი მომხმარებლის რეჟიმში
  • ORA-00025: ვერ განთავსდება [სტრიქონი]
  • ORA-00026: გამოტოვებული ან არასწორი სესიის ID
  • ORA-00027: მიმდინარე სესიის განადგურება შეუძლებელია
  • ORA-00028: თქვენი სესია განადგურებულია
  • ORA-00029: სესია არ არის მომხმარებლის სესია
  • ORA-00030: მომხმარებლის სესია მითითებული ID-ით არ არსებობს
  • ORA-00031: სესია მონიშნულია განადგურებისთვის
  • ORA-00032: სესიის გადატანის არასწორი პაროლი
  • ORA-00033: მიმდინარე სესია ცარიელი გადაადგილების პაროლით
  • ORA-00034: PL/SQL მიმდინარე სესიაზე COMIT ან უკან დაბრუნება შეუძლებელია
  • ORA-00035: LICENSE_MAX_USERS მნიშვნელობა არ შეიძლება იყოს მომხმარებელთა ამჟამინდელ რაოდენობაზე ნაკლები
  • ORA-00036: მიღწეულია SQL რეკურსიის დონეების (მნიშვნელობის) მაქსიმალური რაოდენობა
  • ORA-00037: სესიის სხვა სერვერის ჯგუფზე გადართვა შეუძლებელია
  • ORA-00038: სესიის შექმნა შეუძლებელია. სერვერის ჯგუფი სხვა მომხმარებლის საკუთრებაა

ENQ შეცდომები 0050-0080

  • ORA-00050: ოპერაციული სისტემის შეცდომა რიგის მიღებისას
  • ORA-00051: რესურსის დრო ამოიწურა
  • ORA-00052: დაბრუნებული რესურსების მაქსიმალური რაოდენობა გადაჭარბებულია
  • ORA-00053: რიგების მაქსიმალური რაოდენობა გადაჭარბებულია
  • ORA-00054: რესურსი დაკავებულია NOWAIT მაჩვენებელზე წვდომით
  • ORA-00055: გადაჭარბებულია DML დაბლოკვის მაქსიმალური რაოდენობა
  • ORA-00056: DDL საკეტი მოთავსებულია ჩაკეტილ ობიექტზე
  • ORA-00057: დროებითი მაგიდის საკეტების მაქსიმალური რაოდენობა გადაჭარბებულია
  • ORA-00058: DB_BLOCK_SIZE უნდა იყოს მონაცემთა ბაზის ტოლი, რომელიც დამონტაჟებულია
  • ORA-00059: DB_FILES პარამეტრის მნიშვნელობა გადაჭარბებულია
  • ORA-00060: ჩიხი მოხდა რესურსის მოლოდინში
  • ORA-00061: სხვადასხვა ინსტანციას აქვს სხვადასხვა DML_LOCK პარამეტრები
  • ORA-00062: DML ჩაკეტვა მთელ მაგიდაზე შეუძლებელია. DML_LOCKS პარამეტრი ნულოვანია
  • ORA-00063: LOG_FILES პარამეტრის მნიშვნელობა გადაჭარბებულია
  • ORA-00064: ობიექტის განთავსება შეუძლებელია, ის ძალიან დიდია ოპერაციული სისტემისთვის
  • ORA-00065: შეცდომა პარამეტრის ინიციალიზაცია FIXED_DATE
  • ORA-00066: LOG_FILES მნიშვნელობები არ ემთხვევა
  • ORA-00067: სტრიქონის პარამეტრის არასწორი მნიშვნელობა, უნდა იყოს სტრიქონი
  • ORA-00068: სტრიქონის პარამეტრის არასწორი მნიშვნელობა, უნდა იყოს სტრიქონი
  • ORA-00069: მაგიდის ჩაკეტვა შეუძლებელია - დაბლოკვა უარყოფილია [სტრიქონს]
  • ORA-00070: ბრძანება [string] არასწორია
  • ORA-00071: პროცესების რაოდენობა უნდა იყოს 1-ზე მეტი:
  • ORA-00072: მითითებული პროცესი არ არის აქტიური
  • ORA-00073: ბრძანებისთვის მითითებული არგუმენტების არასწორი რაოდენობა
  • ORA-00074: პროცესი არ არის განსაზღვრული
  • ORA-00075: პროცესი [სტრიქონი] არ მოიძებნა მიმდინარე ინსტანციაში
  • ORA-00076: ნაგავსაყრელი [სტრიქონი] არ მოიძებნა
  • ORA-00077: მითითებული ნაგავსაყრელი არასწორია
  • ORA-00078: შეუძლებელია ნაგავსაყრელის ამოხსნა სახელით
  • ORA-00079: ცვლადი [მნიშვნელობა] ვერ მოიძებნა
  • ORA-00080: განხორციელდა მცდელობა მეხსიერების არასწორი უბნის გადაყრა
  • ORA-00081: მითითებული დიაპაზონი არასწორია
  • ORA-00082: მეხსიერების დიაპაზონი არ არის მითითებულ დიაპაზონში
  • ORA-00083: SGA შესაძლოა დაზიანებულია
  • ORA-00084: გლობალური არეალი უნდა იყოს PGA, SGA ან UGA
  • ORA-00085: მიმდინარე ზარი არ არსებობს
  • ORA-00086: მომხმარებლის ზარი არ არსებობს
  • ORA-00087: ბრძანება არ შეიძლება შესრულდეს დისტანციურ ინსტანციაზე
  • ORA-00088: ბრძანება არ შეიძლება შესრულდეს საერთო სერვერის მიერ
  • ORA-00089: არასწორი ინსტანციის ნომერი ORADEBUG ბრძანებაში
  • ORA-00090: ORADEBUG ბრძანებამ ვერ შეძლო მეხსიერების სწორად განაწილება კლასტერულ მონაცემთა ბაზაში
  • ORA-00091: LARGE_POOL_SIZE უნდა იყოს მითითებული
  • ORA-00092: LARGE_POOL_SIZE უნდა იყოს LARGE_POOL_MIN_ALLOC-ზე მეტი
  • ORA-00093: %s არასწორად არის მითითებული
  • ORA-00094: %s უნდა შეიცავდეს მთელ რიცხვს
  • ORA-00096: არასწორი მნიშვნელობა [მნიშვნელობა] პარამეტრისთვის [მნიშვნელობა], უნდა იყოს დიაპაზონში
  • ORA-00097: Oracle SQL ფუნქციები არ არის მხარდაჭერილი SQL92-ით:
  • ORA-00099: რესურსის დრო ამოიწურა. პოტენციური PDML ჩიხი

რეგიონისა და სეგმენტის შეცდომები ORA-00100 - ORA-00299

  • ORA-00100: მონაცემები არ მოიძებნა
  • ORA-00101: სისტემის პარამეტრის DISPATCHERS არასწორი სპეციფიკაცია
  • ORA-00102: მითითებული ქსელის პროტოკოლი ვერ გამოიყენებს დისპეტჩერებს
  • ORA-00103: არასწორი ქსელის პროტოკოლი, დაცულია დისპეტჩერებისთვის გამოსაყენებლად
  • ORA-00104: აღმოჩენილია ჩიხი, ყველა ხელმისაწვდომი სერვერი დაბლოკილია, ელოდება რესურსს
  • ORA-00105: ძალიან ბევრი დისპეჩერის კონფიგურაცია
  • ORA-00106: მონაცემთა ბაზის გაშვება ან შეჩერება შეუძლებელია დისპეჩერთან დაკავშირებისას
  • ORA-00107: ORACLE მსმენელ პროცესთან დაკავშირება შეუძლებელია
  • ORA-00108: დისპეჩერის კონფიგურაცია შეუძლებელია ასინქრონული კავშირების მისაღებად
  • ORA-00111: არასწორი ატრიბუტი [სტრიქონი]
  • ORA-00112: ატრიბუტის მნიშვნელობა არის null
  • ORA-00113: პროტოკოლის სახელი [სტრიქონი] ძალიან გრძელია
  • ORA-00114: არასწორი მნიშვნელობა სისტემის პარამეტრისთვის SERVICE_NAMES
  • ORA-00115: კავშირი შეწყვეტილია, კავშირის ცხრილი სავსეა
  • ORA-00116: SERVICE_NAMES მნიშვნელობა არასწორია
  • ORA-00117: უნდა იყოს მითითებული PROTOCOL, ADDRESS ან DESCRIPTION
  • ORA-00118: მხოლოდ ერთი PROTOCOL, ADDRESS ან DESCRIPTION მნიშვნელობის მითითება შეიძლება
  • ORA-00119: სისტემის პარამეტრის არასწორი მნიშვნელობა
  • ORA-00120: დისპეჩერი დაუშვებელია ან არ არის დაინსტალირებული
  • ORA-00121: SHARED_SERVERS განსაზღვრულია DISPATCHERS ოფციის გარეშე
  • ORA-00122: ქსელის კონფიგურაციის ინიციალიზაცია შეუძლებელია
  • ORA-00123: უმოქმედო საზიარო სერვერი
  • ORA-00124: DISPATCHERS მითითებულია MAX_SHARED_SERVERS-ის გარეშე
  • ORA-00125: კავშირის გადატვირთვა; მცდარი წარმოდგენა
  • ORA-00126: კავშირის გადატვირთვა; წინააღმდეგობა
  • ORA-00127: დისპეჩერი არ არსებობს
  • ORA-00128: ბრძანება მოითხოვს დისპეჩერის სახელს
  • ORA-00129: მოსმენის მისამართი არასწორია
  • ORA-00130: მოსმენის მისამართი არასწორია
  • ORA-00131: ქსელის პროტოკოლი არ უჭერს მხარს მითითებულ რეგისტრაციას
  • ORA-00132: სინტაქსის შეცდომა ან არასწორი ქსელის სახელი
  • ORA-00150: დუბლიკატი ტრანზაქციის ID
  • ORA-00151: დუბლიკატი ტრანზაქციის ID
  • ORA-00152: მიმდინარე სესია არ ემთხვევა მოთხოვნილ სესიას
  • ORA-00153: შეცდომა XA ბიბლიოთეკაში
  • ORA-00154: პროტოკოლის შეცდომა ტრანზაქციის მონიტორში
  • ORA-00155: არ შეუძლია სამუშაოს შესრულება გლობალური ტრანზაქციის გარეთ
  • ORA-00160: გლობალური ტრანზაქციის სახელი აღემატება მაქსიმალურ სიგრძეს
  • ORA-00161: ტრანზაქციის ხანგრძლივობა არასწორია
  • ORA-00162: გარე მონაცემთა ბაზის ID აღემატება მაქსიმალურ მნიშვნელობას
  • ORA-00163: გარე მონაცემთა ბაზის სახელი აღემატება მაქსიმალურ მნიშვნელობას
  • ORA-00164: განაწილებული ავტონომიური ტრანზაქციები დაუშვებელია პორტატული განაწილებული ტრანზაქციების თავზე
  • ORA-00165: დაუშვებელია ოფლაინ პორტატული განაწილებული ტრანზაქციები დისტანციური ოპერაციებით
  • ORA-00200: საკონტროლო ფაილი ვერ შეიქმნა
  • ORA-00201: საკონტროლო ფაილის ვერსია [string] შეუთავსებელია ORACLE ვერსიასთან [string]
  • ORA-00202: საკონტროლო ფაილი: [string]
  • ORA-00203: გამოყენებულია არასწორი საკონტროლო ფაილი
  • ORA-00204: შეცდომა მონაცემთა ბლოკის წაკითხვისას (ბლოკი [სტრიქონი], ბლოკები [სტრიქონი]) საკონტროლო ფაილში
  • ORA-00205: საკონტროლო ფაილის იდენტიფიკაცია ვერ მოხერხდა. დამატებითი ინფორმაციისთვის იხილეთ ჟურნალი
  • ORA-00206: ფაილის საკონტროლო ჩაწერის შეცდომა (დაბლოკვა [სტრიქონი], ბლოკები [სტრიქონი])
  • ORA-00207: საკონტროლო ფაილი არ არის ამ მონაცემთა ბაზიდან
  • ORA-00208: საკონტროლო ფაილების რაოდენობა აღემატება დაშვებულ მნიშვნელობას [სტრიქონი]
  • ORA-00209: საკონტროლო ფაილის მონაცემთა ბლოკი არ ემთხვეოდა. დამატებითი ინფორმაციისთვის იხილეთ ჟურნალი
  • ORA-00210: მითითებული საკონტროლო ფაილის გახსნა შეუძლებელია
  • ORA-00211: საკონტროლო ფაილი არ ემთხვევა წინა
  • ORA-00212: ბლოკის ზომა [სტრიქონი] საჭირო მინიმუმზე ნაკლები [სტრიქონი]
  • ORA-00213: ვერ გამოიყენებს საკონტროლო ფაილს, საჭიროა ფაილის ზომა %1: %2:
  • ORA-00214: საკონტროლო ფაილის ვერსია შეუთავსებელია ფაილის ვერსიასთან
  • ORA-00215: უნდა არსებობდეს მინიმუმ ერთი საკონტროლო ფაილი
  • ORA-00216: საკონტროლო ფაილის ზომა არ შეიძლება შეიცვალოს 8.0.2-დან პორტირებისთვის:
  • ORA-00217: საკონტროლო ფაილის ზომა არ შეიძლება შეიცვალოს 9.0.1-დან გადასასვლელად:
  • ORA-00218: საკონტროლო ფაილების მონაცემთა ბლოკის ზომა არ ემთხვევა DB_BLOCK_SIZE-ის მიერ მითითებულ ზომას
  • ORA-00219: საკონტროლო ფაილის ზომა აღემატება დადგენილ ზომას
  • ORA-00220: საკონტროლო ფაილი ვერ ჩაერთო, იხილეთ alert-log დამატებითი დეტალებისთვის
  • ORA-00221: საკონტროლო ფაილში ჩაწერის შეცდომა
  • ORA-00222: ოპერაცია ცდილობს გამოიყენოს უკვე დამონტაჟებული საკონტროლო ფაილის სახელი
  • ORA-00223: კონვერტირებადი ფაილი არასწორია ან აქვს არასწორი ვერსია
  • ORA-00224: ჩანაწერის არასწორი ტიპის საკონტროლო ფაილის ზომის შეცვლა ვერ მოხერხდა
  • ORA-00225: საკონტროლო ფაილის მოსალოდნელი ზომა [string] განსხვავდება რეალური ზომისგან [string]
  • ORA-00226: ოპერაცია შეუძლებელია, სანამ ალტერნატიული საკონტროლო ფაილი ღიაა
  • ORA-00227: დაზიანებული მონაცემთა ბლოკი ნაპოვნია საკონტროლო ფაილში (ბლოკი [string] ბლოკები [string]).
  • ORA-00228: ალტერნატიული საკონტროლო ფაილის სახელის სიგრძე აღემატება დაშვებულ მნიშვნელობას [სტრიქონი]
  • ORA-00229 ოპერაცია უარყოფილია. Snapshot ფაილი უკვე რიგშია და დამუშავების პროცესშია.
  • ORA-00230 ოპერაცია უარყოფილია. საკონტროლო ფაილის სნეპშოტის რიგი მიუწვდომელია
  • ORA-00231: საკონტროლო ფაილის სნეპშოტი დასახელებული არ არის
  • ORA-00232: საკონტროლო ფაილის სნეპშოტი არ არსებობს, დაზიანებულია ან წაუკითხავი
  • ORA-00233: საკონტროლო ფაილის ასლი დაზიანებულია ან წაუკითხავი
  • ORA-00234: შეცდომა სნეპშოტის იდენტიფიკაციის ან გახსნისას ან საკონტროლო ფაილის კოპირებისას
  • ORA-00235: საკონტროლო ფაილი დაბლოკილია პარალელური მოდიფიკაციისთვის
  • ORA-00236: სნეპშოტი გაუქმებულია, არჩეულია სარეზერვო საკონტროლო ფაილი
  • ORA-00237: სნეპშოტის ოპერაცია დაუშვებელია. შეიქმნა ახალი საკონტროლო ფაილი
  • ORA-00238: ოპერაცია ცდილობს გამოიყენოს ფაილის სახელი, როგორც მონაცემთა ბაზის სახელი
  • ORA-00250: არქივი არ მუშაობს
  • ORA-00251: LOG_ARCHIVE_DUPLEX_DEST არ შეიძლება იყოს იგივე დირექტორია, რაც %1:
  • ORA-00252: ჟურნალი ცარიელია. დაარქივება შეუძლებელია
  • ORA-00253: მითითებული სტრიქონის სიგრძე აჭარბებს ლიმიტს
  • ORA-00254: შეცდომა არქივის მართვის ხაზში
  • ORA-00255: შეცდომა ჟურნალის ფაილის დაარქივებისას
  • ORA-00256: არქივის სტრიქონის გაანალიზებისას მოხდა შეცდომა
  • ORA-00257: არქივის შეცდომა. მე ვერ ვუკავშირდები სანამ რესურსი დაკავებულია
  • ORA-00258: NOARCHIVELOG ჟურნალში ხელით დაარქივება უნდა იყოს მითითებული
  • ORA-00259: ღია ინსტანციის ჟურნალი მიმდინარე ჟურნალია და მისი დაარქივება შეუძლებელია
  • ORA-00260: ვერ ვიპოვე აქტიური რიგის ჟურნალი [string] ძაფისთვის [string]
  • ORA-00261: ჟურნალი შეცვლილია ან დაარქივებულია
  • ORA-00262: მიმდინარე ჟურნალი [სტრიქონი] დაკავებულია სხვა ძაფით [სტრიქონი], არ შეიძლება გადართვა
  • ORA-00263: არქივის ჟურნალი ძაფისთვის [სტრიქონი]
  • ORA-00264: აღდგენა არ არის საჭირო
  • ORA-00265: საჭიროა ინსტანციის აღდგენა, მაგრამ ARCHIVELOG რეჟიმის დაყენება შესაძლებელია
  • ORA-00266: საჭიროა არქივის ჟურნალის სახელი
  • ORA-00267: არქივის ჟურნალის სახელი არ არის საჭირო
  • ORA-00268: მითითებული ჟურნალის ფაილი არ არსებობს
  • ORA-00269: მითითებული ჟურნალის ფაილი არის ნაკადის [string] ნაწილი და არა [string]
  • ORA-00270: შეცდომა არქივის ჟურნალის შექმნისას [სტრიქონი]
  • ORA-00271: არქივის ჟურნალები არ არის
  • ORA-00272: არქივის ჟურნალში ჩაწერის შეცდომა [სტრიქონი]
  • ORA-00273: პირდაპირ ჩატვირთული მონაცემების აღდგენა ჟურნალის გარეშე
  • ORA-00274: მითითებულია აღდგენის პარამეტრის არასწორი მნიშვნელობა [მნიშვნელობა]
  • ORA-00275: აღდგენის პროცედურა უკვე დაწყებულია
  • ORA-00276: მითითებულია CHANGE საკვანძო სიტყვა, მაგრამ არ არის მითითებული ცვლილების ნომერი
  • ORA-00277: აღდგენის არასწორი ვარიანტი, სანამ დროშა [სტრიქონი]
  • ORA-00278: ჟურნალის ფაილი [string] აღარ არის საჭირო აღდგენისთვის
  • ORA-00279: საჭიროა ჟურნალის ფაილის სახელი
  • ORA-00280: საჭირო ნაკადის და მიმდევრობის სახელი
  • ORA-00281: აღდგენა შეუძლებელია დისპეჩერის გამოყენებით
  • ORA-00282: UPI ზარი არ არის მხარდაჭერილი, გამოიყენეთ ALTER DATABASE RECOVER
  • ORA-00283: სესიის აღდგენა გაუქმდა შეცდომების გამო
  • ORA-00284: აღდგენის სესია მიმდინარეობს
  • ORA-00285: არასწორი TIME მნიშვნელობა
  • ORA-00286: არ არის ხელმისაწვდომი ფაილები ან მოქმედი მონაცემთა ფაილები
  • ORA-00287: მითითებული ცვლილების ნომერი [string] ვერ მოიძებნა ნაკადში [string]
  • ORA-00288: გამოიყენეთ ALTER DATABASE RECOVER CONTINUE აღდგენის გასაგრძელებლად
  • ORA-00289: ცვლადი [მნიშვნელობა]
  • ORA-00290: ოპერაციული სისტემის შეცდომა. იხილეთ შეცდომის შეტყობინება ქვემოთ
  • ORA-00291: PARALLEL მოითხოვს ციფრულ მნიშვნელობას
  • ORA-00292: პარალელური აღდგენის კომპონენტი არ არის დაინსტალირებული
  • ORA-00293: საკონტროლო ფაილი არ არის სინქრონიზებული ხელახალი ჟურნალთან
  • ORA-00294: არქივის ჟურნალისთვის მითითებული არასწორი ფორმატი [სტრიქონი]
  • ORA-00295: არასწორი მონაცემთა/ტემპის მონაცემთა ფაილის ნომერი [string], უნდა იყოს 1: და [string] შორის.
  • ORA-00296: RECOVER DATAFILE LIST მნიშვნელობა გადაჭარბებულია
  • ORA-00297: საჭიროა RECOVER DATAFILE LIST-ის მითითება RECOVER DATAFILE START-მდე
  • ORA-00298: ატრიბუტის მნიშვნელობა აკლია ან არასწორია
  • ORA-00299: ფაილის დონის აღდგენა მონაცემთა ფაილის %1

მონაცემთა ბაზის I/O მართვის შეცდომები ORA-00300 - ORA-00399

შეცდომები Oracle-ის მონაცემთა ბაზაში შესვლისა და გასვლის მართვისას:

  • ORA-00300: ჟურნალის გადაკეთების არასწორი ზომა, მითითებული ზომა [string] აღემატება ზომის ლიმიტს [string]
  • ORA-00301: შეცდომა ჟურნალის ფაილის დამატებისას [string] - ფაილი ვერ შეიქმნა
  • ORA-00302: გადაჭარბებული ფაილების რაოდენობის ლიმიტი
  • ORA-00303: შეუძლებელია პარალელური გადაკეთების შესრულება
  • ORA-00304: მოთხოვნილი INSTANCE_NUMBER დაკავებულია
  • ORA-00305: ძაფის ჟურნალი [სტრიქონი] არათანმიმდევრულია და ეკუთვნის სხვა მონაცემთა ბაზას
  • ORA-00306: მიღწეულია მაგალითის ლიმიტი [სტრიქონი]
  • ORA-00307: მოითხოვა INSTANCE_NUMBER დიაპაზონის გარეთ, მაქსიმუმ [სტრიქონი]
  • ORA-00308: ვერ იხსნება არქივის ჟურნალი [სტრიქონი]
  • ORA-00309: ჟურნალი ეკუთვნის სხვა მონაცემთა ბაზას
  • ORA-00310: დაარქივებული ჟურნალი შეიცავს მიმდევრობას [სტრიქონს]; საჭირო თანმიმდევრობა [მნიშვნელობა]
  • ORA-00311: არქივის ჟურნალის სათაურის წაკითხვა შეუძლებელია
  • ORA-00312: ხელმისაწვდომი ჟურნალი [სტრიქონი] ძაფი [სტრიქონი]
  • ORA-00313: შეცდომა ჟურნალის ჯგუფის ფაილის გახსნისას [string] ნაკადი [string]
  • ORA-00314: ჟურნალი [სტრიქონი], მოსალოდნელი თანმიმდევრობა [სტრიქონი] არ ემთხვევა [სტრიქონს]
  • ORA-00315: ჟურნალი [string] ნაკადი [string], არასწორი მნიშვნელობა [string] სათაურში
  • ORA-00316: log [string], მნიშვნელობა [string] სათაურში მიუთითებს, რომ ეს არ არის ჟურნალის ფაილი
  • ORA-00317: მითითებული ფაილი [string] არ არის ჟურნალის ფაილი
  • ORA-00318: ჟურნალი [სტრიქონი] გადააჭარბა დაშვებულ ზომას [სტრიქონი] არ ემთხვევა [სტრიქონს]
  • ORA-00319: ჟურნალს [სტრიქონს] აქვს არასწორი ჩამოსხმის სტატუსი
  • ORA-00320: ვერ წაიკითხავს ფაილის სათაური [სტრიქონი] ნაკადის [სტრიქონი]
  • ORA-00321: შეუძლებელია მონაცემების განახლება ჟურნალის ფაილის სათაურში [string] ნაკადი [string]
  • ORA-00322: ძაფის ჟურნალი [სტრიქონი] არ არის მიმდინარე ასლი
  • ORA-00323: მიმდინარე ნაკადის ჟურნალი [სტრიქონი] არ არის გამოსაყენებელი და ყველა დანარჩენი უნდა იყოს დაარქივებული
  • ORA-00324: ჟურნალის ფაილის სახელი [string] ითარგმნა [string] ძალიან გრძელი, ლიმიტი გადააჭარბა [string]
  • ORA-00325: ნაკადის არქივის ჟურნალი [string] შეიცავს სათაურის არასწორ მნიშვნელობას [string]
  • ORA-00326: ჟურნალი იწყება [string]-ით, საჭიროა ადრე შეცვლილი [string]
  • ORA-00327: ნაკადის [სტრიქონის] ჟურნალს აქვს ფიზიკური ზომა [სტრიქონი] საჭიროზე ნაკლები [სტრიქონი]
  • ORA-00328: დაარქივებული ჟურნალი მთავრდება [string]-ით, მოგვიანებით ცვლილებაა საჭირო [string]
  • ORA-00329: დაარქივებული ჟურნალი იწყება [string]-ით, საჭიროა შეცვალოს [string]
  • ORA-00330: არქივის ჟურნალი მთავრდება [string]-ით, საჭიროა ცვლილება [string]
  • ORA-00331: ჟურნალის ვერსია [string] არ არის თავსებადი ORACLE ვერსიასთან [string]
  • ORA-00332: საარქივო ჟურნალი ძალიან მცირეა, შესაძლოა ბოლომდე არ არის დაარქივებული
  • ORA-00333: ხელახალი ჟურნალის წაკითხული [სტრიქონი] ცუდი ბლოკები ხელმისაწვდომი [სტრიქონიდან]
  • ORA-00334: არქივის ჟურნალი [სტრიქონი]
  • ORA-00335: ჟურნალი ხელმისაწვდომია [სტრიქონი]: ამ ნომრით ჟურნალი არ არის, ჟურნალი არ არსებობს
  • ORA-00336: ჟურნალის ფაილის ბლოკის ზომა ნაკლებია ბლოკის მინიმალურ ზომაზე [სტრიქონი]
  • ORA-00337: ჟურნალის ფაილი [string] არ არსებობს და ზომა არ არის მითითებული
  • ORA-00338: ჟურნალი [სტრიქონი] აღემატება ბოლო საკონტროლო ფაილის მნიშვნელობას
  • ORA-00339: დაარქივებული ჟურნალი არ შეიცავს განმეორებით ცდებს
  • ORA-00340: I/O შეცდომა ძაფის [სტრიქონის] ჟურნალის [string] დამუშავებისას
  • ORA-00341: ჟურნალის ფაილს [string] აქვს არასწორი სათაურის ნომერი [string]
  • ORA-00342: არქივის ჟურნალი არ შეიცავს SCN ინფორმაციას [სტრიქონი]
  • ORA-00343: ძალიან ბევრი შეცდომა, ჟურნალი დახურულია
  • ORA-00344: შეუძლებელია ხელახლა ხელახლა შექმნა ხელმისაწვდომი ჟურნალი [სტრიქონი]
  • ORA-00345: შეცდომა ჩაწერისას ჟურნალის ხელახლა გადასატანად, დაბლოკვა [სტრიქონი] მთლიანი [სტრიქონი]
  • ORA-00346: ჟურნალი მონიშნულია როგორც მოძველებული (STALE)
  • ORA-00347: ძაფის [string] ჟურნალს აქვს ბლოკის ზომა [string], არ ემთხვევა, უნდა იყოს [string]
  • ORA-00348: აღდგენის დამუშავება ვერ განმეორდა, მაგალითად უნდა შეჩერდეს
  • ORA-00349: [string]-ისთვის ბლოკის ზომის მოძიება ვერ მოხერხდა
  • ORA-00350: ჟურნალის [სტრიქონი] (სტრიქონი [სტრიქონი]) ინსტანციის [სტრიქონი] საჭიროებს დაარქივებას
  • ORA-00351: არასწორი აღდგენის დრო
  • ORA-00352: ყველა ჟურნალი ნაკადიდან [სტრიქონი] უნდა იყოს დაარქივებული - დაუშვებელია
  • ORA-00353: კორუმპირებული ჟურნალის ბლოკი [სტრიქონი] შეცვლის [სტრიქონი] დროის [სტრიქონი]
  • ORA-00354: ჟურნალის ბლოკის სათაური დაზიანებულია
  • ORA-00355: შეცვალეთ რიცხვი თანმიმდევრობით
  • ORA-00356: არასწორი ცვლილების აღწერილობის სიგრძე
  • ORA-00357: ძალიან ბევრი წევრი მითითებულია ჟურნალის ფაილისთვის, მაქსიმუმ [სტრიქონი]
  • ORA-00358: მითითებულია ძალიან ბევრი წევრი, მაქსიმუმ [სტრიქონი]
  • ORA-00359: ჟურნალის ფაილების ჯგუფი [string] არ არსებობს
  • ORA-00360: არ არის ჟურნალის ფაილის წევრი: [string]
  • ORA-00361: არ შეუძლია წაშალოს ბოლო ჟურნალი [სტრიქონი] ჯგუფიდან [სტრიქონი]
  • ORA-00362: საჭირო წევრი არის მოქმედი ჟურნალის ფაილი ჯგუფში [string]
  • ORA-00363: ჟურნალი არ არის დაარქივებული
  • ORA-00364: ვერ ჩაწერს ჟურნალის ახალ სათაურში
  • ORA-00365: მითითებული ჟურნალი არასწორია
  • ORA-00366: ჟურნალის [string] ნაკადის [string], შემოწმების ჯამის შეცდომა ფაილის სათაურში
  • ORA-00367: საკონტროლო ჯამის შეცდომა ფაილის სათაურში
  • ORA-00368: შემოწმების ჯამის შეცდომა ხელახალი ჟურნალის ბლოკში
  • ORA-00369: ძაფების მიმდინარე ჟურნალი [სტრიქონი] დაზიანებულია და სხვა ჟურნალი გასუფთავებულია
  • ORA-00371: არ არის საკმარისი მეხსიერება საერთო აუზში, უნდა იყოს მინიმუმ [სტრიქონი]
  • ORA-00372: ფაილის [string] ამჯერად შეცვლა შეუძლებელია
  • ORA-00373: ღია ჟურნალის ვერსია [string] შეუთავსებელია ORACLE ვერსიასთან [string]
  • ORA-00374: პარამეტრის მნიშვნელობა db_block_size=[მნიშვნელობა] არასწორია; უნდა იყოს კომპოზიტური დიაპაზონში [მნიშვნელობა..მნიშვნელობა]
  • ORA-00375: შეუძლებელია db_block_size-ის ნაგულისხმევი მნიშვნელობის მიღება
  • ORA-00376: ფაილის [string] ამჯერად წაკითხვა შეუძლებელია
  • ORA-00377: ფაილის [string] ხშირი სარეზერვო ასლის შექმნა იწვევს ჩაწერის ოპერაციებში ჩიხს
  • ORA-00378: ბუფერული ქეში ვერ შეიქმნა, როგორც მითითებულია
  • ORA-00379: არ არის თავისუფალი ბუფერები ბუფერულ ქეშში [string] ბლოკისთვის [string]K
  • ORA-00380: ვერ მიუთითებს db_[value]k_cache_size [მნიშვნელობა]K არის ბლოკის სტანდარტული ზომა.
  • ORA-00381: ვერ გამოიყენებს ძველ და ახალ ვარიანტებს ბუფერული ქეშის ზომის დასადგენად
  • ORA-00382: %s არასწორი ბლოკის ზომა, სწორი მნიშვნელობა [str..value]
  • ORA-00383: ქეშის ნაგულისხმევი მნიშვნელობა არ შეიძლება ნულამდე შემცირდეს
  • ORA-00384: არ არის საკმარისი მეხსიერება ქეშის გასაზრდელად
  • ORA-00390: ძაფის [სტრიქონი] ჟურნალი გასუფთავებულია და არ შეიძლება იყოს მიმდინარე ჟურნალი
  • ORA-00391: ამიერიდან ყველა თემა უნდა გადავიდეს ჟურნალის ახალ ფორმატზე
  • ORA-00392: ძაფის [სტრიქონი] ჟურნალი გასუფთავდა, ოპერაცია დაუშვებელია
  • ORA-00393: ჟურნალი [string] of theth [string] საჭიროა ოფლაინ მონაცემთა აღდგენისთვის.
  • ORA-00394: ხელმისაწვდომი ჟურნალი ხელახლა გამოიყენება არქივისას
  • ORA-00395: მონაცემთა ბაზის კლონისთვის ჟურნალს უნდა დაერქვას სახელი
  • ORA-00396: შეცდომა [string] მოითხოვს უკან დაბრუნებას ერთი უღელტეხილის აღდგენისთვის
  • ORA-00397: ეგზემპლარის აღდგენა შეწყდა შეცდომით
  • ORA-00398: აღდგენა შეწყვეტილია სათანადო რეკონფიგურაციამდე
  • ORA-00399: ჟურნალის ხელახალი ცვლილებების კორუმპირებული აღწერა

მონაცემთა ბაზის ინიციალიზაციის შეცდომები ORA-00400 - ORA-00499

  • ORA-00400: არასწორი მნიშვნელობა [string] პარამეტრისთვის [string]
  • ORA-00401: პარამეტრის მნიშვნელობა [მნიშვნელობა] არ არის მხარდაჭერილი ამ ვერსიაში
  • ORA-00402: [string] ვერსიის მონაცემთა ბაზის ცვლილებები არ შეიძლება გამოყენებულ იქნას ვერსიით [string]
  • ORA-00403: [string] არ არის იგივე, რაც [string]-ის სხვა ეგზემპლარები
  • ORA-00404: კონვერტირებული ფაილი ვერ მოიძებნა: [string]
  • ORA-00405: თავსებადობის ტიპი [სტრიქონი]
  • ORA-00406: თავსებადი ვარიანტი მოითხოვს [string] ან უფრო მაღალს
  • ORA-00407: დაბრუნება ვერსია [string]. [string] ვერსია [string]. [string] დაუშვებელია.
  • ORA-00408: პარამეტრის მნიშვნელობა [string] დაყენებულია TRUE-ზე
  • ORA-00436: Oracle არ არის ლიცენზირებული. დახმარებისთვის დაუკავშირდით Oracle Corporation-ს
  • ORA-00437: Oracle-ის გაფართოებული ფუნქციები არ არის ლიცენზირებული. დახმარებისთვის დაუკავშირდით Oracle Corporation-ს
  • ORA-00438: ვარიანტი [string] არ არის დაყენებული
  • ORA-00439: არჩევითი ფუნქცია დაუშვებელია: [სტრიქონი]
  • ORA-00443: ფონური პროცესი [სტრიქონი] არ მუშაობს
  • ORA-00444: ფონური პროცესი [სტრიქონი] ვერ გაშვებისას
  • ORA-00445: ფონური პროცესი [სტრიქონი] არ დაიწყო [string] წამის გასვლის შემდეგ
  • ORA-00446: ფონური პროცესი დაიწყო მაშინ, როცა მოსალოდნელი არ იყო
  • ORA-00447: კრიტიკული შეცდომა ფონის პროცესში
  • ORA-00448: ფონური პროცესის ნორმალური შეწყვეტა
  • ORA-00449: ფონური პროცესი [სტრიქონი] მოულოდნელად შეწყდა შეცდომით [string]
  • ORA-00470: LGWR პროცესი გავიდა შეცდომით
  • ORA-00471: DBWR პროცესი გავიდა შეცდომით
  • ORA-00472: pmon პროცესი გავიდა შეცდომით
  • ORA-00473: ARCH პროცესი გავიდა შეცდომით
  • ORA-00474: smon პროცესი გავიდა შეცდომით
  • ORA-00475: TRWR პროცესი შეცდომით გავიდა
  • ORA-00476: RECO პროცესი გავიდა შეცდომით
  • ORA-00477: SNP* პროცესი შეცდომით გავიდა
  • ORA-00478: smon პროცესი გავიდა შეცდომით [სტრიქონი]
  • ORA-00480: LCK* პროცესი შეცდომით გავიდა
  • ORA-00481: LMON პროცესი გავიდა შეცდომით
  • ORA-00482: LMD* პროცესი შეცდომით გავიდა
  • ORA-00483: პროცესი არანორმალურად შეწყდა გამორთვის დროს
  • ORA-00484: LMS* პროცესი გავიდა შეცდომით
  • ORA-00485: DIAG პროცესი გავიდა შეცდომით [სტრიქონი]

შეცდომის შეტყობინებები ORA-00500 - ORA-00599

  • ORA-00568: გადაჭარბებულია დამმუშავებლის შეფერხებების მაქსიმალური რაოდენობა

კატასტროფის აღდგენის შეცდომები ORA-00600 - ORA-00699

  • ORA-00600: შეცდომის შიდა კოდი, არგუმენტები [მნიშვნელობა], [მნიშვნელობა], [მნიშვნელობა], [მნიშვნელობა], [მნიშვნელობა], [მნიშვნელობა], [მნიშვნელობა], [მნიშვნელობა]
  • ORA-00601: ქსელის დაბლოკვის კონფლიქტი
  • ORA-00602: შიდა პროგრამული გამონაკლისი
  • ORA-00603: Oracle სერვერის სესია შეწყდა კრიტიკული შეცდომით
  • ORA-00604: მოხდა შეცდომა რეკურსიულ SQL დონეზე [სტრიქონი]
  • ORA-00606: შიდა შეცდომის კოდი
  • ORA-00607: შიდა შეცდომა მონაცემთა ბლოკის შეცვლისას

ლექსიკონის შეცდომები ORA-00700 - ORA-00799

  • ORA-00701: მონაცემთა ბაზის დასაწყებად საჭირო ობიექტის შეცვლა შეუძლებელია
  • ORA-00702: ჩამტვირთავი ვერსია [string] შეუთავსებელია ვერსიასთან [string]
  • ORA-00703: მაგალითების მწკრივის ქეში ჩაკეტვის მაქსიმალური რაოდენობა გადაჭარბებულია
  • ORA-00704: ჩატვირთვის პროცესი არანორმალურად დასრულდა
  • ORA-00705: არასწორი მდგომარეობა გაშვების დროს; შეაჩერე ინსტანცია და გადატვირთე
  • ORA-00706: შეცდომა ფაილის ფორმატის შეცვლაში [სტრიქონი]

ზოგადი ORACLE შეცდომები ORA-00800 - ORA-00899

  • ORA-0800: ბუფერული ჩაწერის პროცესი არ არის აქტიური(ბუფერში ჩაწერის პროცესი არ არის აქტიური).
    მიზეზი: პრობლემა დაკავშირებულია ORACLE-ის გაშვების მცდელობასთან, რამაც გამოიწვია ბუფერში ჩაწერის პროცესის წაშლა. როგორც წესი, ეს შეტყობინება გაიცემა სისტემის შეცდომის შეტყობინებასთან ერთად, რომელიც განმარტავს მარცხის მიზეზს.
    მოქმედება: გამოიყენეთ სისტემის შეცდომის შეტყობინება (ასეთის არსებობის შემთხვევაში) შეცდომის მიზეზის გასარკვევად. თუ სისტემური შეცდომა არ არის, მიმართეთ ORACLE ინსტალაციის სახელმძღვანელოს მოთხოვნების სიისთვის. დარწმუნდით, რომ ORACLE-ის ყველა ლოგიკური სახელი სწორია, რომ არის საკმარისი თავისუფალი ადგილი დისკზე ORACLE დირექტორიაში და რომ არის საკმარისი გლობალური სექციები და გვერდები. ასევე დარწმუნდით, რომ ORACLE-ის ბიუჯეტს აქვს საჭირო პრიორიტეტი. თუ პრობლემის წყარო არ არის იდენტიფიცირებული, მიმართეთ შესაბამის საინსტალაციო პროგრამას.
  • ORA-0801: სურათის ჩაწერის შემდეგ პროცესი არ არის აქტიური
    მიზეზი: ეს ქონება არ არის მხარდაჭერილი.
    მოქმედება: გთხოვთ, მიმართოთ შესაბამის საინსტალაციო პროგრამას.
  • ORA-0802: არასწორი კონტექსტური არე
    მიზეზი
    მოქმედება
  • ORA-0805: opiodr: არათანმიმდევრული რეკურსიის დონის ნომერი
    მიზეზი:ეს არის შიდა შეცდომის შეტყობინება, რომელიც არ შეიძლება მოხდეს ნორმალური მუშაობის დროს.
    მოქმედება: გთხოვთ, მიმართოთ შესაბამის დაყენების პროგრამას პრობლემის დეტალური აღწერისთვის.
  • ORA-0806: სანამ სურათის პროცესი არ არის აქტიური
    მიზეზი
    მოქმედება
  • ORA-0807: გაწმენდის პროცესი არ არის აქტიური
    მიზეზი: პრობლემა დაკავშირებულია ORACLE-ის გაშვების მცდელობასთან, რამაც გამოიწვია წინასწარი გადახედვის პროცესის გაუქმება. ჩვეულებრივ, ეს შეტყობინება გაიცემა სისტემის შეცდომის შესახებ შეტყობინებასთან ერთად, რომელიც განმარტავს წარუმატებლობის მიზეზს.
    მოქმედება: გამოიყენეთ სისტემის შეცდომის შეტყობინება (ასეთის არსებობის შემთხვევაში) შეცდომის მიზეზის გასარკვევად. თუ სისტემური შეცდომა არ არის, იხილეთ ORACLE-ის ინსტალაციის სახელმძღვანელო თქვენი ოპერაციული სისტემისთვის, რათა დაადასტუროთ სწორი ინსტალაცია. თუ პრობლემის წყარო არ არის იდენტიფიცირებული, მიმართეთ შესაბამის საინსტალაციო პროგრამას.
  • ORA-0809: opispf: არასწორი სპეციალური ფუნქციის კოდი.
    მიზეზი:ეს არის შიდა შეცდომის შეტყობინება, რომელიც არ შეიძლება მოხდეს ნორმალური მუშაობის დროს.
    მოქმედება: გთხოვთ, მიმართოთ შესაბამის დაყენების პროგრამას პრობლემის დეტალური აღწერისთვის.
  • ORA-0810: opiomc: კონტექსტური ზონა არ არის შედგენილი თავდაპირველ მისამართებზე
    მიზეზი:ეს არის შიდა შეცდომის შეტყობინება, რომელიც არ შეიძლება მოხდეს ნორმალური მუშაობის დროს.
    მოქმედება: გთხოვთ, მიმართოთ შესაბამის დაყენების პროგრამას პრობლემის დეტალური აღწერისთვის.
  • ORA-0811: წაკითხვის პროცესი არ არის აქტიური
    მიზეზი: პრობლემა დაკავშირებულია ORACLE-ის გაშვების მცდელობასთან, რამაც გამოიწვია წინა წაკითხვის პროცესის გაუქმება. როგორც წესი, ეს შეტყობინება გაიცემა სისტემის შეცდომის შეტყობინებასთან ერთად, რომელიც განმარტავს მარცხის მიზეზს.
    მოქმედება: გამოიყენეთ სისტემის შეცდომის შეტყობინება (ასეთის არსებობის შემთხვევაში) შეცდომის მიზეზის გასარკვევად. თუ სისტემური შეცდომა არ არის, იხილეთ ORACLE-ის ინსტალაციის სახელმძღვანელო თქვენი ოპერაციული სისტემისთვის, რათა დაადასტუროთ სწორი ინსტალაცია. თუ პრობლემის წყარო არ არის იდენტიფიცირებული, მიმართეთ შესაბამის საინსტალაციო პროგრამას.
  • ORA-0813: მტკიცების წარუმატებლობა (დანართი ამოღებულია).
    მიზეზი:ეს არის შიდა შეცდომის შეტყობინება, რომელიც დაკავშირებულია ORACLE SORT-თან. ეს არ შეიძლება მოხდეს ნორმალური მუშაობის დროს.
    მოქმედება: გთხოვთ, მიმართოთ შესაბამის დაყენების პროგრამას პრობლემის დეტალური აღწერისთვის.
  • ORA-0814: ltbdrv: უკანონო დაბლოკვის რეჟიმი
    მიზეზი:ეს არის შიდა შეცდომის შეტყობინება, რომელიც არ შეიძლება მოხდეს ნორმალური მუშაობის დროს.
    მოქმედება: გთხოვთ, მიმართოთ შესაბამის დაყენების პროგრამას პრობლემის დეტალური აღწერისთვის.
  • ORA-00816: შეცდომის შეტყობინების თარგმნა ვერ მოხერხდა
    მიზეზი:ეს არის შიდა შეცდომის შეტყობინება, რომელიც არ შეიძლება მოხდეს ნორმალური მუშაობის დროს.
    მოქმედება: გთხოვთ, მიმართოთ შესაბამის დაყენების პროგრამას პრობლემის დეტალური აღწერისთვის.
  • ORA-0817: prsgkw: შიდა შეცდომის ნიშანი ვერ მოიძებნა
    მიზეზი:ეს არის შიდა შეცდომის შეტყობინება, რომელიც არ შეიძლება მოხდეს ნორმალური მუშაობის დროს.
    მოქმედება: გთხოვთ, მიმართოთ შესაბამის დაყენების პროგრამას პრობლემის დეტალური აღწერისთვის.
  • ORA-0818: opispf: osf ძალიან დიდი
    მიზეზი:ეს არის შიდა შეცდომის შეტყობინება, რომელიც არ შეიძლება მოხდეს ნორმალური მუშაობის დროს.
    მოქმედება: გთხოვთ, მიმართოთ შესაბამის დაყენების პროგრამას პრობლემის დეტალური აღწერისთვის.

სინტაქსის შეცდომები ORA-00900 - ORA-00999

  • ORA-00900: არასწორი SQL განცხადება.
    მიზეზი: თქვენ მიერ შეყვანილი განცხადება არ იქნა აღიარებული, როგორც მოქმედი SQL ბრძანება.
    მოქმედება: შეამოწმეთ შეცდომა, დარწმუნდით, რომ SQL ბრძანების საკვანძო სიტყვები იწყება ერთ-ერთი შემდეგი სიტყვით: ALTER, AUDIT, CREATE, DELETE, DROP, GRANT, INSERT, NOAUDIT, Rename, REVOKE, SELECT, UPDATE, LOCK, Validate. სხვა ბრძანებები გამოიწვევს ამ შეცდომას.
  • ORA-00901: არასწორი CREATE ბრძანების სინტაქსი / არასწორი შექმნის ბრძანება.
    მიზეზი: CREATE ბრძანებაზე გამოყენებული იყო არასწორი CREATE ვარიანტი.
    მოქმედება: შეამოწმეთ შეცდომა, დარწმუნდით, რომ CREATE ბრძანებას მოჰყვება ერთ-ერთი შემდეგი ვარიანტი: INDEX, PARTITION, SPACE DEFINITION, SYNONYM, TABLE ან VIEW.
  • ORA-00902: მონაცემთა არასწორი ტიპი.
    მიზეზი: CREATE ან ALTER TABLE განცხადებაში შეყვანილი მონაცემთა ტიპი არასწორია.
    მოქმედება: შეამოწმეთ შეცდომა, დარწმუნდით, რომ თითოეული სვეტის სახელს მოჰყვება მონაცემთა ერთ-ერთი შემდეგი ტიპი: DATA, CHAR, NUMBER, RAW, LONG ან LONG RAW.
  • ORA-00903: ცხრილის არასწორი სახელი.
    მიზეზი: შეყვანილი ცხრილი ან ჯგუფის სახელები არ არსებობს ან არასწორია. ეს შეტყობინება ასევე გამოჩნდება, თუ ჯგუფის არასწორი ან არარსებული სახელი მითითებულია ALTER/DROP CLUSTER ბრძანებაში.
    მოქმედება: შეამოწმეთ შეცდომები. ჯგუფის სწორი სახელი უნდა დაიწყოს ასოთი და შეიცავდეს მხოლოდ ასოებს, ციფრებს და სპეციალურ სიმბოლოებს: $, # და _. სახელი არ უნდა იყოს 30 სიმბოლოზე მეტი და არ უნდა იყოს დაცული სიტყვა.
  • ORA-00904: სვეტის არასწორი სახელი.
    მიზეზი: შეყვანილი სვეტის სახელი აკლია ან არასწორია.
    მოქმედება: შეიყვანეთ სვეტის სწორი სახელი. სწორი სახელი უნდა დაიწყოს ასოთი და შეიცავდეს მხოლოდ ასოებს, ციფრებს და სპეციალურ სიმბოლოებს: $, # და _. სახელი არ უნდა იყოს 30 სიმბოლოზე მეტი და არ უნდა იყოს დაცული სიტყვა. თუ ის შეიცავს სხვა სიმბოლოებს, ის უნდა იყოს ორმაგ ბრჭყალებში.
  • ORA-00905: საკვანძო სიტყვა აკლია.
    მიზეზი: აუცილებელი საკვანძო სიტყვა გამოტოვებულია.
    მოქმედება: შეამოწმეთ ბრძანების სინტაქსი და დაამატეთ დაკარგული საკვანძო სიტყვები.
  • ORA-00906: აკლია მარცხენა ფრჩხილები.
    მიზეზი: აუცილებელი მარცხენა ფრჩხილები გამოტოვებულია. ძირითადი ბრძანებები (როგორიცაა CREATE TABLE, CREATE CLUSTER და INSERT) მოითხოვს ფრჩხილებში ჩასმული ელემენტების სიას. ფრჩხილები ასევე საჭიროა თანმიმდევრობების გარშემო WHERE პუნქტში და UPDATE ცხრილის SET სვეტში = (SELECT ...).
    მოქმედება: შეამოწმეთ ბრძანების სინტაქსი და ჩადეთ გამოტოვებული ფრჩხილები.
  • ORA-00907: აკლია მარჯვენა ფრჩხილები
    მიზეზი: მარცხენა ფრჩხილში შეყვანილი იყო მარჯვენა ფრჩხილის დახურვის გარეშე, ან წინა ინფორმაცია იყო ჩასმული ფრჩხილებში. ყველა ფრჩხილები უნდა იყოს დაწყვილებული.
    მოქმედება: ჩადეთ დახურვის მარჯვენა ფრჩხილი.
  • ORA-00908: აკლია NULL საკვანძო სიტყვა
    მიზეზი: CREATE ან ALTER TABLE განცხადებებში, NOT იყო შემოღებული იმის აღსანიშნავად, რომ ამ სვეტში არ იყო დაშვებული ნულოვანი მნიშვნელობები, მაგრამ NULL საკვანძო სიტყვა იყო გამოტოვებული.
    მოქმედება: თუ თქვენ გჭირდებათ მნიშვნელობა ამ სვეტში, შეცვალეთ NOT საკვანძო სიტყვა NOT NULL-ით.
  • ORA-00909: არგუმენტების არასწორი რაოდენობა
    მიზეზი: მითითება ჩაშენებულ ORACLE ფუნქციაზე გაკეთდა არგუმენტების არასწორი რაოდენობით. ORACLE-ის ყველა ფუნქცია SYSDATE-ის გარდა მოითხოვს მინიმუმ ერთ არგუმენტს.
    მოქმედება: შეამოწმეთ ბრძანების სინტაქსი და შეიყვანეთ არგუმენტების საჭირო რაოდენობა.
  • ORA-00910: მითითებული სიგრძე ძალიან დიდია CHAR სვეტისთვის
    მიზეზი: სიმბოლოს ველის ზომა მითითებული არ არის ან არასწორად არის მითითებული. თქვენ უნდა მიუთითოთ სიმბოლოების თითოეული სვეტის მაქსიმალური სიგრძე.ამ სიგრძემ შეიძლება მიიღოს მნიშვნელობები 0:-დან 240: მდე.
    მოქმედება: შეიყვანეთ მაქსიმალური სიგრძე 0-დან 240-მდე: .
  • ORA-00911: არასწორი სიმბოლო
    მიზეზი: სპეციალური სიმბოლო არასწორია ან მოქმედებს მხოლოდ გარკვეულ ადგილებში. თუ სახელში გამოყენებულია სპეციალური სიმბოლო (გარდა $, # და _) და სახელი არ არის ჩასმული ორმაგ ბრჭყალებში ("), ეს შეტყობინება გამოჩნდება.
    მოქმედება: ამოიღეთ არასწორი სიმბოლო ბრძანებიდან.
  • ORA-00912: ოპერანდული პოპ ოპერაცია დასტაზე ოპერანდების გარეშე
    მიზეზი: ეს არის შიდა შეცდომის შეტყობინება, რომელიც არ შეიძლება მოხდეს ნორმალური მუშაობის დროს.
    მოქმედება: გთხოვთ, მიმართოთ შესაბამის დაყენების პროგრამას პრობლემის დეტალური აღწერისთვის.
  • ORA-00913: ძალიან ბევრი მნიშვნელობა
    მიზეზი: ბრძანება ითვალისწინებს მნიშვნელობების ორ იდენტურ კომპლექტს, მაგრამ მეორე კომპლექტს უფრო მეტი ელემენტი აქვს ვიდრე პირველს. მაგალითად: ქვემოთხოვნას WHERE ან HAVING პუნქტში შეიძლება ჰქონდეს ძალიან ბევრი სვეტი, ან შეიძლება იყოს მეტი სვეტი VALUES-ში ან SELECT პუნქტში, ვიდრე INSERT პუნქტში.
    მოქმედება: შეამოწმეთ ნივთების რაოდენობა და შეცვალეთ ისინი.
  • ORA-00914: აკლია ADD საკვანძო სიტყვა
    მიზეზი: ALTER PARTITION ბრძანება შევიდა ADD საკვანძო სიტყვის გარეშე.
    მოქმედება: შეამოწმეთ ბრძანების სინტაქსი და ხელახლა სცადეთ.
  • ORA-00915: ლექსიკონის ცხრილის ქსელში წვდომა ამჟამად დაუშვებელია
    მიზეზი:ეს არის შიდა შეცდომის შეტყობინება, რომელიც არ შეიძლება მოხდეს ნორმალური მუშაობის დროს.
    მოქმედება: გთხოვთ, მიმართოთ შესაბამის დაყენების პროგრამას პრობლემის დეტალური აღწერისთვის.
  • ORA-00917: მძიმით აკლია
    მიზეზი: მძიმით აკლია სვეტების სიაში, ან INSERT განცხადებაში მნიშვნელობების სიაში, ან ფორმის სიაში ((c,d),(e< f),...).
    მოქმედება: შეამოწმეთ სინტაქსი თქვენს SQL განცხადებაში და საჭიროების შემთხვევაში დაამატეთ გამოტოვებული მძიმე.
  • ORA-00918: სვეტი ორაზროვნად არის განსაზღვრული
    მიზეზი: შეერთებისთვის გამოყენებული სვეტი არსებობს ერთზე მეტ ცხრილში. შეერთებისას, ერთზე მეტ ცხრილში წარმოდგენილი ნებისმიერი სვეტი უნდა შეიცავდეს ცხრილის სახელს. სვეტის სახელი უნდა იყოს TABLE.COLUM ან TABLE_ALIAS.COLUMN, EMP.DEPTNO ან E.DEPTNO და არა მხოლოდ EMP.
    მოქმედება: შეიყვანეთ ცხრილის სახელი სვეტის სახელში წერტილის ან ცხრილის ალტერნატიული სახელის წინ, როგორც ეს ნაჩვენებია ზემოთ.
  • ORA-00919: არასწორი ფუნქცია
    მიზეზი: ფუნქციის მსგავსი შეყვანა ტიპის ფუნქცია (არგუმენტი) არ არის აღიარებული, როგორც ORACLE ფუნქცია.
    მოქმედება: იხილეთ სახელმძღვანელო ფუნქციების სწორი სახელების სიისთვის.
  • ORA-00920: არასწორი მიმართებითი ოპერატორი
    მიზეზი: საძიებო დავალება არასწორი ან გამოტოვებული მდგომარეობის დებულებით.
    მოქმედება: შეიყვანეთ სწორი პირობითი განცხადება. დასაშვებია შემდეგი მიმართებითი განცხადებები: =, !=,<>, >, >=, <, <=,IN, IS, NULL, LIKE, и BETWEEN.
  • ORA-00921: SQL ბრძანების მოულოდნელი დასასრული
    მიზეზი: SQL ბრძანება არასრულია. სწორი ბრძანების ნაწილი იყო შეყვანილი, მაგრამ ერთი ძირითადი კომპონენტი მაინც გამოტოვებულია.
    მოქმედება: შეამოწმეთ ბრძანების სინტაქსი და ჩადეთ დაკარგული კომპონენტები.
  • ORA-00922: არასწორი ვარიანტი
    მიზეზი: არასწორი ვარიანტი გამოცხადდა სვეტის განმარტებაში ან არეალის განსაზღვრაში.
    მოქმედება: წაშალეთ არასწორი ვარიანტი სვეტის ან რეგიონის განსაზღვრებიდან. სწორი ვარიანტი, რომელიც აღწერს სვეტს, არის NOT NULL, რათა მიუთითებდეს, რომ სვეტი არ შეიძლება შეიცავდეს NULL მნიშვნელობებს. ნებისმიერი სხვა, რომელიც მიჰყვება მონაცემთა ტიპს, გარდა მძიმისა ან დახურვის ფრჩხილისა, კლასიფიცირებულია, როგორც არასწორი ვარიანტი. DATA ან LONG მონაცემთა ტიპის სიგრძის აღწერისას, თქვენ მიიღებთ ამ შეცდომის შეტყობინებას. ფარგლების განსაზღვრის დეკლარაციაში დასაშვებია მხოლოდ შემდეგი ოფციები: INITIAL, Increment და MAXEXTENTS, (DATAPAGES და INDEXPAGES-ისთვის) და PCTFREE (მხოლოდ DATAPAGES-ისთვის).
  • ORA-00923: აკლია საკვანძო სიტყვა FROM
    მიზეზი: SELECT ან REVOKE განცხადებაში FROM საკვანძო სიტყვა ან გამოტოვებულია, არასწორად არის განთავსებული, ან არასწორად არის დაწერილი. FROM საკვანძო სიტყვა უნდა მიჰყვეს არჩეულ ერთეულს SELECT განცხადებაში, ან არჩეული ცხრილის სახელს REVOKE განცხადებაში.
    მოქმედება: შეცვალეთ სიტყვა FFROM. შერჩეული სია თავად შეიძლება იყოს მცდარი. დარწმუნდით, რომ იყენებთ ერთ ბრჭყალებს მეტსახელის ჩასართავად და არის თუ არა მეტსახელი დაცული სიტყვა.
  • ORA-00924: აკლია საკვანძო სიტყვა
    მიზეზი: გამოტოვებული საკვანძო სიტყვა GROUP BY, ORDER BY ან CONNECTED BY გამონათქვამებში. გარდა ამისა, GRANT ბრძანებაში სიტყვა INDENTIFIED უნდა მოჰყვეს BY.
    მოქმედება: სწორად ჩასვით სიტყვა BY.
  • ORA-00925: აკლია INTO საკვანძო სიტყვა
    მიზეზი: INSERT ბრძანება გამოყენებული იყო INTO საკვანძო სიტყვის გარეშე.
    მოქმედება: ჩაანაცვლეთ INSERT INSERT INTO-ით.
  • ORA-00926: აკლია VALUES საკვანძო სიტყვა
    მიზეზი: ჩადეთ განცხადება VALUES ან SELECT საკვანძო სიტყვის გარეშე. INSERT INTO განცხადებას უნდა მოჰყვეს VALUES ან SELECT თანმიმდევრობა.
    მოქმედება: ჩაწერეთ VALUES გამოხატულება ან თანმიმდევრობა INSERT INTO გამოხატვის შემდეგ.
  • ORA-00927: აკლია თანაბარი ნიშანი
    მიზეზი: ტოლობის ნიშანი აკლია ერთ-ერთ შემდეგ ადგილას: * UPDATE ბრძანების SET განცხადებაში * შემდეგ! უტოლობის * მითითება CREATE INDEX ბრძანების PCTFREE გამოხატულებაში
    მოქმედება: ჩადეთ ტოლობის ნიშანი.
  • ORA-00928: აკლია SELECT საკვანძო სიტყვა
    მიზეზი: SELECT თანმიმდევრობა უნდა იყოს ჩართული CREATE VIEW ბრძანებაში.
    მოქმედება: ჩასვით საჭირო SELECT განცხადება CREATE VIEW ბრძანებაში.
  • ORA-00929: გამოტოვებული პერიოდი
    მიზეზი:ეს არის შიდა შეცდომის შეტყობინება, რომელიც არ შეიძლება მოხდეს ნორმალური მუშაობის დროს.
    მოქმედება: გთხოვთ, მიმართოთ შესაბამის დაყენების პროგრამას პრობლემის დეტალური აღწერისთვის.
  • ORA-00930: ვარსკვლავი აკლია
    მიზეზი:ეს არის შიდა შეცდომის შეტყობინება, რომელიც არ შეიძლება მოხდეს ნორმალური მუშაობის დროს.
    მოქმედება: გთხოვთ, მიმართოთ შესაბამის დაყენების პროგრამას პრობლემის დეტალური აღწერისთვის.
  • ORA-00931: დაკარგული იდენტიფიკატორი
    მიზეზი:ეს არის შიდა შეცდომის შეტყობინება, რომელიც არ შეიძლება მოხდეს ნორმალური მუშაობის დროს.
    მოქმედება: გთხოვთ, მიმართოთ შესაბამის დაყენების პროგრამას პრობლემის დეტალური აღწერისთვის.
  • ORA-00932: მონაცემთა არათანმიმდევრული ტიპები მონაცემთა არათანმიმდევრული ტიპი
    მიზეზი: მონაცემების ველში სიმბოლოს ველის დამატების მცდელობა. მონაცემების დამატება შესაძლებელია მხოლოდ ციფრულ ველებში.
    მოქმედება: გადააქციეთ სიმბოლოს ველი ციფრულ ველად TO_NUMBER ფუნქციის გამოყენებით მონაცემთა ველის დამატებამდე.
  • ORA-00933: SQL ბრძანება და არასწორად დასრულებული
    მიზეზი: SQL ბრძანება წყდება არასწორი გამონათქვამით. მაგალითად: ORDER BY პუნქტი შეიძლება იყოს შეტანილი CREATE VIEW ან INSERT განცხადებაში, თუმცა, ORDER BY არ უნდა იქნას გამოყენებული სხვა ხედის შესაქმნელად ან ჩართული იყოს მთავარ მიმდევრობაში.
    მოქმედება: შეამოწმეთ ბრძანების სინტაქსი და ამოიღეთ არასაჭირო კომპონენტები. თქვენ უნდა შეძლოთ წაშლილი გამონათქვამების დუბლირება სხვა ბრძანებებით. მაგალითად, თუ გსურთ შეუკვეთოთ მიმოხილვის ხაზები, გააგრძელეთ ისევე, როგორც განხილვის მოთხოვნისას, მაგრამ არა როგორც მისი შექმნისას. ეს შეცდომა ასევე შეიძლება წარმოიშვას SQL*Forms-ის გამოყენებისას, თუ ხაზის გაგრძელება არის ჩაჭრილი. შეამოწმეთ ოფსეტები და ამოიღეთ ადგილები. თქვენ უნდა გამოიყენოთ შესაბამისი SQL დაბოლოებები, თუ იყენებთ I გამოსახულებას ერთი არგუმენტით, მაგალითად: IN(X). IN გამოხატულება უნდა მიიღოს მინიმუმ ორი არგუმენტი.
  • ORA-00934: დაყენების ფუნქცია აქ დაუშვებელია
    მიზეზი: ჯგუფის ერთ-ერთი ფუნქცია (როგორიცაა AVG, SUM, MAX, MIN, COUNT) გამოყენებული იყო WHERE ან GROUP BY პუნქტში.
    მოქმედება: წაშალეთ ჯგუფის ფუნქცია WHERE ან GROUP BY პუნქტებიდან. სასურველი შედეგის მიღება შეგიძლიათ ფუნქციის მოთხოვნაში ან HAVING პუნქტში ჩართვით.
  • ORA-00935: ნაკრების ფუნქცია ძალიან ღრმად არის ჩასმული
    მიზეზი:ეს არის შიდა შეცდომის შეტყობინება, რომელიც არ შეიძლება მოხდეს ნორმალური მუშაობის დროს.
    მოქმედება: გთხოვთ, მიმართოთ შესაბამის დაყენების პროგრამას პრობლემის დეტალური აღწერისთვის.
  • ORA-00936: გამოტოვებული გამოხატულება
    მიზეზი: გამოთქმის აუცილებელი ნაწილი გამოტოვებულია. მაგალითად, SELECT ბრძანება შეყვანილია სვეტების სიის გარეშე, ან შეუთავსებელი ტიპის გამოხატულებით (SAL+). ეს ასევე შეიძლება მოხდეს, თუ დაჯავშნილი სიტყვები, როგორიცაა SELECT TABLE, გამოტოვებულია.
    მოქმედება: შეამოწმეთ ბრძანების სინტაქსი და შეიყვანეთ გამოტოვებული ბრძანებები.
  • ORA-00937: არც ერთი ჯგუფის კომპლექტის ფუნქცია
    მიზეზი: თქვენ არ შეგიძლიათ ერთდროულად შეიტანოთ როგორც ჯგუფის ფუნქცია (AVG, SUM, COUNT, MIN, ან MAX) და მორგებული სვეტის გამოხატულება მოთხოვნაში, თუ სვეტის გამოხატულება არ შედის GROUP BY პუნქტში.
    მოქმედება: ამოიღეთ ან სვეტის გამოხატულება ან ჯგუფის ფუნქცია მოთხოვნიდან, ან დაამატეთ GROUP BY პუნქტი, რომელიც მოიცავს სვეტის ჩამოთვლას.
  • ORA-00938: არ არის საკმარისი არგუმენტები ფუნქციისთვის
    მიზეზი: ფუნქციაში ძალიან ცოტა არგუმენტია გამოცხადებული.
    მოქმედება: შეამოწმეთ ფუნქციის სინტაქსი და დაამატეთ ნებისმიერი საჭირო არგუმენტი.
  • ORA-00939: ძალიან ბევრი არგუმენტი ფუნქციისთვის
    მიზეზი: ფუნქციას აქვს ძალიან ბევრი არგუმენტი.
    მოქმედება: შეამოწმეთ ფუნქციის სინტაქსი და აღწერეთ მხოლოდ საჭირო არგუმენტები.
  • ORA-00940: არასწორი ARTER ბრძანება არასწორი ALTER ბრძანება
    მიზეზი: ALTER არასწორი ვარიანტია აღწერილი. მხოლოდ სექციები და ცხრილები შეიძლება არ განმეორდეს. მოქმედი ALTER ბრძანება უნდა დაიწყოს ერთ-ერთი შემდეგი ვარიანტით: ALTER TABLE ან ALTER PARTITION.
    მოქმედებაშენიშვნა: შეამოწმეთ სინტაქსი ALTER ბრძანების სწორი მართლწერისთვის.
  • ORA-00941: აკლია კლასტერის სახელი
    მიზეზი: ჯგუფის სახელი ან აკლია ან არასწორია.
    მოქმედება: აღწერეთ ჯგუფის სწორი სახელი. ჯგუფის სწორი სახელი იწყება ასოთი, შეიცავს არაუმეტეს 30 სიმბოლოს და შედგება მხოლოდ ასოებისგან, რიცხვებისგან და $, _ და # სპეციალური სიმბოლოსგან. ეს არ უნდა იყოს დაცული სიტყვა. სახელი უნდა დაიბეჭდოს CREATE CLUSTER საკვანძო სიტყვის შემდეგ.
  • ORA-00942: ცხრილი ან ხედი არ არსებობს
    მიზეზი: ეს ცხრილი ან მიმოხილვა არ არსებობს. ან ცხრილის ნაცვლად შეიყვანება ხედის სახელი. არსებული მომხმარებლის ცხრილები და მიმოხილვები შეგიძლიათ ნახოთ TAB მიმოხილვაში.
    მოქმედება: შეამოწმეთ შეცდომა და შეიყვანეთ თუ არა მიმოხილვის სახელი ცხრილის ნაცვლად. შეიყვანეთ არსებული სახელები.
  • ORA-00943: კლასტერი არ არსებობს
    მიზეზი: მომხმარებლის რესურსი არ შედის ჯგუფში აღწერილი სახელით.
    მოქმედება: აღწერეთ ჯგუფის სწორი სახელი CLUSTER საკვანძო სიტყვის შემდეგ.
  • ORA-00944: დაჯგუფებული სვეტების არასაკმარისი რაოდენობა
    მიზეზი: გაკეთდა მცდელობა შექმნათ ცხრილი ნაკლები დაჯგუფებული სვეტით, ვიდრე აღწერილია CREATE CLUSTER ბრძანებაში. CREATE TABLE ბრძანების CLUSTER გამოხატულებამ უნდა აღწეროს ჯგუფის შექმნისას განსაზღვრული ყველა დაჯგუფებული სვეტი. ჯგუფის სახელის გამოყენებით, შეგიძლიათ ნახოთ ყველა ჯგუფის სვეტი COL ლექსიკონის ცხრილში.
    მოქმედება: აღწერეთ ყველა სვეტის სახელები CREATE TABLE ბრძანებაში.
  • ORA-00945: მითითებული კლასტერული სვეტი არ არსებობს
    მიზეზი: CREATE TABLE განცხადების გამოხატულებაში აღწერილი სვეტი არ არის ამ ცხრილის სვეტი.
    მოქმედება: გაიმეორეთ ცხრილის სვეტის სახელის გამოყენებით.
  • ORA-00946: აკლია TO საკვანძო სიტყვა
    მიზეზი: GRANT ბრძანება შევიდა TO საკვანძო სიტყვის გარეშე, ან გამოყენებული იყო ამ ბრძანების არასწორი ფორმა.
    მოქმედება: შეამოწმეთ GRANT ბრძანების ორი ძირითადი ფორმის სინტაქსი (ბაზებზე წვდომის მინიჭება და პრივილეგიების მინიჭება). სწორად ჩადეთ TO საკვანძო სიტყვა GRANT ბრძანებაში.
  • ORA-00947: არ არის საკმარისი მნიშვნელობები
    მიზეზი: SQL განცხადება მოითხოვს მნიშვნელობების ორ იდენტურ კომპლექტს, ხოლო მეორე ნაკრები შეიცავს ნაკლებ მნიშვნელობას. ეს ასევე შეიძლება მოხდეს, თუ ჩასმული SELECT იპოვის ნაკლებ სვეტს WHERE ან HAVING გამოხატულებაში, მაგალითად: WHERE(A,B) IN (SELECT C FROM..) შეცდომა ასევე შეიძლება მოხდეს INSERT განცხადებაში, რომელშიც გამოთქმა VALUES ან SELECT არ შეიცავს საკმარის მნიშვნელობებს INSERT-ისთვის, მაგალითად: INSERT INTO ცხრილში (A,B) VALUES("C").
    მოქმედება: შეამოწმეთ თითოეული ნაკრების სიძლიერე და გაუტოლეთ მათ რიცხვში.
  • ORA-00948: ALTER CLUSTER განცხადება აღარ არის მხარდაჭერილი
    მიზეზი: ALTER CLUSTER განცხადება წაშლილია
    მოქმედება: ცხრილიდან მონაცემების დასამატებლად გამოიყენეთ SQL განცხადებების შემდეგი ნაკრები: CREATE TABLE<новая_таблица>SELECT*FROM<старая_таблица>კლასტერი<имя_группы>ვარდნა<старая_таблица>და ცხრილის გადარქმევა<новая_таблица> <старая_таблица>.
  • ORA-00949: უკანონო მითითება გარე მონაცემთა ბაზაზე
    მიზეზი:ეს არის შიდა შეცდომის შეტყობინება, რომელიც არ შეიძლება მოხდეს ნორმალური მუშაობის დროს.
    მოქმედება: გთხოვთ, მიმართოთ შესაბამის დაყენების პროგრამას პრობლემის დეტალური აღწერისთვის.
  • ORA-00950: არასწორი drop optio არასწორი DROP ვარიანტი
    მიზეზი: DROP ბრძანების შემდეგ, არ იყო DROP ვარიანტი, როგორიცაა TABLE, VIEW, SYNONYM, CLUSTER ან SPACE.
    მოქმედება: შეამოწმეთ ბრძანების სინტაქსი და გამოიყენეთ სწორი ფორმატი DROP ვარიანტისთვის.
  • ORA-00951: კლასტერი ცარიელი არ არის
    მიზეზი: DROP ბრძანება აღწერს ცარიელ ჯგუფს. ჯგუფის წაშლა შესაძლებელია მხოლოდ იმ შემთხვევაში, თუ ის არ შეიცავს ცხრილებს. ამოიღეთ ცხრილი ჯგუფიდან DROP TABLE ბრძანების გამოყენებით.
    მოქმედება: ამოიღეთ ყველა ცხრილი ჯგუფიდან და შემდეგ გამოიყენეთ DROP CLUSTER ბრძანება.
  • ORA-00952: აკლია GROUP საკვანძო სიტყვა
    მიზეზი: ჯგუფი არასწორად არის დანერგილი.
    მოქმედება: მომხმარებლისგან არანაირი მოქმედება არ არის საჭირო.
  • ORA-00953: აკლია ინდექსის სახელი
    მიზეზი: CREATE, DROP, VALIDATE INDEX ბრძანებებში, ინდექსის სახელი არასწორია ან აკლია.
    მოქმედება: ჩაწერეთ სწორი ინდექსის სახელი INDEX საკვანძო სიტყვის შემდეგ. თუ გსურთ წაშალოთ ან შეასწოროთ ინდექსი, შეამოწმეთ სახელი INDEXES-ის მიმოხილვის ნახვით. თუ თქვენ გჭირდებათ ახალი ინდექსის შექმნა, ჯერ შეამოწმეთ სინტაქსი.
  • ORA-00954: აკლია INDENTIFIED საკვანძო სიტყვა
    მიზეზი: GRANT CONNECTION ბრძანება გაიცა INDENTIFIED საკვანძო სიტყვის გარეშე.
    მოქმედება: მომხმარებლის სახელის შემდეგ ჩადეთ INDENTIFIED საკვანძო სიტყვა. ბრძანების ფორმატი ასეთია: GRANT CONNECTION TO<список пользователей>გაურკვეველია BY<пароль списка>.
  • ORA-00955: სახელი უკვე გამოიყენება არსებული ობიექტის მიერ
    მიზეზი: განხორციელდა მცდელობა შეიქმნას ცხრილი, ხედი, ჯგუფი ან სინონიმი, რომელიც უკვე არსებობს. თითოეული მომხმარებლის ცხრილის სახელი უნდა განსხვავდებოდეს სხვა მომხმარებლების საკუთრებაში არსებული ცხრილების, ხედების, ჯგუფების ან სინონიმებისგან.
    მოქმედება: ან შეიყვანეთ უნიკალური ცხრილი, ხედი, ჯგუფი ან სინონიმის სახელი, ან შეცვალეთ ან წაშალეთ არსებული.
  • ORA-00956: არასწორი აუდიტის ვარიანტი - არასწორი აუდიტის ვარიანტი
    მიზეზი: იყო არასწორი შემოწმების ვარიანტი.
    მოქმედება: შეამოწმეთ ბრძანების სინტაქსი და ისევ სცადეთ სწორი ვარიანტით.
  • ORA-00957: დუბლიკატი სვეტის სახელი
    მიზეზი: სვეტის სახელი ორჯერ იყო გამოცხადებული CREATE ან INSERT განცხადებაში. სვეტის სახელი ცხრილში, მიმოხილვაში ან ჯგუფში უნდა იყოს უნიკალური.
    მოქმედება: შეცვალეთ სვეტის სახელი CREATE ბრძანებაში ახალი უნიკალურით. INSERT ბრძანებაში ამოიღეთ დუბლიკატი სახელები.
  • ORA-00958: აკლია CHECK საკვანძო სიტყვა
    მიზეზი: გამოტოვებულია CHECK WHITH საკვანძო სიტყვის შემდეგ CREATE VIEW განცხადების WITH CHECK OPTION პუნქტში.
    მოქმედება: შეამოწმეთ SQL განცხადების სინტაქსი.
  • ORA-00959: სივრცის განმარტების სახელი არ არსებობს
    მიზეზი: A DROP SPACE ბრძანება აღწერს არარსებულ ტერიტორიის სახელს.
    მოქმედება: გამოიყენეთ არსებული ფარგლების განსაზღვრის სახელები. არსებული სახელების სანახავად აირჩიეთ SNAME SPACES-დან.
  • ORA-00960: არასწორი საწყისი მნიშვნელობა
    მიზეზი: დაწყების მონაცემთა გვერდის ან ინდექსის გვერდის ნომრის არასწორი მნიშვნელობა მითითებული იყო CREATE SPACE ბრძანებაში. ეს მნიშვნელობა უნდა იყოს მინიმუმ 3.
    მოქმედება: შეიყვანეთ საწყისი მნიშვნელობა მინიმუმ 3.
  • ORA-00961: არასწორი INCREMENT მნიშვნელობა
    მიზეზი: ნაბიჯების დათვლის არასწორი მნიშვნელობა აღწერილი იყო მონაცემთა გვერდისთვის ან ინდექსისთვის. ნაბიჯის მნიშვნელობა უნდა იყოს 3-ზე მეტი.
    მოქმედება: შეიყვანეთ 3-ზე მეტი INCREMENT მნიშვნელობა.
  • ORA-00962: არასწორი PCTFREE მნიშვნელობა
    მიზეზი: თავისუფალი სივრცის არასწორი პროცენტული მნიშვნელობა აღწერილი იყო SPACE განმარტებაში. ეს მნიშვნელობა უნდა იყოს 1-დან 99-მდე დიაპაზონში.
    მოქმედება: შეიყვანეთ PCTFREE მნიშვნელობა 1:-დან 99-მდე.
  • ORA-00963: არასწორი SIZE მნიშვნელობა
    მიზეზი: ბლოკის არასწორი ლოგიკური ზომა მითითებული იყო CREATE CLUSTER ბრძანებაში. ლოგიკური ბლოკის ზომა გამოიყენება მონაცემთა მცირე ჯგუფების ეფექტურად შესანახად.
    მოქმედება: აღწერეთ ლოგიკური ბლოკის ზომის დაშვებული მნიშვნელობა (0-ზე მეტი).
  • ORA-00964: სივრცის დაცვის არასწორი სახელი
    მიზეზი: სფეროს არასწორი სახელი მითითებული იყო CREATE/DROP SPACE ბრძანებაში ან CREATE TABLE-ში, ან არარსებული სფეროს სახელი მითითებული იყო CREATE TABLE ბრძანებაში.
    მოქმედება: შეიყვანეთ სწორი ტერიტორიის სახელი. სწორი სახელი იწყება ასოთი, შეიცავს არაუმეტეს 30 სიმბოლოს და შედგება მხოლოდ ასოების, ციფრებისა და $, _ და # სპეციალური სიმბოლოებისგან. ეს არ უნდა იყოს დაცული სიტყვა. თუ თქვენი სახელი სწორია, შესაძლოა უნებურად წაშალეთ TEMP საზღვრების განმარტება.
  • ORA-00965: სივრცის განმარტების სახელი უკვე არსებობს
    მიზეზი: არსებული სფეროს სახელი გამოიყენებოდა CREATE SPACE ბრძანებაში. სფეროს განსაზღვრების სახელები უნდა იყოს უნიკალური.
    მოქმედება: შეიყვანეთ ტერიტორიის უნიკალური სახელი.
  • ORA-00966: აკლია TABLE საკვანძო სიტყვა
    მიზეზი: გამოყენებული იყო LOCK ბრძანება და TABLE საკვანძო სიტყვა იყო არასწორად დაწერილი, ან გამოტოვებული ან არასწორად განთავსებული. LOCK ბრძანება უნდა დაიწყოს ასე: LOCK TABLE<имя таблицы> ... .
    მოქმედება: ჩასვით TABLE საკვანძო სიტყვა შესაბამის ადგილას.
  • ORA-00968: აკლია INDEX საკვანძო სიტყვა
    მიზეზი: გამოიყენებოდა CREATE UNIQUE ბრძანება და INDEX საკვანძო სიტყვა იყო არასწორად დაწერილი, ან გამოტოვებული ან არასწორად განთავსებული.
    მოქმედება: გთხოვთ, შეამოწმოთ სინტაქსი და სცადოთ ხელახლა.
  • ORA-00969: აკლია ON საკვანძო სიტყვა
    მიზეზი: გამოყენებული იყო GRANT ან CREATE INDEX ბრძანება და ON საკვანძო სიტყვა იყო არასწორად დაწერილი, გამოტოვებული ან არასწორად განთავსებული.
    მოქმედება: ჩასვით ON საკვანძო სიტყვა შესაბამის ადგილას.
  • ORA-00970: აკლია WITH keyword - აკლია WITH keyword
    მიზეზი: START საკვანძო სიტყვა გამოყენებული იყო WITH-ის გარეშე. ორივე საკვანძო სიტყვაა საჭირო მოთხოვნისთვის START WITH პუნქტში.
    მოქმედება: შეცვალეთ სიტყვა დაწყება START WITH-ით.
  • ORA-00971: აკლია SET საკვანძო სიტყვა - აკლია SET საკვანძო სიტყვა
    მიზეზი: UPDATE ბრძანებაში SET საკვანძო სიტყვა იყო დაწერილი, ან გამოტოვებული ან არასწორად განთავსებული.
    მოქმედება: ჩასვით საკვანძო სიტყვა SET ცხრილის სახელის შესაცვლელად.
  • ORA-00972: ინდენტიფიკატორი ძალიან დიდია
    მიზეზი: მონაცემთა ბაზის ობიექტის სახელი 30 სიმბოლოზე მეტია (მონაცემთა ბაზის ობიექტები არის ცხრილები, ჯგუფები, ხედები, ინდექსები, სინონიმები, სფეროები და მომხმარებლის სახელები.
    მოქმედება: სახელის შემოკლება მაქსიმუმ 30 სიმბოლომდე.
  • ORA-00973: მწკრივების რაოდენობის არასწორი შეფასება
    მიზეზი: CREATE INDEX ბრძანებაში აღწერილი მწკრივების დათვლის მნიშვნელობა არის 0-ზე ნაკლები რიცხვი.
    მოქმედება: აღწერეთ სწორი მნიშვნელობა (0-ზე მეტი).
  • ORA-00974: არასწორი ინდექსის ბლოკის ჩატვირთვის ფაქტორი (პროცენტი)
    მიზეზი: გამოყენებული მოცულობის პროცენტი, აღწერილია CREATE INDEX ბრძანებაში, ფართობი არ ეკუთვნის ინტერვალს 1-დან 90%-მდე.
    მოქმედება: შეიყვანეთ PCTFREE მნიშვნელობა 1-დან 90-მდე. ნაგულისხმევი არის 10.
  • ORA-00975: თარიღი + თარიღი დაუშვებელია
    მიზეზი: სცადეთ ორი მონაცემთა ველის ერთად დამატება. მონაცემების დამატება შესაძლებელია მხოლოდ რიცხვების ველებში და არა სხვა მონაცემებზე.
    მოქმედება: დაამატეთ მონაცემთა ველი რიცხვის ველში.
  • ORA-00977: აუდიტის დუბლიკატი - ორმაგი აუდიტის ვარიანტი
    მიზეზი: კონტროლის იგივე ვარიანტი კვლავ აღწერილია.
    მოქმედება: წაშალეთ ზედმეტი კონტროლის აღწერა.
  • ORA-00978: ჩადგმული კომპლექტის ფუნქცია GROUP BY-ის გარეშე
    მიზეზი: ჯგუფის ფუნქცია (როგორიცაა MIN, MAX ან AVG) გამოიყენებოდა სხვა ჯგუფის ფუნქციის შიგნით (როგორიცაა MAX(COUNT(*))) შესაბამისი GROUP BY პუნქტის გარეშე.
    მოქმედება: ან დაამატეთ GROUP BY პუნქტი ან ამოიღეთ ბუდეების გარე დონე.
  • ORA-00979: არა GROUP BY expressio გამოხატულება არ ეკუთვნის GROUP BY-ს
    მიზეზი: GROUP BY პუნქტი არ შეიცავს SELECT პუნქტის ყველა გამონათქვამს. გამონათქვამები SELECT-დან, რომლებიც არ შედის ჯგუფის ფუნქციებში (COUNT, SUM, AVG, MAX, MIN) უნდა იყოს ჩამოთვლილი GROUP BY პუნქტში.
    მოქმედება: ჩართეთ ყველა SELECT გამონათქვამი, რომელიც არ არის არგუმენტები ფუნქციების დაჯგუფებისთვის GROUP BY პუნქტში.
  • ORA-00980: სინონიმის თარგმანი აღარ მოქმედებს
    მიზეზი: თქვენს მიერ გამოყენებული სინონიმი ეკუთვნოდა ცხრილს, ხედს ან სინონიმს, რომელიც წაშლილია ან დაარქვეს სახელი.
    მოქმედება: ჩაანაცვლეთ სინონიმი იმ ცხრილის, ხედის, სინონიმით, რომლისთვისაც ის იყო განკუთვნილი. ან განაახლეთ სინონიმი სწორი ცხრილებისთვის, ხედებისთვის ან სინონიმებისთვის.
  • ORA-00981: ვერ აერთიანებს ცხრილისა და სისტემის მასშტაბის აუდიტის ვარიანტებს
    მიზეზი: ამავდროულად, როგორც ცხრილის, ასევე სისტემის სიგანის ვარიანტი აღწერილია იმავე AUDIT განცხადებაში.
    მოქმედება: შეასწორეთ ოპერატორი.
  • ORA-00982: აკლია პლუს ნიშანი
    მიზეზი: როდესაც დართულია, მარცხენა ფრჩხილის შემდეგ არ არის პლუს ნიშანი (+). მიმაგრებისას, მარცხენა (ღია) ფრჩხილები ინტერპრეტირებულია, როგორც დანამატის აღწერა და მოსალოდნელია პლუს ნიშანი. სვეტის დანართის აღსაწერად, სვეტის აღწერას უნდა მოჰყვეს ფრჩხილებში ჩასმული პლუს ნიშანი (+).
    მოქმედება: შეასწორეთ SQL სინტაქსი.
  • ORA-00984: სვეტი აქ დაუშვებელია
    მიზეზი: სვეტის სახელი გამოყენებულია იქ, სადაც ის დაუშვებელია, მაგალითად, INSERT განცხადების VALUES პუნქტში.
    მოქმედება: შეამოწმეთ ბრძანების სინტაქსი და გამოიყენეთ სვეტების სახელები მხოლოდ იქ, სადაც დასაშვებია.
  • ORA-00985: არასწორი პროგრამის სახელი
    მიზეზი
    მოქმედება
  • ORA-00986: ჯგუფის სახელები აკლია ან არასწორია - ჯგუფის სახელები აკლია ან არასწორია
    მიზეზი: ეს ქონება არ არის დანერგილი.
    მოქმედება: მომხმარებლის მოქმედება არ არის საჭირო.
  • ORA-00987: დაკარგული ან არასწორი მომხმარებლის სახელი(ები)
    მიზეზი: მომხმარებლის სახელი არ იყო მითითებული GRANT ბრძანებაში, ან რომელიმე მითითებული სახელი არასწორია. მოქმედი მომხმარებლის სახელები უნდა გამოჩნდეს GRANT ბრძანებაში სიტყვის TO-ს შემდეგ. მოქმედი მომხმარებლის სახელი იწყება ასოთი, შემოიფარგლება 30: სიმბოლოთი და შედგება მხოლოდ ასოებისგან, რიცხვებისგან და $, _ და # სპეციალური სიმბოლოსგან. ეს არ უნდა იყოს დაცული სიტყვა.
    მოქმედება: აღწერეთ სწორი მომხმარებლის სახელი (ან მომხმარებელთა სია) TO საკვანძო სიტყვის შემდეგ GRANT ბრძანებაში.
  • ORA-00988: დაკარგული ან არასწორი პაროლი(ები)
    მიზეზი: GRANT ბრძანებაში მეტი მომხმარებლის სახელია, ვიდრე პაროლი. მოქმედი პაროლი უნდა იყოს მითითებული GRANT ბრძანებაში ჩამოთვლილი თითოეული მომხმარებლისთვის.
    მოქმედება: შეიყვანეთ სწორი პაროლი თითოეული მომხმარებლისთვის.
  • ORA-00989: ძალიან ბევრი პაროლი მითითებული მომხმარებლის სახელებისთვის
    მიზეზი: მეტი პაროლია, ვიდრე აღწერილი იყო მომხმარებლის სახელებით GRANT ბრძანებაში. GRANT ბრძანებაში ჩამოთვლილი თითოეული მომხმარებლისთვის მხოლოდ ერთი პაროლი უნდა იყოს შეყვანილი.
    მოქმედება: შეიყვანეთ მომხმარებლის და პაროლების იგივე რაოდენობა.
  • ORA-00990: გამოტოვებული ან არასწორი პრივილეგია
    მიზეზი: GRANT პრივილეგიების ბრძანებაში არ იყო გამოცხადებული პრივილეგიები, ან ერთი მათგანი არასწორია.
    მოქმედება: შეიყვანეთ ერთი ან მეტი მოქმედი პრივილეგია. ნებადართულია შემდეგი პრივილეგიები: SELECT, INSERT, DELETE, UPDATE, ALTER, INDEX, DROP, CLUSTER და ALL. ერთზე მეტი პრივილეგიის მინიჭება შესაძლებელია მძიმით (,) გამოყოფილ სიაში შეყვანით ან სიტყვის ყველა აღწერით ყველა პრივილეგიის მინიჭებისთვის.
  • ORA-00991: ამოუცნობი ფორმატი GRANT ბრძანებისთვის
    მიზეზი: შეყვანილია GRANT ბრძანების არასწორი ფორმა.
    მოქმედება: შეამოწმეთ ბრძანების სინტაქსი. არსებობს GRANT ბრძანების ორი ტიპი. პირველი ტიპი გამოიყენება მონაცემთა ბაზაზე მომხმარებლის წვდომის დასადგენად და უნდა ჰქონდეს შემდეგი ფორმატი: GRANT CONNECT/RESOURCE/DBA TO<имя пользователя>INDENTIFIED BY<пароль>. მინიმუმ ერთი CONNECT, RESOURCE ან DBA საკვანძო სიტყვა უნდა იყოს წარმოდგენილი. მეორე ტიპი გამოიყენება მონაცემთა ბაზის ობიექტებზე პრივილეგიების მინიჭებისთვის და აქვს ფორმატი: GRANT<список привелегий>ჩართულია<обзор/ таблица>TO< индентификатор пользователя>/საჯარო.
  • ORA-00992: ამოუცნობი ფორმატი REVOKE ბრძანებისთვის
    მიზეზი: შეყვანილია REVOKE ბრძანების არასწორი ფორმა.
    მოქმედება: შეამოწმეთ ბრძანების სინტაქსი და ხელახლა სცადეთ.
  • ORA-00993: აკლია GRANT საკვანძო სიტყვა
    მიზეზი: ოფცია WITH გამოცხადდა GRANT ბრძანების ბოლოს GRANT ოფციის გარეშე. მომხმარებლისთვის პრივილეგიების მინიჭებისთვის და სხვა მომხმარებლებისთვის მათი მინიჭების ნებართვისთვის გამოიყენეთ GRANT OPTIO ვარიანტი GRANT ბრძანების ბოლოს.
    მოქმედება: შეცვალეთ WITH საკვანძო სიტყვა WITH GRANT OPTION.
  • ORA-00994: აკლია OPTION საკვანძო სიტყვა - OPTIO საკვანძო სიტყვა აკლია
    მიზეზი: ოფცია WITH GRANT გამოყენებული იყო GRANT ბრძანების ბოლოს სიტყვის OPTION გარეშე.
    მოქმედება: შეცვალეთ გასაღები WITH GRANT-დან WITH GRANT OPTION-ზე.
  • ORA-00995: გამოტოვებული ან არასწორი სინონიმის ინდენტიფიკატორი
    მიზეზი: CREATE ან DROP SYNONYM ბრძანებაში, სინონიმის სახელი იყო გამოტოვებული ან არასწორი.
    მოქმედება: შეამოწმეთ შეცდომა და ბრძანების სინტაქსი. მოქმედი სინონიმის სახელი დაუყოვნებლივ უნდა მიჰყვეს SYNONYM კლავიშს ორივე ბრძანებაში. სწორი სინონიმი სახელი იწყება ასოთი, შემოიფარგლება 30 სიმბოლოთი და შედგება მხოლოდ ასოებისგან, რიცხვებისგან და $, _ და # სპეციალური სიმბოლოსგან. ეს არ უნდა იყოს დაცული სიტყვა.
  • ORA-00996: შეერთების ოპერატორი არის ¦¦ არა ¦ - შეერთების ოპერატორი არის ||, არა |
    მიზეზი: ერთჯერადი შტრიხი (|) გაგებული იყო, როგორც შეერთების აღწერის მცდელობა, მაგრამ შეერთების ოპერატორი შედგება ორი დარტყმისგან (||).
    მოქმედება: შეიყვანეთ ორმაგი სტრიქონი შეერთების ოპერაციისთვის, ან ამოიღეთ ერთი სტრიქონი, თუ შეერთება არ არის საჭირო.
  • ORA-00997: მონაცემთა გრძელი ტიპის უკანონო გამოყენება
    მიზეზი: თქვენ გამოიყენეთ LONG მონაცემთა ტიპი, რომელიც გამოიყენება 240 სიმბოლოზე მეტი მონაცემების შესანახად ფუნქციაში ან WHERE, GROUP BY, ORDER BY პუნქტებში. LONG მნიშვნელობის გამოყენება შესაძლებელია მხოლოდ SELECT პუნქტში.
    მოქმედება: წაშალეთ ეს ველი ფუნქციიდან ან შეთავაზებიდან.
  • ORA-00998: უნდა დაასახელოს ეს გამოხატულება სვეტის ეტიკეტით
    მიზეზი: ფუნქცია ან გამოხატულება გამოიყენებოდა CREATE VIEW ბრძანებაში, მაგრამ შესაბამისი სვეტის სახელი არ იყო დეკლარირებული. როდესაც გამონათქვამი ან ფუნქცია გამოიყენება ხედისთვის, ყველა სვეტისა და ხედის სახელები სწორად უნდა იყოს ჩამოთვლილი CREATE VIEW ბრძანებაში.
    მოქმედება: მიმოხილვის სახელის შემდეგ შეიყვანეთ ყველა მიმოხილვის სვეტის სახელები ფრჩხილებში.
  • ORA-00999: არასწორი ხედის სახელი.
    მიზეზი: ხედის სახელი აკლია ან არასწორია CREATE VIEW ბრძანებაში.
    მოქმედება: შეიყვანეთ სწორი ხედის სახელი CREATE VIEW-ის შემდეგ. სწორი ბრაუზერის სახელი იწყება ასოთი, შემოიფარგლება 30 სიმბოლოთი და შედგება მხოლოდ ასოებისგან, რიცხვებისგან და $,_ და # სპეციალური სიმბოლოსგან. ეს არ უნდა იყოს დაცული სიტყვა.