Excepții Oracle. Excepții (erori) în Oracle. Grupuri de erori Oracle

Acest tutorial explică cum să utilizați excepțiile încorporate în Oracle/PLSQL cu sintaxă și exemple.

Descriere

Excepțiile încorporate sunt excepții care au nume specifice în PL/SQL. Sunt definite într-un pachet standard în PL/SQL și nu pot fi definite de programator.
Oracle are un set standard de excepții încorporate:

ORACLE Excepții Erori Oracle Explicații
DUP_VAL_ON_INDEX Ați încercat să inserați sau să actualizați un câmp a cărui valoare ar încălca restricția de unicitate a câmpului.
TIMEOUT_ON_RESOURCE Declanșat când are loc un timeout în timp ce ORACLE așteaptă o resursă.
TRANSACTION_BACKED_OUT Revenire la o parte ștearsă a unei tranzacții.
INVALID_CURSOR Încercați să faceți referire la un cursor care nu există încă. Acest lucru se poate întâmpla deoarece preluați un cursor care a fost închis sau nu este deschis.
NOT_LOGGED_ON Încercați să efectuați un apel către Oracle fără a fi conectat la Oracle.
LOGIN_DENIED Încercați să vă conectați la Oracle cu un nume de utilizator/parolă incorect.
NU S-AU GASIT DATE ORA-01403 Ați încercat una dintre următoarele:
  1. 1. Ați executat SELECT INTO și interogarea nu a returnat niciun rând.
  2. 2. Faceți referire la un rând neinițializat din tabel.
  3. 3. Citiți după sfârșitul fișierului pachet UTL_FILE.
TOO_MANY_ROWS ORA-01422 Ați încercat să faceți un SELECT INTO și interogarea a returnat mai mult de un rând.
ZERO_DIVIDE Ați încercat să împărțiți un număr la zero.
NUMAR INVALID Încercați să executați o instrucțiune SQL care încearcă să convertească un șir într-un număr.
STORAGE_ERROR ORA-06500 Ați epuizat memoria disponibilă sau memoria este coruptă.
PROGRAM_ERROR ORA-06501 Acesta este un mesaj generic Contact Oracle Support generat deoarece a fost detectată o eroare internă.
VALUE_ERROR ORA-06502 Ați încercat să efectuați o operație și a apărut o eroare la conversia, trunchierea sau limitarea datelor numerice sau de caractere.
CURSOR_DEJA_DESCHIS ORA-06511 Ați încercat să deschideți un cursor care este deja deschis.

Sintaxă

Examinați sintaxa pentru excepții încorporate în proceduri și funcții.

Sintaxă pentru procedură

CREATE PROCEDURE nume_procedură
[ (parametru [,parametru]) ]
ESTE
ÎNCEPE
executabil_sectionEXCEPTION
CÂND exception_name1 THEN

CÂND exception_name2 ATUNCI

CÂND exception_name_n ATUNCI

CÂND ALȚII ATUNCI

SFÂRŞIT ;

Sintaxă pentru funcție

CREATE FUNCTION nume_funcție
[ (parametru [,parametru]) ]
RETURN return_datatype
ESTE | LA FEL DE
ÎNCEPE
executabil_sectionEXCEPTION
CÂND exception_name1 THEN

CÂND exception_name2 ATUNCI

CÂND exception_name_n ATUNCI

CÂND ALȚII ATUNCI

SFÂRŞIT ;

Un exemplu de utilizare a excepțiilor într-o procedură.

Oracle PL/SQL

CREATE OR REPLACE PROCEDURE add_new_supplier (supplier_id_in IN NUMBER, supplier_name_in IN VARCHAR2) IS BEGIN INSERT INTO furnizori (supplier_id, supplier_name) VALUES (supplier_id_in, supplier_name_in); EXCEPȚIE CÂND DUP_VAL_ON_INDEX THEN raise_application_error (-20001, „Ați încercat să inserați un furnizor_id duplicat.”); WHEN OTHERS THEN raise_application_error (-20002, „A apărut o eroare la inserarea unui furnizor.”); SFÂRŞIT;

CREAȚI SAU ÎNLOCUIȚI PROCEDURA add_new_supplier

(supplier_id_inIN NUMBER,supplier_name_inIN VARCHAR2)

ÎNCEPE

INSERT INTO furnizori (id_furnizor,nume_furnizor)

Gestionarea excepțiilor în PL/SQL

În orice limbaj procedural, este esențial să ne amintim că programele sunt o entitate completă și separată de baza de date. Prin urmare, ori de câte ori programul solicită rânduri din baza de date, programatorul trebuie să se asigure că cererea a fost finalizată cu succes.

În bazele de date relaționale, baza de date va transmite întotdeauna o variabilă specială numită SQLCODE înapoi oricărui program apelant. SQLCODE returnat de la apelul de acoperire de la program la baza de date este tradus de Oracle într-o variabilă booleană numită (vezi tabelul de mai jos).

Variabila de excepție PL/SQL

ACCESS_INTO_NULL

COLLECTION_IS_NULL

CURSOR_DEJA_DESCHIS

DUP_VAL_ON_INDEX

ROWTYPE_MISMATCH

SUBSCRIPT_BEYOND_COUNT

SUBSCRIPT_OUTSIDE_LIMIT

SYS_INVALID_ROWID

TIMEOUT_ON_RESOURCE

De exemplu, dacă baza de date returnează un SQLCODE=100, variabila PL/SQL NO_DATA_FOUND va fi setată la TRUE.

Fără excepție, toate programele PL/SQL ar trebui să se anuleze ori de câte ori un SQLCODE neașteptat este returnat de baza de date Oracle.

Acest lucru poate avea un efect dezastruos asupra bazei de date, mai ales atunci când PL/SQL încarcă date în tabele bazate pe premise false. Pentru a preveni această tragedie, Oracle oferă o variabilă WHEN OTHERS, care este setată la TRUE dacă orice cod SQLCODE neașteptat este returnat din baza de date Oracle.

De exemplu, luați în considerare următorul cod:

DECLARA
err_num NUMBER;
err_msg VARCHAR2(100);
ÎNCEPE
...
EXCEPȚIE
...
CÂND ALȚII ATUNCI
err_num:= SQLCODE;
err_msg:= SUBSTR(SQLERRM, 1, 100);
INSERT INTO errors VALUES (err_num, err_msg);
SFÂRŞIT;

Aici vedem că gestionarea excepțiilor are o zonă EXCEPȚII care testează WHEN OTHERS. Dacă variabila booleană WHEN OTHERS este TRUE, codul PL/SQL captează SQLCODE și mesajul de eroare asociat (SQLERRM) și stochează aceste valori într-un tabel special de erori Oracle.

Gestionarea excepțiilor Oracle

Dezvoltatorii semnalează adesea condițiile de eroare și le gestionează folosind gestionarea excepțiilor Oracle și utilizarea logicii IF-THEN.

Gestionarea excepțiilor Oracle utilizând logica IF-THEN pentru a semnaliza erorile

Exemplul de mai sus ilustrează gestionarea excepțiilor Oracle folosind variabila booleană bAidAmountOk pentru a ține evidența unei stări pe parcursul procesării fiecărei dosare de elev.

Această utilizare a gestionării excepțiilor Oracle are un impact asupra performanței. Gestionarea excepțiilor Oracle utilizează mai multe instrucțiuni pentru a testa condiția de eroare. Fiecare instrucțiune de tratare a excepțiilor Oracle necesită cicluri CPU pentru a fi finalizate. O abordare mult mai bună implică utilizarea gestionării excepțiilor Oracle pentru a evita irosirea ciclurilor CPU, așa cum se vede mai jos:

Utilizarea gestionarilor de excepții Oracle pentru a îmbunătăți performanța.

În acest exemplu de gestionare a excepțiilor Oracle, xAID_AMOUNT_OK excepția este ridicată în mod explicit în interiorul buclei. Acest lucru permite execuției să omite instrucțiunile care apar după ce GPA-ul studentului este verificat, reducând CPU-ul utilizat în gestionarea excepțiilor Oracle.

Gestionarea excepțiilor Oracle este foarte eficientă. Când se ridică o excepție Oracle, toate instrucțiunile ulterioare din bloc sunt ocolite, astfel încât excepția să poată fi gestionată de un handler de excepții Oracle. Gestionarea excepțiilor Oracle poate fi valorificată pentru a crește semnificativ performanța.

Burleson este echipa americană

Notă: Această documentație Oracle a fost creată ca suport și referință de instruire Oracle pentru utilizare de către profesioniștii noștri de consultanță în reglarea performanței DBA. Nu ezitați să puneți întrebări pe forumul nostru Oracle.

Verifica experienţă! Oricine are în vedere utilizarea serviciilor unui expert de asistență Oracle ar trebui să-și investigheze în mod independent acreditările și experiența și să nu se bazeze pe reclame și pe expertiza autoproclamată. Toți experții legitimi Oracle le publică.

Erată?


Tuning de performanță

Copyright 1996 - 2017

® Toate drepturile rezervate de Burleson

este marcă înregistrată a Oracle Corporation.

Administratorii și programatorii de baze de date Oracle întâlnesc uneori în munca lor faptul că baza de date începe să „înjure” și adesea într-un limbaj care nu este pe deplin de înțeles. În acest articol ne vom uita la limbajul erorilor Oracle și a mesajelor de avertizare. Toate erorile sunt grupate în secțiuni și subsecțiuni mari pentru a ajuta utilizatorii să navigheze rapid în ceea ce se întâmplă și să ia măsuri pentru a corecta situația. În acest articol ne vom uita la grupuri primele mii de erori Oracle(pe intervale coduri de la 0 la 999), precum și explicați motivele apariției lor și sugerați acțiuni pentru a le corecta. Formatul de eroare este „ORA-xxxxx”. La început există un prefix „ORA”, iar apoi după o liniuță un cod de eroare din cinci cifre.

Grupuri de erori Oracle

Mesaje de eroare ORA-00000 - ORA-00099

Mesajele ORA-00000 sunt normale, finalizate cu succes, adică nu sunt o eroare.

Erori metodologice de acces la kernel 0001-0049

  • ORA-00001: cheie duplicată în index
  • ORA-00017: Numărul maxim de apeluri depășit
  • ORA-00018: Numărul maxim de sesiuni depășit
  • ORA-00019: Numărul de sesiuni a depășit numărul de licențe
  • ORA-00020: Numărul maxim de procese (num) depășit
  • ORA-00021: Sesiunea este ocupată de un alt proces. Nu schimbați sesiunea
  • ORA-00022: ID de sesiune nevalid. Accesul este interzis
  • ORA-00023: Sesiunea conține referințe la memoria privată. Nu se poate deconecta sesiunea
  • ORA-00024: Conectarea la mai mult de un proces este interzisă în modul cu utilizator unic
  • ORA-00025: Nu se poate aloca [șirul]
  • ORA-00026: ID-ul sesiunii lipsă sau nevalid
  • ORA-00027: Nu se poate distruge sesiunea curentă
  • ORA-00028: Sesiunea ta a fost distrusă
  • ORA-00029: Sesiunea nu este o sesiune de utilizator
  • ORA-00030: Sesiunea utilizator cu ID specificat nu există
  • ORA-00031: Sesiune marcată pentru distrugere
  • ORA-00032: Parola de mutare a sesiunii nevalidă
  • ORA-00033: Sesiune curentă cu parola de mutare goală
  • ORA-00034: Nu se poate lansa COMMIT sau ROLLBACK în sesiunea curentă PL/SQL
  • ORA-00035: valoarea LICENSE_MAX_USERS nu poate fi mai mică decât numărul curent de utilizatori
  • ORA-00036: Numărul maxim de niveluri (valoare) de recursivitate SQL atins
  • ORA-00037: Nu se poate comuta la o altă sesiune de grup de servere
  • ORA-00038: Imposibil de creat sesiunea. Grupul de servere aparține altui utilizator

Erori ENQ 0050-0080

  • ORA-00050: Eroare de sistem de operare la primirea cozii
  • ORA-00051: Resursa a expirat
  • ORA-00052: Numărul maxim de resurse returnate a fost depășit
  • ORA-00053: numărul maxim de cozi depășit
  • ORA-00054: Resursa ocupată la accesarea pointerului NOWAIT
  • ORA-00055: Numărul maxim de blocări DML a fost depășit
  • ORA-00056: O blocare DDL este impusă unui obiect blocat
  • ORA-00057: Numărul maxim de blocări temporare de tabel a fost depășit
  • ORA-00058: DB_BLOCK_SIZE trebuie să fie egal cu DB montat
  • ORA-00059: Valoarea parametrului DB_FILES a fost depășită
  • ORA-00060: A apărut un blocaj în timp ce se aștepta o resursă
  • ORA-00061: O altă instanță are setări DML_LOCK diferite
  • ORA-00062: Blocarea DML pe întreaga masă nu poate fi obținută. Parametrul DML_LOCKS este nul
  • ORA-00063: Valoarea parametrului LOG_FILES a fost depășită
  • ORA-00064: obiectul nu poate fi alocat deoarece este prea mare pentru sistemul de operare
  • ORA-00065: Eroare la inițializarea parametrului FIXED_DATE
  • ORA-00066: Valorile LOG_FILES nu se potrivesc
  • ORA-00067: Valoare nevalidă pentru parametrul șir, trebuie să fie șir
  • ORA-00068: Valoare nevalidă pentru parametrul șir, trebuie să fie șir
  • ORA-00069: Tabelul nu poate fi blocat - blocarea este dezactivată pentru [șir]
  • ORA-00070: Comanda [șir] este nevalidă
  • ORA-00071: numărul de procese trebuie să fie de la 1:
  • ORA-00072: Procesul specificat nu este activ
  • ORA-00073: Număr nevalid de argumente specificat pentru comandă
  • ORA-00074: Procesul nu este definit
  • ORA-00075: Procesul [șir] nu a fost găsit în instanța curentă
  • ORA-00076: dump [șir] nu a fost găsit
  • ORA-00077: Dump-ul specificat este nevalid
  • ORA-00078: Imposibil de rezolvat descărcarea după nume
  • ORA-00079: Variabila [valoare] nu a fost găsită
  • ORA-00080: A fost făcută o încercare de a descărca zona de memorie greșită
  • ORA-00081: Intervalul specificat nu este valid
  • ORA-00082: Intervalul de memorie nu este în intervalul specificat
  • ORA-00083: SGA poate fi corupt
  • ORA-00084: Zona globală trebuie să fie PGA, SGA sau UGA
  • ORA-00085: Apelul curent nu există
  • ORA-00086: Apelul utilizatorului nu există
  • ORA-00087: Comanda nu poate fi executată pe instanța de la distanță
  • ORA-00088: Comanda nu poate fi executată de serverul distribuit
  • ORA-00089: Număr de instanță nevalid în comanda ORADEBUG
  • ORA-00090: Comanda ORADEBUG nu a putut să aloce corect memoria în baza de date în cluster
  • ORA-00091: LARGE_POOL_SIZE trebuie specificat
  • ORA-00092: LARGE_POOL_SIZE trebuie să fie mai mare decât LARGE_POOL_MIN_ALLOC
  • ORA-00093: %s specificat este nevalid
  • ORA-00094: %s trebuie să conțină o valoare întreagă
  • ORA-00096: Valoare [valoare] nevalidă pentru parametrul [valoare], trebuie să fie în afara intervalului
  • ORA-00097: Caracteristicile Oracle SQL nu sunt acceptate de SQL92:
  • ORA-00099: Resursa a expirat. Potențial blocaj PDML

Erori de zonă și segment ORA-00100 - ORA-00299

  • ORA-00100: Nu s-au găsit date
  • ORA-00101: Specificația parametrului de sistem DISPATCHERS este nevalidă
  • ORA-00102: Protocolul de rețea specificat nu poate fi utilizat de către dispeceri
  • ORA-00103: Protocol de rețea nevalid, rezervat pentru utilizare de către dispeceri
  • ORA-00104: Dead lock detectat, toate serverele disponibile sunt blocate, în așteptarea resurselor
  • ORA-00105: prea multe configurații de manager
  • ORA-00106: Baza de date nu poate fi pornită sau oprită în timp ce există o conexiune la dispecer
  • ORA-00107: conexiunea nu poate fi stabilită cu procesul de ascultare ORACLE
  • ORA-00108: dispecerul nu poate fi configurat să accepte conexiuni asincrone
  • ORA-00111: Atribut nevalid [șir]
  • ORA-00112: valoarea atributului este nulă
  • ORA-00113: Numele protocolului [șir] este prea lung
  • ORA-00114: Valoare nevalidă pentru parametrul de sistem SERVICE_NAMES
  • ORA-00115: Resetarea conexiunii, tabelul de conexiuni plin
  • ORA-00116: valoarea SERVICE_NAMES este nevalidă
  • ORA-00117: Trebuie specificat PROTOCOL, ADRESĂ sau DESCRIERE
  • ORA-00118: Poate fi specificată o singură valoare PROTOCOL, ADRESĂ sau DESCRIERE
  • ORA-00119: Valoare nevalidă a parametrului de sistem
  • ORA-00120: Managerul nu este permis sau nu este instalat
  • ORA-00121: SHARED_SERVERS definit fără parametrul DISPATCHERS
  • ORA-00122: Nu se poate inițializa configurația rețelei
  • ORA-00123: Timp de nefuncționare a serverului partajat
  • ORA-00124: DISPATCHERS specificat fără MAX_SHARED_SERVERS
  • ORA-00125: Resetarea conexiunii; concepție greșită
  • ORA-00126: Resetare conexiune; contradicţie
  • ORA-00127: Dispeceratul nu există
  • ORA-00128: Comanda necesită numele managerului
  • ORA-00129: Adresă de ascultare nevalidă
  • ORA-00130: Adresă de ascultare nevalidă
  • ORA-00131: Protocolul de rețea nu acceptă înregistrarea specificată
  • ORA-00132: Eroare de sintaxă sau nume de rețea nevalid
  • ORA-00150: ID tranzacție duplicat
  • ORA-00151: ID-ul tranzacției duplicat
  • ORA-00152: Sesiunea curentă nu îndeplinește sesiunea solicitată
  • ORA-00153: Eroare în biblioteca XA
  • ORA-00154: Eroare de protocol în monitorul tranzacției
  • ORA-00155: Nu se poate executa lucrarea în afara tranzacției globale
  • ORA-00160: Numele tranzacției globale depășește lungimea maximă
  • ORA-00161: Lungimea tranzacției este incorectă
  • ORA-00162: Identificatorul extern al bazei de date depășește valoarea maximă
  • ORA-00163: Numele bazei de date externă depășește valoarea maximă
  • ORA-00164: Tranzacțiile autonome distribuite nu sunt permise peste tranzacțiile distribuite portabile
  • ORA-00165: Nu sunt permise tranzacțiile distribuite portabile autonome cu operațiuni de la distanță
  • ORA-00200: fișierul de control nu poate fi creat
  • ORA-00201: Versiunea fișierului de control [șir] nu este compatibilă cu versiunea ORACLE [șir]
  • ORA-00202: Fișier de control: [șir]
  • ORA-00203: Fișier de control nevalid utilizat
  • ORA-00204: Eroare la citirea blocului de date (bloc [șir], blocuri [șir]) în fișierul de control
  • ORA-00205: Eroare de identificare a fișierului de control. Consultați jurnalul pentru mai multe informații
  • ORA-00206: eroare la scrierea în fișierul de control (bloc [șir], blocuri [șir])
  • ORA-00207: Fișierul de control nu este din această bază de date
  • ORA-00208: Numărul de fișiere de control depășește valoarea permisă [șir]
  • ORA-00209: Blocul de date al fișierului de control nu se potrivește. Consultați jurnalul pentru mai multe informații
  • ORA-00210: Fișierul de control specificat nu poate fi deschis
  • ORA-00211: Fișierul de control nu se potrivește anterior
  • ORA-00212: Dimensiunea blocului [șir] este mai mică decât [șirul] minim necesar
  • ORA-00213: Nu se poate reutiliza fișierul de control, dimensiunea fișierului %1: necesar %2:
  • ORA-00214: Versiunea fișierului de control este incompatibilă cu versiunea fișierului
  • ORA-00215: Trebuie să existe cel puțin un fișier de control
  • ORA-00216: Dimensiunea fișierului de control nu poate fi modificată pentru portare de la 8.0.2:
  • ORA-00217: Dimensiunea fișierului de control nu poate fi modificată pentru migrarea de la 9.0.1:
  • ORA-00218: Dimensiunea blocului de date al fișierului de control nu se potrivește cu dimensiunea specificată în parametrul DB_BLOCK_SIZE
  • ORA-00219: Dimensiunea fișierului de control depășește dimensiunea specificată
  • ORA-00220: Fișierul de control nu poate fi montat, consultați jurnalul de alerte pentru mai multe detalii
  • ORA-00221: eroare la scrierea în fișierul de control
  • ORA-00222: Operația încearcă să folosească numele unui fișier de control deja montat
  • ORA-00223: Fișierul care este convertit este invalid sau are versiunea greșită
  • ORA-00224: redimensionarea fișierului de control a eșuat cu tip de înregistrare nevalid
  • ORA-00225: Mărimea așteptată a fișierului de control [șir] este diferită de dimensiunea reală [șir]
  • ORA-00226: Operarea nu este posibilă în timp ce fișierul de control alternativ este deschis
  • ORA-00227: Un bloc de date corupt (bloc [șir] blocuri [șir]) a fost găsit în fișierul de control.
  • ORA-00228: Lungimea numelui fișierului de control alternativ depășește valoarea permisă [șir]
  • ORA-00229: Operațiunea nu este permisă. Fișierul instantaneu este deja pus în coadă și ocupat de proces
  • ORA-00230: Operațiunea nu este permisă. Coada de instantanee a fișierului de control nu este disponibilă
  • ORA-00231: Instantaneul fișierului de control nu este numit
  • ORA-00232: Instantaneul fișierului de control nu există, este corupt sau nu poate fi citit
  • ORA-00233: Copierea fișierului de control este coruptă sau nu poate fi citită
  • ORA-00234: Eroare la identificarea sau deschiderea instantaneului sau la copierea fișierului de control
  • ORA-00235: Fișierul de control este blocat pentru modificare simultană
  • ORA-00236: instantaneu anulat, fișierul de control de rezervă selectat
  • ORA-00237: Operația de instantaneu nu este permisă. A fost creat un nou fișier de control
  • ORA-00238: Operația încearcă să folosească nume de fișier ca nume de bază de date
  • ORA-00250: Archiver nu rulează
  • ORA-00251: LOG_ARCHIVE_DUPLEX_DEST nu poate fi același director cu %1:
  • ORA-00252: Jurnalul este gol. Arhivarea nu este posibilă
  • ORA-00253: Lungimea șirului specificat depășește limita
  • ORA-00254: Eroare în șirul de control al arhivei
  • ORA-00255: Eroare la arhivarea fișierului jurnal
  • ORA-00256: A apărut o eroare la analizarea șirului de arhivă
  • ORA-00257: Eroare de arhivare. Nu mă pot conecta în timp ce resursa este ocupată
  • ORA-00258: La arhivarea manuală în modul NOARCHIVELOG, trebuie specificat jurnalul
  • ORA-00259: Jurnalul de instanță deschisă este jurnalul curent și nu poate fi arhivat
  • ORA-00260: Nu se poate găsi jurnalul de coadă activ [șir] pentru firul [șir]
  • ORA-00261: Jurnalul a fost modificat sau arhivat
  • ORA-00262: Jurnalul curent [șir] este ocupat de un alt fir [șir], nu poate comuta
  • ORA-00263: Nu există jurnale de arhivat pentru firul [șir]
  • ORA-00264: Nu este necesară recuperarea
  • ORA-00265: Este necesară recuperarea instanței, dar modul ARCHIVELOG poate fi setat
  • ORA-00266: Numele jurnalului de arhivare este necesar
  • ORA-00267: Numele jurnalului de arhivare nu este necesar
  • ORA-00268: Fișierul jurnal specificat nu există
  • ORA-00269: fișierul jurnal specificat face parte din fluxul [șir] nu [șir]
  • ORA-00270: Eroare la crearea jurnalului de arhivă [șir]
  • ORA-00271: Niciun jurnal nu necesită arhivare
  • ORA-00272: eroare la scrierea în jurnalul de arhivă [șir]
  • ORA-00273: Recuperarea datelor descărcate direct fără înregistrare
  • ORA-00274: valoare [valoare] nevalidă specificată pentru opțiunea de recuperare
  • ORA-00275: Procedura de recuperare rulează deja
  • ORA-00276: S-a specificat cuvântul cheie CHANGE, dar nu s-a specificat numărul de modificare
  • ORA-00277: opțiune de recuperare nevalidă UNTIL flag [șir]
  • ORA-00278: Fișierul jurnal [șir] nu mai este necesar pentru recuperare
  • ORA-00279: Numele fișierului jurnal este necesar
  • ORA-00280: Firul și numele secvenței necesare
  • ORA-00281: Restaurarea nu poate fi efectuată utilizând manager
  • ORA-00282: Apelul UPI nu este acceptat, utilizați ALTER DATABASE RECOVER
  • ORA-00283: Sesiune de recuperare anulată din cauza unor erori
  • ORA-00284: Sesiune de recuperare în curs
  • ORA-00285: valoarea TIME nu este specificată corect
  • ORA-00286: Nu există fișiere disponibile sau fișiere cu date valide
  • ORA-00287: Numărul de modificare specificat [șir] nu a fost găsit în firul [șir]
  • ORA-00288: Utilizați ALTER DATABASE RECOVER CONTINUE pentru a continua recuperarea
  • ORA-00289: Variabilă [șir]
  • ORA-00290: Eroare de sistem de operare. Vezi mai jos mesajul de eroare
  • ORA-00291: PARALLEL necesită o valoare numerică
  • ORA-00292: componenta „recuperare paralelă” nu este instalată
  • ORA-00293: Fișierul de control nu este sincronizat cu jurnalul de refacere
  • ORA-00294: Format nevalid specificat pentru jurnalul de arhivă [șir]
  • ORA-00295: Numărul de date/fișier temporar nevalid [șir], trebuie să fie între 1: și [șir]
  • ORA-00296: Valoarea RECOVER DATAFILE LIST a fost depășită
  • ORA-00297: RECOVER DATAFILE LIST trebuie specificată înainte de RECOVER DATAFILE START
  • ORA-00298: Valoarea atributului lipsă sau nevalidă
  • ORA-00299: Recuperarea la nivel de fișier a fișierului de date %1

Erori I/O baze de date ORA-00300 - ORA-00399

Erori în gestionarea intrării și ieșirii din baza de date Oracle:

  • ORA-00300: Dimensiunea blocului de jurnal de refacere nevalidă, dimensiunea specificată [șir] depășește limita de dimensiune [șir]
  • ORA-00301: Eroare la adăugarea fișierului jurnal [șir] - fișierul nu a putut fi creat
  • ORA-00302: Limita fișierelor jurnal a fost depășită
  • ORA-00303: nu se poate executa Parallel Redo
  • ORA-00304: INSTANCE_NUMBER solicitat este ocupat
  • ORA-00305: Jurnalul [șir] al firului [șir] este inconsecvent și aparține unei alte baze de date
  • ORA-00306: Limita de instanță a fost atinsă [șir]
  • ORA-00307: INSTANCE_NUMBER solicitat este în afara intervalului, maxim [șir]
  • ORA-00308: Nu se poate deschide jurnalul arhivat [șir]
  • ORA-00309: Jurnalul aparține unei alte baze de date
  • ORA-00310: Jurnalul de arhivare conține secvența [șir]; secvența necesară [valoare]
  • ORA-00311: Imposibil de citit antetul jurnalului arhivei
  • ORA-00312: Jurnal disponibil [șir] fir [șir]
  • ORA-00313: Eroare la deschiderea fișierului grupului de jurnal [șir] flux [șir]
  • ORA-00314: Jurnal [șir], secvența așteptată [șir] nu se potrivește cu [șir]
  • ORA-00315: jurnal [șir] flux [șir], valoare nevalidă [șir] în antet
  • ORA-00316: jurnal [șir], valoarea [șir] din antet indică faptul că acesta nu este un fișier jurnal
  • ORA-00317: Fișierul [șir] specificat nu este un fișier jurnal
  • ORA-00318: Jurnalul [șir] a depășit dimensiunea [șir] nu se potrivește cu [șirul]
  • ORA-00319: Jurnalul [șir] are o stare de resetare incorectă
  • ORA-00320: Imposibil de citit antetul fișierului [șir] al fluxului [șir]
  • ORA-00321: Nu se pot actualiza datele din antetul fișierului jurnal [șir] flux [șir]
  • ORA-00322: jurnal [șir] firului [șir] nu este copia curentă
  • ORA-00323: jurnalul curent al firului [șir] nu este utilizabil și toate celelalte necesită arhivare
  • ORA-00324: Numele fișierului jurnal [șir] tradus [șir] prea lung, limita depășită [șir]
  • ORA-00325: Jurnalul de arhivare al firului de execuție [șir] conține o valoare nevalidă [șir] în antet
  • ORA-00326: Jurnalul începe la [șir], necesită [șir] modificat anterior
  • ORA-00327: Jurnalul [șir] al firului [șir] are o dimensiune fizică [șir] mai mică decât cea cerută de [șir]
  • ORA-00328: Jurnalul de arhivare se termină la [șir], este necesară modificarea ulterioară [șir]
  • ORA-00329: Jurnalul de arhivare începe la [șir], este necesară modificarea [șir]
  • ORA-00330: Jurnalul de arhivare se termină la [șir], modificarea necesară la [șir]
  • ORA-00331: Versiunea jurnalului [șir] nu este compatibilă cu versiunea ORACLE [șir]
  • ORA-00332: Jurnalul arhivat este foarte mic, posibil să nu fie complet arhivat
  • ORA-00333: Refaceți jurnalul citit [șir] blocuri greșite din [șir] disponibil
  • ORA-00334: Jurnal de arhivare [șir]
  • ORA-00335: Jurnal disponibil [șir]: Nu există jurnal cu acest număr, jurnal nu există
  • ORA-00336: Dimensiunea blocului fișierului jurnal este mai mică decât blocul minim [șir]
  • ORA-00337: Fișierul jurnal [șir] nu există și dimensiunea nu este specificată
  • ORA-00338: Jurnal [șir] mai mare decât valoarea ultimului fișier de control
  • ORA-00339: Jurnalul de arhivă nu conține nicio reexecuție
  • ORA-00340: Eroare I/O la procesarea jurnalului [șir] firului [șir]
  • ORA-00341: Fișierul jurnal [șir] are un număr [șir] nevalid în antet
  • ORA-00342: Jurnalul de arhivă nu conține informații SCN [șir]
  • ORA-00343: Prea multe erori, jurnal închis
  • ORA-00344: Nu se poate recrea jurnalul disponibil [șir]
  • ORA-00345: refacere eroare de scriere a jurnalului, blocare [șir] total [șir]
  • ORA-00346: Jurnal marcat ca învechit (SALE)
  • ORA-00347: Jurnalul [șir] al firului [șir] are dimensiunea blocului [șir], nu se potrivește, ar trebui să fie [șir]
  • ORA-00348: Procesarea de restaurare a eșuat, instanța trebuie oprită
  • ORA-00349: Recepția dimensiunii blocului pentru [șir] a eșuat
  • ORA-00350: Jurnalul [șir] (flux [șir]) al instanței [șir] necesită arhivare
  • ORA-00351: Timp de recuperare incorect
  • ORA-00352: Toate jurnalele din fluxul [șir] trebuie arhivate - nu pot fi permise
  • ORA-00353: bloc de jurnal [șir] modificare [șir] timp [șir] corupt
  • ORA-00354: Antetul blocului de jurnal reface corupt
  • ORA-00355: Schimbați numărul în afara secvenței
  • ORA-00356: Lungimea descrierii modificării nu este validă
  • ORA-00357: Prea mulți membri specificați pentru fișierul jurnal, maxim [șir]
  • ORA-00358: Prea mulți membri specificati, maxim [șir]
  • ORA-00359: Grupul de fișiere jurnal [șir] nu există
  • ORA-00360: Nu este membru al fișierului jurnal: [șir]
  • ORA-00361: Nu se poate elimina ultimul jurnal [șir] din grup [șir]
  • ORA-00362: Membrul necesar este un fișier jurnal valid în grup [șir]
  • ORA-00363: Jurnalul nu este arhivat
  • ORA-00364: Nu se poate scrie în noul antet de jurnal
  • ORA-00365: Jurnalul specificat nu este valid
  • ORA-00366: jurnal [șir] al firului [șir], eroare de sumă de control în antetul fișierului
  • ORA-00367: Eroare de sumă de control în antetul fișierului
  • ORA-00368: Eroare de sumă de control în blocul de jurnal de refacere
  • ORA-00369: Jurnalul curent al firului de execuție [șir] este corupt, iar celălalt jurnal este șters
  • ORA-00371: memorie insuficientă în pool-ul partajat, trebuie să fie cel puțin [șir]
  • ORA-00372: Fișierul [șir] nu poate fi modificat în acest moment
  • ORA-00373: Versiunea de jurnal deschis [șir] este incompatibilă cu versiunea ORACLE [șir]
  • ORA-00374: db_block_size=valoarea parametrului [valoare] este incorectă; trebuie să fie un compus în intervalul [valoare..valoare]
  • ORA-00375: Nu se poate obține valoarea implicită db_block_size
  • ORA-00376: Fișierul [șir] nu poate fi citit în acest moment
  • ORA-00377: Copierea de rezervă frecventă a fișierului [șir] cauza blocajului în operațiunile de scriere
  • ORA-00378: Cache-ul tampon nu poate fi creat așa cum este specificat
  • ORA-00379: Nu există buffere libere în memoria cache [șir] pentru blocul [șir] K
  • ORA-00380: Nu se poate specifica db_[value]k_cache_size [valoarea]K este dimensiunea standard a blocului.
  • ORA-00381: Nu se pot folosi parametrii vechi și noi pentru a specifica dimensiunea memoriei cache a tamponului
  • ORA-00382: %s dimensiune bloc nevalidă, valoare validă [valoare..valoare]
  • ORA-00383: Valoarea implicită a memoriei cache nu poate fi redusă la zero
  • ORA-00384: memorie insuficientă pentru a extinde memoria cache
  • ORA-00390: Jurnalul [șir] al firului [șir] este șters și nu poate fi jurnalul curent
  • ORA-00391: Toate firele trebuie să treacă la noul format de jurnal de acum înainte
  • ORA-00392: Jurnalul [șir] al firului de execuție [șir] a fost șters, operațiunea nu este permisă
  • ORA-00393: Jurnalul [șir] al firului [șir] este necesar pentru a recupera o bază de date offline.
  • ORA-00394: Jurnalul disponibil este reutilizat în timp ce este arhivat
  • ORA-00395: Jurnalul pentru clona bazei de date trebuie redenumit
  • ORA-00396: eroarea [șir] necesită revenire la recuperarea cu o singură trecere
  • ORA-00397: Recuperarea instanței a fost întreruptă cu eroare
  • ORA-00398: Recuperarea a fost întreruptă înainte de reconfigurarea corectă
  • ORA-00399: Descrierea modificării corupte în jurnalul de refacere

Erori de inițializare a bazei de date ORA-00400 - ORA-00499

  • ORA-00400: Valoare [șir] nevalidă pentru parametrul [șir]
  • ORA-00401: Valoarea parametrului [valoare] nu este acceptată de această versiune
  • ORA-00402: Modificările bazei de date la versiunea [șir] nu pot fi utilizate de către versiunea [șir]
  • ORA-00403: [șir] nu este același cu alte instanțe de [șir]
  • ORA-00404: Fișierul convertit nu a fost găsit: [șir]
  • ORA-00405: Tip de compatibilitate [șir]
  • ORA-00406: Parametrul COMPATIBLE necesită [valoare] sau mai mare
  • ORA-00407: Upgrade rollback de la versiunea [șir].[șir] la versiunea [șir].[șir] nu este permisă
  • ORA-00408: parametrul [valoare] setat la TRUE
  • ORA-00436: Oracle nu este licențiat. Contactați Oracle pentru asistență
  • ORA-00437: Caracteristicile avansate Oracle nu sunt licențiate. Contactați Oracle pentru asistență
  • ORA-00438: Opțiunea [șir] nu este setată
  • ORA-00439: Capacitate suplimentară nu este permisă: [șir]
  • ORA-00443: Procesul de fundal [șir] nu rulează
  • ORA-00444: Procesul de fundal [șir] s-a blocat la pornire
  • ORA-00445: Procesul de fundal [șir] nu a început după [șir] secunde
  • ORA-00446: Procesul de fundal a început când nu era de așteptat
  • ORA-00447: Eroare critică în procesul de fundal
  • ORA-00448: Încheierea normală a procesului de fundal
  • ORA-00449: Procesul de fundal [șir] s-a încheiat brusc cu eroare [șir]
  • ORA-00470: Procesul LGWR a ieșit cu eroare
  • ORA-00471: Procesul DBWR a ieșit cu eroare
  • ORA-00472: Procesul PMON sa încheiat cu o eroare
  • ORA-00473: Procesul ARCH sa încheiat cu o eroare
  • ORA-00474: Procesul SMON a ieșit cu eroare
  • ORA-00475: Procesul TRWR sa încheiat cu o eroare
  • ORA-00476: Procesul RECO sa încheiat cu o eroare
  • ORA-00477: Procesul SNP* a ieșit cu eroare
  • ORA-00478: Procesul SMON a ieșit cu eroare [șir]
  • ORA-00480: Procesul LCK* sa încheiat cu o eroare
  • ORA-00481: Procesul LMON a ieșit cu eroare
  • ORA-00482: Procesul LMD* a ieșit cu eroare
  • ORA-00483: Procesul sa încheiat anormal în timpul opririi
  • ORA-00484: Procesul LMS* a ieșit cu eroare
  • ORA-00485: Procesul DIAG a ieșit cu eroare [șir]

Mesaje de eroare ORA-00500 - ORA-00599

  • ORA-00568: Numărul maxim de întreruperi ale handlerului a fost depășit

Erori de recuperare în caz de dezastru ORA-00600 - ORA-00699

  • ORA-00600: Cod de eroare intern, argumente [șir], [șir], [șir], [șir], [șir], [șir], [șir], [șir]
  • ORA-00601: Conflict pur de blocare
  • ORA-00602: Excepție software internă
  • ORA-00603: Sesiunea de server Oracle a fost încheiată cu o eroare fatală
  • ORA-00604: a apărut o eroare la nivel recursiv SQL [șir]
  • ORA-00606: Cod de eroare intern
  • ORA-00607: Eroare internă la schimbarea blocului de date

Erori de dicționar ORA-00700 - ORA-00799

  • ORA-00701: Obiectul necesar pentru a porni baza de date nu poate fi modificat
  • ORA-00702: Versiunea Loader [șir] este incompatibilă cu versiunea [șir]
  • ORA-00703: S-a depășit numărul maxim de blocări în memoria cache a rândurilor de instanță
  • ORA-00704: Procesul de pornire sa încheiat anormal
  • ORA-00705: Stare nevalidă în timpul pornirii; opriți instanța și reporniți-o
  • ORA-00706: Eroare la modificarea formatului fișierului [șir]

Erori comune ORACLE ORA-00800 - ORA-00899

  • ORA-0800: procesul de scriere buffer nu este activ(procesul de scriere în buffer nu este activ).
    Cauză: Problema este legată de o încercare de a porni ORACLE, care a cauzat anularea procesului de tamponare. Acest mesaj este de obicei emis împreună cu un mesaj de eroare de sistem care explică motivul eșecului.
    Acțiune: Utilizați mesajul de eroare de sistem (dacă există unul) pentru a determina cauza erorii. Dacă nu există nicio eroare de sistem, consultați ghidul de instalare ORACLE pentru o listă de cerințe. Asigurați-vă că toate numele logice ORACLE sunt atribuite corect, că există suficient spațiu liber pe disc în directorul ORACLE și că există un număr suficient de secțiuni și pagini globale. De asemenea, asigurați-vă că bugetul ORACLE are prioritatea necesară. Dacă sursa problemei nu este determinată, consultați software-ul de instalare corespunzător.
  • ORA-0801: după procesul de scriere a imaginii nu este activ.
    Cauză: Această proprietate nu este acceptată.
    Acțiune: Consultați software-ul de instalare corespunzător.
  • ORA-0802: zonă de context nevalidă.
    Cauză
    Acțiune
  • ORA-0805: opiodr: număr de nivel de recursivitate inconsecvent.
    Cauză:Acest mesaj indică o eroare internă care nu poate apărea în timpul funcționării normale.
    Acțiune: Contactați asistența de instalare adecvată cu o descriere detaliată a problemei.
  • ORA-0806: înainte ca procesul de imagine nu este activ.
    Cauză
    Acțiune
  • ORA-0807: procesul de curățare nu este activ.
    Cauză: Problema este că o încercare de a porni ORACLE a cauzat oprirea procesului de previzualizare. Acest mesaj este de obicei emis împreună cu un mesaj de eroare de sistem care explică motivul eșecului.
    Acțiune: Utilizați mesajul de eroare de sistem (dacă există unul) pentru a determina cauza erorii. Dacă nu există nicio eroare de sistem, consultați ghidul de instalare ORACLE pentru sistemul dvs. de operare pentru a verifica instalarea corectă. Dacă sursa problemei nu este determinată, consultați software-ul de instalare corespunzător.
  • ORA-0809: opispf: cod de funcție specială nevalid.
    Cauză:Acest mesaj indică o eroare internă care nu poate apărea în timpul funcționării normale.
    Acțiune: Contactați asistența de instalare adecvată cu o descriere detaliată a problemei.
  • ORA-0810: opiomc: zona de context nu remapată la adresa inițială.
    Cauză:Acest mesaj indică o eroare internă care nu poate apărea în timpul funcționării normale.
    Acțiune: Contactați asistența de instalare adecvată cu o descriere detaliată a problemei.
  • ORA-0811: procesul readhead nu este activ.
    Cauză: Problema este legată de o încercare de a porni ORACLE, care a determinat întreruperea procesului de citire înainte. Acest mesaj este de obicei emis împreună cu un mesaj de eroare de sistem care explică motivul eșecului.
    Acțiune: Utilizați mesajul de eroare de sistem (dacă există unul) pentru a determina cauza erorii. Dacă nu există nicio eroare de sistem, consultați ghidul de instalare ORACLE pentru sistemul dvs. de operare pentru a verifica instalarea corectă. Dacă sursa problemei nu este determinată, consultați software-ul de instalare corespunzător.
  • ORA-0813: eșec de afirmare (adăugare eliminată).
    Cauză:Acesta este un mesaj de eroare intern legat de ORACLE SORT. Acest lucru nu se poate întâmpla în timpul funcționării normale.
    Acțiune: Contactați asistența de instalare adecvată cu o descriere detaliată a problemei.
  • ORA-0814: ltbdrv: mod de blocare ilegal.
    Cauză:Acest mesaj indică o eroare internă care nu poate apărea în timpul funcționării normale.
    Acțiune: Contactați asistența de instalare adecvată cu o descriere detaliată a problemei.
  • ORA-00816: traducerea mesajului de eroare a eșuat.
    Cauză:Acest mesaj indică o eroare internă care nu poate apărea în timpul funcționării normale.
    Acțiune: Contactați asistența de instalare adecvată cu o descriere detaliată a problemei.
  • ORA-0817: prsgkw: indicativul de eroare internă nu a fost găsit.
    Cauză:Acest mesaj indică o eroare internă care nu poate apărea în timpul funcționării normale.
    Acțiune: Contactați asistența de instalare adecvată cu o descriere detaliată a problemei.
  • ORA-0818: opispf: osf prea mare.
    Cauză:Acest mesaj indică o eroare internă care nu poate apărea în timpul funcționării normale.
    Acțiune: Contactați asistența de instalare adecvată cu o descriere detaliată a problemei.

Erori de sintaxă ORA-00900 - ORA-00999

  • ORA-00900: Instrucțiune SQL nevalidă.
    Cauză: Declarația pe care ați introdus-o nu a fost recunoscută ca o comandă SQL validă.
    Acțiune: Verificați greșelile de scriere, asigurați-vă că cuvintele cheie ale comenzii SQL încep cu unul dintre următoarele cuvinte: ALTER, AUDIT, CREATE, DELETE, DROP, GRANT, INSERT, NOAUDIT, RENAME, REVOKE, SELECT, UPDATE, LOCK, VALIDATE. Alte comenzi vor cauza această eroare.
  • ORA-00901: Sintaxa comenzii CREATE nevalidă / Comanda create invalidă.
    Cauză: A fost utilizată o opțiune CREATE nevalidă în comanda CREATE.
    Acțiune: Verificați dacă există greșeli de scriere, asigurați-vă că comanda CREATE este urmată de una dintre următoarele opțiuni: INDEX, PARTITION, SPACE DEFINITION, SYNONYM, TABLE sau VIEW.
  • ORA-00902: Tip de date nevalid.
    Cauză: Tipul de date introdus în instrucțiunea CREATE sau ALTER TABLE nu este valid.
    Acțiune: Verificați dacă există greșeli de scriere, asigurați-vă că fiecare nume de coloană este urmat de unul dintre următoarele tipuri de date: DATA, CHAR, NUMBER, RAW, LONG sau LONG RAW.
  • ORA-00903: Nume tabel nevalid.
    Cauză: Tabelele introduse sau numele grupurilor nu există sau sunt nevalide. Acest mesaj apare și într-un grup dacă este specificat un nume de grup invalid sau inexistent în comanda ALTER/DROP CLUSTER.
    Acțiune: Verificați dacă există greșeli de scriere. Un nume de grup valid trebuie să înceapă cu o literă și să conțină numai litere, cifre și caracterele speciale $, # și _. Numele nu trebuie să aibă mai mult de 30 de caractere și să nu fie un cuvânt rezervat.
  • ORA-00904: Nume de coloană nevalid.
    Cauză: Numele coloanei introdus lipsește sau este invalid.
    Acțiune: introduceți un nume corect de coloană. Un nume valid trebuie să înceapă cu o literă și să conțină numai litere, cifre și caractere speciale: $, # și _. Numele nu trebuie să depășească 30 de caractere și să nu fie un cuvânt rezervat. Dacă conține alte caractere, trebuie să fie între ghilimele duble.
  • ORA-00905: Cuvântul cheie lipsește.
    Cauză: lipsește cuvântul cheie obligatoriu.
    Acțiune: Verificați sintaxa comenzii și adăugați cuvintele cheie lipsă.
  • ORA-00906: Lipsește paranteza din stânga.
    Cauză: lipsește o paranteză din stânga obligatorie. Comenzile de bază (cum ar fi CREATE TABLE, CREATE CLUSTER și INSERT) necesită o listă de elemente incluse în paranteze. Parantezele sunt, de asemenea, necesare în jurul secvențelor din clauza WHERE și din tabelul UPDATE coloana SET = (SELECT ...).
    Acțiune: Verificați sintaxa comenzii și introduceți parantezele lipsă.
  • ORA-00907: lipsește paranteza dreaptă
    Cauză: O paranteză din stânga a fost introdusă fără o paranteză de închidere din dreapta sau informațiile anterioare au fost incluse în paranteze. Toate parantezele trebuie să fie împerecheate.
    Acțiune: Introduceți o paranteză de închidere dreaptă.
  • ORA-00908: lipsește cuvântul cheie NULL
    Cauză: Într-o comandă CREATE sau ALTER TABLE, NOT a fost introdus pentru a indica faptul că nu sunt permise valori nule în acea coloană, dar cuvântul cheie NULL a fost omis.
    Acțiune: Dacă aveți nevoie de o valoare în această coloană, înlocuiți cuvântul cheie NOT cu NOT NULL.
  • ORA-00909: număr nevalid de argumente
    Cauză: O referire la o funcție ORACLE încorporată a fost făcută cu un număr incorect de argumente Toate funcțiile ORACLE, cu excepția SYSDATE, necesită cel puțin un argument.
    Acțiune: Verificați sintaxa comenzii și introduceți numărul necesar de argumente.
  • ORA-00910: lungimea specificată prea mare pentru coloana CHAR
    Cauză: Dimensiunea câmpului de caractere nu este specificată sau este specificată incorect. Trebuie să specificați o lungime maximă pentru fiecare coloană de caractere. Această lungime poate varia de la 0: la 240: .
    Acțiune: Introduceți lungimea maximă din intervalul 0 la 240: .
  • ORA-00911: caracter nevalid
    Cauză: Semnul special este incorect sau valabil doar în anumite locuri. Dacă într-un nume este folosit un caracter special (altul decât $, # și _) și numele nu este cuprins între ghilimele duble ("), acest mesaj va apărea.
    Acțiune: Eliminați caracterul incorect din comandă.
  • ORA-00912: operație pop operand fără operanzi pe stivă
    Cauză: Acest mesaj indică o eroare internă care nu poate apărea în timpul funcționării normale.
    Acțiune: Contactați asistența de instalare adecvată cu o descriere detaliată a problemei.
  • ORA-00913: prea multe valori
    Cauză: Comanda presupune două seturi identice de valori, dar al doilea set de articole are mai multe elemente decât primul. De exemplu: o subinterogare într-o clauză WHERE sau HAVING poate avea prea multe coloane sau pot exista mai multe coloane într-o clauză VALUES sau SELECT decât într-o clauză INSERT.
    Acțiune: Verificați numărul de articole și modificați-le.
  • ORA-00914: lipsește cuvântul cheie ADD
    Cauză: Comanda ALTER PARTITION a fost introdusă fără cuvântul cheie ADD.
    Acțiune: Verificați sintaxa comenzii și încercați din nou.
  • ORA-00915: accesul la rețea la tabelul dicționarului nu este permis în prezent
    Cauză:Acest mesaj indică o eroare internă care nu poate apărea în timpul funcționării normale.
    Acțiune: Contactați asistența de instalare adecvată cu o descriere detaliată a problemei.
  • ORA-00917: lipsește virgulă lipsește virgulă
    Cauză: lipsește o virgulă într-o listă de coloane sau într-o listă de valori într-o instrucțiune INSERT sau într-o listă de forma ((c,d),(e< f),...).
    Acțiune: Verificați sintaxa din instrucțiunea dvs. SQL și adăugați o virgulă lipsă dacă este necesar.
  • ORA-00918: coloană definită ambiguu
    Cauză: Coloana folosită pentru alăturare există în mai multe tabele. La alăturare, orice coloană prezentă în mai mult de un tabel trebuie să conțină numele tabelului. Numele coloanei trebuie specificat după cum urmează: TABLE.COLUM sau TABLE_ALIAS.COLUMN, EMP.DEPTNO sau E.DEPTNO, și nu doar EMP.
    Acțiune: Introduceți numele tabelului în numele coloanei înainte de punct sau un nume alternativ de tabel, așa cum se arată mai sus.
  • ORA-00919: funcție invalidă
    Cauză: Intrarea asemănătoare unei funcții, tip funcția(argumentul), nu este recunoscută ca o funcție ORACLE.
    Acțiune: Consultați manualul pentru o listă de nume de funcții valide.
  • ORA-00920: operator relațional nevalid
    Cauză: Căutați sarcina cu o declarație de condiție nevalidă sau lipsă.
    Acțiune: introduceți o declarație condiționată validă. Sunt permisi următorii operatori relaționali:=, !=,<>, >, >=, <, <=,IN, IS, NULL, LIKE, и BETWEEN.
  • ORA-00921: sfârșit neașteptat al comenzii SQL
    Cauză: Comanda SQL nu este completă. A fost introdusă o parte din comanda corectă, dar lipsea cel puțin o componentă majoră.
    Acțiune: Verificați sintaxa comenzii și introduceți componentele lipsă.
  • ORA-00922: opțiune nevalidă opțiune nevalidă
    Cauză: O opțiune nevalidă a fost descrisă în definiția coloanei sau în definiția zonei.
    Acțiune: eliminați opțiunea nevalidă din definiția coloanei sau zonei. O opțiune validă care descrie o coloană este NOT NULL pentru a indica faptul că coloana nu poate conține valori NULL. Orice altceva care urmează tipului de date, altul decât o virgulă sau o paranteză de închidere, este clasificat ca o opțiune nevalidă. Când specificați o lungime pentru DATE sau un tip de date LONG, veți primi acest mesaj de eroare. Singurele opțiuni valide din descrierea definiției domeniului de aplicare sunt INITIAL, INCREMENT și MAXEXTENTS, (pentru DATAPAGES și INDEXPAGES) și PCTFREE (doar pentru DATAPAGES).
  • ORA-00923: lipsește cuvântul cheie FROM
    Cauză: Într-o comandă SELECT sau REVOKE, cuvântul cheie FROM lipsește, este greșit sau este scris greșit. Cuvântul cheie FROM trebuie să urmeze elementul selectat într-o comandă SELECT sau numele tabelului selectat într-o comandă REVOKE.
    Acțiune: Introduceți cuvântul FFROM în loc. Lista selectată poate fi ea însăși greșită. Asigurați-vă că utilizați ghilimele simple pentru a delimita numele alternativ și dacă numele alternativ este sau nu un cuvânt rezervat.
  • ORA-00924: lipsește cuvântul cheie BY
    Cauză: cuvântul cheie BY lipsește din expresiile GROUP BY, ORDER BY sau CONNECTED BY. În plus, în comanda GRANT, cuvântul INDENTIFIED trebuie urmat de BY.
    Acțiune: Introduceți corect cuvântul BY.
  • ORA-00925: lipsește cuvântul cheie INTO
    Cauză: a fost folosită o comandă INSERT fără cuvântul cheie INTO.
    Acțiune: Înlocuiți INSERT cu INSERT INTO.
  • ORA-00926: lipsește cuvântul cheie VALUES
    Cauză: instrucțiunea INSERT fără cuvinte cheie VALUES sau SELECT. Expresia INSERT INTO trebuie urmată de o expresie VALUES sau de o secvență SELECT.
    Acțiune: Introduceți o expresie sau o secvență VALUES după expresia INSERT INTO.
  • ORA-00927: lipsește semnul egal
    Cauză: Semnul egal lipsește în unul dintre următoarele locuri: * în instrucțiunea SET a comenzii UPDATE * după! pentru a indica inegalitatea * în expresia PCTFREE a comenzii CREATE INDEX
    Acțiune: Introduceți un semn egal.
  • ORA-00928: lipsește cuvântul cheie SELECT
    Cauză: Comanda CREATE VIEW trebuie să includă o secvență SELECT.
    Acțiune: Introduceți instrucțiunea SELECT necesară în comanda CREATE VIEW.
  • ORA-00929: lipsa punct
    Cauză:Acest mesaj indică o eroare internă care nu poate apărea în timpul funcționării normale.
    Acțiune: Contactați asistența de instalare adecvată cu o descriere detaliată a problemei.
  • ORA-00930: asterisc lipsă asterisc lipsă *
    Cauză:Acest mesaj indică o eroare internă care nu poate apărea în timpul funcționării normale.
    Acțiune: Contactați asistența de instalare adecvată cu o descriere detaliată a problemei.
  • ORA-00931: identificatorul lipsă
    Cauză:Acest mesaj indică o eroare internă care nu poate apărea în timpul funcționării normale.
    Acțiune: Contactați asistența de instalare adecvată cu o descriere detaliată a problemei.
  • ORA-00932: tipuri de date inconsistente
    Cauză: S-a încercat adăugarea unui câmp de caractere la un câmp de date. Datele pot fi adăugate numai câmpurilor numerice.
    Acțiune: convertiți un câmp de caractere într-un câmp numeric utilizând funcția TO_NUMBER înainte de a adăuga câmpul de date.
  • ORA-00933: Comanda SQL nu sa încheiat corect
    Cauză: Comanda SQL sa încheiat cu o expresie nevalidă. De exemplu: o instrucțiune ORDER BY poate fi inclusă într-o comandă CREATE VIEW sau INSERT. Totuși, ORDER BY nu trebuie să fie utilizată pentru a crea o vizualizare ulterioară sau să fie inclusă în ordinea principală.
    Acțiune: Verificați sintaxa comenzii și eliminați componentele inutile. Ar trebui să puteți duplica expresiile șterse cu alte comenzi. De exemplu, dacă doriți să organizați linii de revizuire, procedați în același mod ca atunci când solicitați o revizuire, dar nu ca atunci când creați una. Această eroare poate apărea și atunci când se utilizează SQL*Forms dacă continuarea liniei este nealiniată. Verificați decalajele și eliminați spațiile. Trebuie să utilizați terminațiile SQL corespunzătoare dacă utilizați o expresie I cu un singur argument, de exemplu: IN(X). Expresia IN trebuie să utilizeze cel puțin două argumente.
  • ORA-00934: funcția set nu este permisă aici
    Cauză: Una dintre funcțiile de grup (cum ar fi AVG, SUM, MAX, MIN, COUNT) a fost utilizată în clauza WHERE sau GROUP BY.
    Acțiune: Eliminați funcția de grup din clauza WHERE sau GROUP BY. Puteți obține rezultatul dorit prin includerea funcției într-o clauză de interogare sau HAVING.
  • ORA-00935: funcția set este imbricată prea adânc
    Cauză:Acest mesaj indică o eroare internă care nu poate apărea în timpul funcționării normale.
    Acțiune: Contactați asistența de instalare adecvată cu o descriere detaliată a problemei.
  • ORA-00936: lipsește expresia
    Cauză: lipsește o parte obligatorie a expresiei. De exemplu, comanda SELECT este introdusă fără o listă de coloane sau cu o expresie de tip incompatibil (SAL+). Acest lucru se poate întâmpla și dacă cuvintele rezervate precum SELECT TABLE sunt omise.
    Acțiune: Verificați sintaxa comenzii și introduceți comenzile lipsă.
  • ORA-00937: nici o funcție de set de grup
    Cauză: o interogare nu poate include atât o funcție de grup (AVG, SUM,COUNT,MIN sau MAX) cât și propria sa expresie de coloană, cu excepția cazului în care expresia de coloană este inclusă într-o clauză GROUP BY.
    Acțiune: Eliminați expresia coloanei sau funcția de grup din interogare sau adăugați o clauză GROUP BY care include enumerarea coloanei.
  • ORA-00938: nu sunt suficiente argumente pentru funcție
    Cauză: Prea puține argumente sunt descrise în funcție.
    Acțiune: Verificați sintaxa funcției și adăugați toate argumentele necesare.
  • ORA-00939: prea multe argumente pentru functio
    Cauză: Prea multe argumente sunt descrise în funcție.
    Acțiune: Verificați sintaxa funcției și descrieți doar argumentele necesare.
  • ORA-00940: comandă ARTER nevalidă și comandă ALTER invalidă
    Cauză: Opțiunea ALTER descrisă este invalidă. Numai secțiunile și tabelele pot fi nerepetate. O comandă ALTER validă trebuie să înceapă cu una dintre următoarele opțiuni: ALTER TABLE sau ALTER PARTITION.
    Acțiune: Verificați sintaxa corectă pentru comanda ALTER.
  • ORA-00941: lipsește numele clusterului
    Cauză: Numele grupului fie lipsește, fie este incorect.
    Acțiune: Descrieți numele corect al grupului. Un nume de grup valid începe cu o literă, nu conține mai mult de 30 de caractere și constă numai din litere, cifre și caracterele speciale $, _ și #. Nu ar trebui să fie un cuvânt rezervat. Numele trebuie tipărit imediat după cuvântul cheie CREATE CLUSTER.
  • ORA-00942: tabelul sau vizualizarea nu există
    Cauză: Acest tabel sau prezentare generală nu există. sau a fost introdus un nume de vizualizare în locul unui tabel. Tabelele și prezentările de ansamblu ale utilizatorilor existente pot fi vizualizate în prezentarea generală a TAB.
    Acțiune: Verificați dacă nu există greșeli de scriere și dacă ați introdus recenzia numelui în loc de tabel. Introduceți numele existente.
  • ORA-00943: clusterul nu există
    Cauză: Resursa utilizator nu este inclusă în grup sub numele descris.
    Acțiune: Descrieți un nume de grup valid imediat după cuvântul cheie CLUSTER.
  • ORA-00944: număr insuficient de coloane grupate
    Cauză: S-a încercat crearea unui tabel cu mai puține coloane grupate decât este descris în comanda CREATE CLUSTER. Clauza CLUSTER a comenzii CREATE TABLE trebuie să descrie toate coloanele grupate definite când grupul a fost creat. Folosind numele grupului, puteți vizualiza toate coloanele grupului din tabelul dicționarului COL.
    Acțiune: Descrieți toate numele coloanelor în comanda CREATE TABLE.
  • ORA-00945: coloana grupată specificată nu există
    Cauză: Coloana descrisă în expresia instrucțiunii CREATE TABLE nu este o coloană a acestui tabel.
    Acțiune: Repetați folosind numele coloanei tabelului.
  • ORA-00946: lipsește cuvântul cheie TO
    Cauză: Comanda GRANT a fost introdusă fără cuvântul cheie TO sau a fost folosită forma greșită a comenzii.
    Acțiune: Verificați sintaxa celor două forme principale ale comenzii GRANT (acordarea accesului la baza de date și acordarea de privilegii). Introduceți corect cuvântul cheie TO în comanda GRANT.
  • ORA-00947: valori insuficiente
    Cauză: instrucțiunea SQL necesită două seturi identice de valori, iar al doilea set conține mai puține valori. Acest lucru se poate întâmpla și dacă SELECT imbricat găsește mai puține coloane în expresiile WHERE sau HAVING, ca în: WHERE(A,B) IN (SELECT C FROM..) Este posibilă și o eroare în instrucțiunea INSERT în care expresiile VALUES sau SELECT nu conține suficiente valori pentru INSERT, ca în: INSERT INTO tabelul (A,B) VALUES ("C").
    Acțiune: Verificați dimensiunea fiecărui set și faceți-le egale ca număr.
  • ORA-00948: Declarația ALTER CLUSTER nu mai este acceptată
    Cauză: Instrucțiunea ALTER CLUSTER a fost eliminată
    Acțiune: Pentru a adăuga date dintr-un tabel, utilizați următorul set de instrucțiuni SQL: CREATE TABLE<новая_таблица>ALEGE DIN<старая_таблица>CLUSTER<имя_группы>CĂDERE BRUSCA<старая_таблица>și REDENUMIȚI TABELUL<новая_таблица> <старая_таблица>.
  • ORA-00949: trimitere ilegală la baza de date externă
    Cauză:Acest mesaj indică o eroare internă care nu poate apărea în timpul funcționării normale.
    Acțiune: Contactați asistența de instalare adecvată cu o descriere detaliată a problemei.
  • ORA-00950: opțiune de eliminare nevalidă opțiune de eliminare invalidă
    Cauză: Nu a existat nicio opțiune DROP, cum ar fi TABLE, VIEW, SYNONYM, CLUSTER sau SPACE după comanda DROP.
    Acțiune: Verificați sintaxa comenzii și utilizați formatul corect pentru opțiunea DROP.
  • ORA-00951: cluster nu este gol
    Cauză: Comanda DROP descrie un grup nevid. Un grup poate fi șters numai dacă nu conține tabele. Eliminați un tabel dintr-un grup folosind comanda DROP TABLE.
    Acțiune: Eliminați toate tabelele din grup și apoi utilizați comanda DROP CLUSTER.
  • ORA-00952: lipsește cuvântul cheie GROUP
    Cauză: Grupul nu este implementat corect.
    Acțiune: Nu este necesară nicio acțiune utilizator.
  • ORA-00953: lipsă numele indexului - lipsește numele indexului
    Cauză: În comenzile CREATE, DROP, VALIDATE INDEX, numele indexului este incorect sau lipsește.
    Acțiune: Tipăriți numele de index corect după cuvântul cheie INDEX. Dacă doriți să ștergeți sau să corectați un index, verificați numele vizualizând prezentarea generală a INDEXurilor. Dacă trebuie să creați un index nou, verificați mai întâi sintaxa.
  • ORA-00954: lipsește cuvântul cheie INDENTIFIED
    Cauză: Comanda GRANT CONNECTION a fost emisă fără cuvântul cheie INDENTIFIED.
    Acțiune: Introduceți cuvântul cheie INDENTIFIED după numele de utilizator. Formatul comenzii este următorul: GRANT CONNECTION TO<список пользователей>INDETIFICAT DE<пароль списка>.
  • ORA-00955: numele este deja folosit de obiectul existent
    Cauză: S-a încercat crearea unui tabel, vizualizare, grup sau sinonim care există deja. Fiecare nume de tabel de utilizator trebuie să fie distinct de alte nume de tabel, vizualizări, grupuri sau sinonime deținute de alți utilizatori.
    Acțiune: fie introduceți un nume unic de tabel, vizualizare, grup sau sinonim, fie editați sau ștergeți unul existent.
  • ORA-00956: opțiune de auditare nevalidă - opțiune de auditare invalidă
    Cauză: a existat o opțiune de verificare nevalidă.
    Acțiune: Verificați sintaxa comenzii și încercați din nou cu opțiunea corectă.
  • ORA-00957: nume de coloană duplicat
    Cauză: Numele coloanei a fost specificat de două ori în comanda CREATE sau INSERT. Numele unei coloane dintr-un tabel, vizualizare sau grup trebuie să fie unic.
    Acțiune: Înlocuiți numele coloanei din comanda CREATE cu unul nou unic. În comanda INSERT, eliminați numele duplicate.
  • ORA-00958: lipsă cuvântul cheie CHECK - lipsește cuvântul cheie CHECK
    Cauză: CHECK lipsește imediat după cuvântul cheie WHITH din clauza WITH CHECK OPTION a instrucțiunii CREATE VIEW.
    Acțiune: Verificați sintaxa instrucțiunii SQL.
  • ORA-00959: numele definiției spațiului nu există
    Cauză: Comanda A DROP SPACE descrie un nume de zonă inexistent.
    Acțiune: Folosiți numele de definiții ale domeniului de aplicare existente. Pentru a vedea numele existente, selectați SNAME din SPACES.
  • ORA-00960: valoare INITIALĂ invalidă - valoare INITIALĂ invalidă
    Cauză: în comanda CREATE SPACE a fost specificată o valoare nevalidă pentru pagina de date de început sau pentru numărul paginii de indexare. Această valoare trebuie să fie de cel puțin 3.
    Acțiune: Introduceți o valoare INITIALĂ de cel puțin 3.
  • ORA-00961: valoare INCREMENT invalidă - valoare INCREMENT invalidă
    Cauză: a fost descris un număr incorect de pași pentru pagina de date sau pagina de indexare. Valoarea pasului trebuie să fie mai mare decât 3.
    Acțiune: introduceți o valoare INCREMENT mai mare de 3.
  • ORA-00962: valoare PCTFREE nevalidă - valoare PCTFREE nevalidă
    Cauză: O valoare incorectă pentru procentul de spațiu liber a fost descrisă în definiția SPACE. Această valoare trebuie să fie în intervalul de la 1: la 99.
    Acțiune: Introduceți o valoare PCTFREE între 1: și 99.
  • ORA-00963: valoare SIZE nevalidă
    Cauză: A fost specificată o valoare incorectă a dimensiunii blocului logic în comanda CREATE CLUSTER. Dimensiunea blocului logic este folosită pentru a stoca eficient grupuri mici de date.
    Acțiune: Descrieți valoarea acceptabilă a dimensiunii blocului logic (mai mare decât 0).
  • ORA-00964: nume de definire a spațiului nevalid
    Cauză: A fost specificat un nume de zonă invalid în comanda CREATE/DROP SPACE sau CREATE TABLE sau a fost specificat un nume de zonă inexistent în comanda CREATE TABLE.
    Acțiune: Introduceți numele corect al zonei. Un nume valid începe cu o literă, nu conține mai mult de 30 de caractere și constă numai din litere, cifre și caracterele speciale $, _ și #. Nu ar trebui să fie un cuvânt rezervat. Dacă numele dvs. este corect, este posibil să fi șters accidental definiția domeniului TEMP.
  • ORA-00965: numele definiției spațiului există deja - numele definiției spațiului există deja
    Cauză: Un nume de spațiu existent a fost folosit în comanda CREATE SPACE. Numele definițiilor zonei trebuie să fie unice.
    Acțiune: Introduceți un nume unic pentru zonă.
  • ORA-00966: lipsă cuvântul cheie TABLE - lipsește cuvântul cheie TABLE
    Cauză: a fost folosită o comandă LOCK și cuvântul cheie TABLE a fost scris greșit, omis sau plasat greșit. Comanda LOCK trebuie să înceapă astfel: LOCK TABLE<имя таблицы> ... .
    Acțiune: Introduceți cuvântul cheie TABLE în locul potrivit.
  • ORA-00968: lipsă cuvântul cheie INDEX - cuvântul cheie INDEX a fost omis
    Cauză: a fost folosită comanda CREATE UNIQUE, iar cuvântul cheie INDEX a fost scris greșit, omis sau plasat greșit.
    Acțiune: Verificați sintaxa și încercați din nou.
  • ORA-00969: lipsește cuvântul cheie ON - lipsește cuvântul cheie O
    Cauză: a fost folosită o comandă GRANT sau CREATE INDEX și cuvântul cheie ON a fost scris greșit, omis sau plasat greșit.
    Acțiune: Introduceți cuvântul cheie ON în locul potrivit.
  • ORA-00970: lipsește cuvântul cheie WITH - lipsește cuvântul cheie WITH
    Cauză: Cuvântul cheie START a fost folosit fără WITH. Ambele cuvinte cheie sunt necesare în instrucțiunea START WITH pentru interogare.
    Acțiune: Înlocuiți cuvântul START cu START WITH.
  • ORA-00971: lipsă cuvântul cheie SET - lipsește cuvântul cheie SET
    Cauză: În comanda UPDATE, cuvântul cheie SET a fost scris greșit, a fost omis sau plasat incorect.
    Acțiune: Introduceți cuvântul cheie SET după numele tabelului care se modifică.
  • ORA-00972: identificatorul este prea mare
    Cauză: Numele obiectului bazei de date are mai mult de 30 de caractere (obiectele bazei de date includ tabele, grupuri, vizualizări, indecși, sinonime, domenii și nume de utilizator.
    Acțiune: Scurtați numele la maximum 30: caractere.
  • ORA-00973: estimare nevalidă a numărului de rânduri - estimare incorectă a numărului de rânduri
    Cauză: Valoarea numărului de rânduri descrisă în comanda CREATE INDEX este un număr mai mic decât 0.
    Acțiune: Descrieți valoarea corectă (mai mare decât 0).
  • ORA-00974: factor de încărcare a blocului de index nevalid (procent) - factor de încărcare a blocului de index incorect (procent)
    Cauză: Procentul din volumul alocat descris în comanda CREATE INDEX a zonei nu aparține intervalului de la 1: la 90%.
    Acțiune: Introduceți o valoare PCTFREE de la 1 la 90. Valoarea implicită este 10.
  • ORA-00975: Data + data nu sunt permise - date + date nu sunt permise
    Cauză: Încercarea de a adăuga două câmpuri de date împreună. Datele pot fi atașate numai câmpurilor numerice și nu altor date.
    Acțiune: Adăugați un câmp de date la un câmp numeric.
  • ORA-00977: opțiune de auditare duplicat
    Cauză: Aceeași opțiune de control a fost descrisă din nou.
    Acțiune: Eliminați descrierea de control inutilă.
  • ORA-00978: funcție set imbricat fără GROUP BY - funcție de grup imbricat fără GROUP BY
    Cauză: O funcție de grup (cum ar fi MIN, MAX sau AVG) a fost utilizată în cadrul unei alte funcții de grup (cum ar fi MAX(COUNT(*))) fără o clauză GROUP BY corespunzătoare.
    Acțiune: fie adăugați o clauză GROUP BY, fie eliminați nivelul de imbricare exterior.
  • ORA-00979: nu o expresie expresio GROUP BY nu aparține GROUP BY
    Cauză: Clauza GROUP BY nu conține toate expresiile din clauza SELECT. Expresiile SELECT care nu sunt incluse în funcțiile de grup (COUNT, SUM, AVG, MAX, MIN) trebuie să fie listate în clauza GROUP BY.
    Acțiune: Includeți toate expresiile SELECT care nu sunt argumente pentru funcții de grup în clauza GROUP BY.
  • ORA-00980: traducerea sinonimului nu mai este valabilă
    Cauză: Sinonimul pe care l-ați folosit a fost pentru un tabel, vizualizare sau sinonim care a fost șters sau redenumit.
    Acțiune: Înlocuiți sinonimul cu numele tabelului, vizualizării, sinonimului pentru care a fost destinat. Sau recreați sinonimul pentru tabelele, vizualizările sau sinonimele corecte.
  • ORA-00981: nu se poate combina opțiunile de auditare a tabelului și la nivel de sistem
    Cauză: Simultan, opțiunea de lățime și tabelul și sistemul sunt descrise într-o declarație AUDIT.
    Acțiune: Corectați operatorul.
  • ORA-00982: semnul plus lipsă - semnul plus lipsă
    Cauză: La adăugare, nu există semnul plus (+) după paranteza din stânga. La unire, paranteza din stânga (deschisă) este interpretată ca descriind unirea și este de așteptat un semn plus. Pentru a descrie un atașament la o coloană, urmați descrierea coloanei cu un semn plus cuprins între paranteze (+).
    Acțiune: Sintaxa SQL corectă.
  • ORA-00984: coloana nu este permisă aici - coloanele nu sunt folosite aici
    Cauză: Numele coloanei a fost folosit acolo unde este interzis, cum ar fi clauza VALUES a instrucțiunii INSERT.
    Acțiune: Verificați sintaxa comenzii și utilizați numele coloanelor numai acolo unde este permis.
  • ORA-00985: nume program nevalid - nume program nevalid
    Cauză
    Acțiune
  • ORA-00986: nume de grup lipsă sau invalid(e) - nume de grup lipsă sau nevalid
    Cauză: Această proprietate nu este implementată.
    Acțiune: Nu este necesară nicio acțiune de utilizator.
  • ORA-00987: nume de utilizator lipsă sau invalid - nume de utilizator lipsă sau invalid
    Cauză: Numele de utilizator nu a fost descris în comanda GRANT sau unul dintre numele descrise este incorect. Numele de utilizator valide trebuie specificate după cuvântul TO din comanda GRANT. Un nume de utilizator valid începe cu o literă, nu conține mai mult de 30 de caractere și constă numai din litere, cifre și caracterele speciale $, _ și #. Nu ar trebui să fie un cuvânt rezervat.
    Acțiune: Descrieți un nume de utilizator valid (sau o listă de utilizatori) după cuvântul cheie TO din comanda GRANT.
  • ORA-00988: parole lipsă sau invalide - parole lipsă sau incorecte
    Cauză: Comanda GRANT descrie mai multe nume de utilizator decât parole. Trebuie specificată o parolă validă pentru fiecare utilizator listat în comanda GRANT.
    Acțiune: Introduceți parola corectă pentru fiecare utilizator.
  • ORA-00989: prea multe parole pentru numele de utilizator date - sunt introduse prea multe parole pentru utilizatori
    Cauză: Există mai multe parole decât nume de utilizator descrise în comanda GRANT. Trebuie introdusă o singură parolă pentru fiecare utilizator listat în comanda GRANT.
    Acțiune: introduceți același număr de utilizatori și parole.
  • ORA-00990: privilegiu lipsă sau invalid - privilegiu lipsă sau invalid
    Cauză: Comanda pentru privilegiile GRANT nu a descris niciun privilegiu sau unul dintre ele a fost incorect.
    Acțiune: introduceți unul sau mai multe privilegii valide. Sunt permise următoarele privilegii: SELECT, INSERT, DELETE, UPDATE, ALTER, INDEX, DROP, CLUSTER și ALL. Se pot acorda mai mult de un privilegiu introducându-le într-o listă separată prin virgule (,) sau folosind cuvântul ALL pentru a acorda toate privilegiile.
  • ORA-00991: format nerecunoscut pentru comanda GRANT - format nerecunoscut al comenzii GRANT
    Cauză: A fost introdusă o formă incorectă a comenzii GRANT.
    Acțiune: Verificați sintaxa comenzii Există două tipuri de comandă GRANT. Primul tip este folosit pentru a defini accesul utilizatorului la baza de date și ar trebui să aibă următorul format: GRANT CONNECT/RESOURCE/DBA TO<имя пользователя>IDENTIFICAT DE<пароль>. Trebuie să fie prezent cel puțin unul dintre cuvintele cheie CONNECT, RESOURCE sau DBA. Al doilea tip este folosit pentru a acorda privilegii obiectelor bazei de date și are formatul: GRANT<список привелегий>PE<обзор/ таблица>LA< индентификатор пользователя>/PUBLIC.
  • ORA-00992: format nerecunoscut pentru comanda REVOKE - format nerecunoscut al comenzii REVOKE
    Cauză: A fost introdusă o formă incorectă a comenzii REVOKE.
    Acțiune: Verificați sintaxa comenzii și încercați din nou.
  • ORA-00993: lipsă cuvântul cheie GRANT - cuvântul cheie GRANT a fost omis
    Cauză: Opțiunea WITH a fost declarată la sfârșitul comenzii GRANT fără cheia GRANT Pentru a acorda privilegii unui utilizator și permisiunea de a le acorda altor utilizatori, trebuie să utilizați opțiunea WITH GRANT OPTIO la sfârșitul comenzii GRANT.
    Acțiune: Înlocuiți cuvântul cheie WITH cu WITH GRANT OPTION.
  • ORA-00994: lipsește cuvântul cheie OPTION - lipsește cuvântul cheie OPTIO
    Cauză: Comutatorul WITH GRANT a fost folosit la sfârșitul comenzii GRANT fără cuvântul OPTION.
    Acțiune: Înlocuiți opțiunea WITH GRANT cu WITH GRANT OPTION.
  • ORA-00995: identificator de sinonim lipsă sau invalid - identificator de sinonim lipsă sau invalid
    Cauză: În comenzile CREATE sau DROP SYNONYM, numele sinonimului lipsea sau era incorect.
    Acțiune: Verificați greșelile de scriere și sintaxa comenzilor. Numele sinonimului corect trebuie să urmeze imediat opțiunea SINONIM în ambele comenzi. Un nume de sinonim valid începe cu o literă, nu conține mai mult de 30 de caractere și constă numai din litere, cifre și caracterele speciale $, _ și #. Nu ar trebui să fie un cuvânt rezervat.
  • ORA-00996: operatorul de concatenare este ¦¦ nu ¦ - operatorul de concatenare este ||, nu |
    Cauză: Singurul curs (|) a fost înțeles ca o încercare de a descrie concatenarea, dar operatorul de concatenare constă din două linii (||).
    Acțiune: Introduceți o cursă dublă pentru operația de concatenare sau eliminați o singură cursă dacă nu este necesară concatenarea.
  • ORA-00997: utilizarea ilegală a tipului de date lung.
    Cauză: Ați folosit tipul de date LONG, folosit pentru a stoca date mai mari de 240 de caractere, într-o funcție sau în clauzele WHERE, GROUP BY, ORDER BY. Valoarea LONG poate fi folosită numai într-o clauză SELECT.
    Acțiune: Eliminați acest câmp din funcție sau clauză.
  • ORA-00998: trebuie să numească această expresie cu o etichetă de coloană.
    Cauză: O funcție sau expresie a fost folosită în comanda CREATE VIEW, dar numele coloanei corespunzător nu a fost specificat. Când o expresie sau o funcție este utilizată pentru o vizualizare, toate numele coloanelor și vizualizărilor trebuie listate corect în comanda CREATE VIEW.
    Acțiune: Introduceți toate numele coloanelor de recenzie între paranteze după numele recenziei.
  • ORA-00999: nume de vizualizare nevalid.
    Cauză: Comanda CREATE VIEW are un nume de vizualizare lipsă sau nevalid.
    Acțiune: Introduceți numele corect de vizualizare imediat după CREATE VIEW. Un nume valid de recenzie începe cu o literă, nu conține mai mult de 30 de caractere și constă numai din litere, cifre și caracterele speciale $,_ și #. Nu ar trebui să fie un cuvânt rezervat.

Pot apărea erori în timpul executării codului PL/SQL, ceea ce va duce la terminarea blocului PL/SQL. Astfel de erori generează excepții, care pot fi capturate și gestionate de un handler de excepții.

Excepție – o variabilă PL/SQL care este ridicată în timpul execuției blocului și oprește executarea acțiunilor în corpul blocului. Dacă blocul dumneavoastră PL/SQL conține o secțiune de gestionare a excepțiilor, puteți defini acțiuni care trebuie efectuate pentru o anumită excepție înainte ca blocul să se încheie.

O excepție este ridicată automat de serverul Oracle atunci când apare o eroare Oracle (TOO_MANY_ROWS, NO_DATA_FOUND). Cu toate acestea, puteți să vă definiți propria excepție în secțiunea declarativă a unui bloc PL/SQL și apoi să o ridicați în mod explicit în secțiunea executabilă a blocului.

Dacă o excepție este ridicată în secțiunea executabilă a unui bloc, controlul este transferat în secțiunea de gestionare a excepțiilor (secțiunea EXCEPȚIE). Dacă excepția este gestionată cu succes, blocul PL/SQL se va finaliza fără erori. Dacă nu există un handler pentru această excepție, execuția blocului PL/SQL se va termina anormal.

Există trei tipuri de excepții:

Prinderea de excepții

Captarea excepțiilor se realizează în secțiunea de gestionare a excepțiilor din blocul PL/SQL.

EXCEPȚIE

CÂND excepție_1 [ SAU excepție_2 ...] APOI

operatori ;

CÂND excepție_3 [ SAU excepție_4 ...] APOI

operatori ;

excepție– numele unei excepții predefinite sau al excepției descrise într-o secțiune declarativă

WHEN OTHERS – definește acțiuni pentru a gestiona toate excepțiile pentru care gestionarea nu este specificată în mod explicit

Secțiunea de tratare a excepțiilor începe cu cuvântul cheie EXCEPTION. Secțiunea de tratare a excepțiilor poate include mai mulți gestionatori de excepții, fiecare dintre care execută propriul grup de instrucțiuni. Dacă o excepție este ridicată în secțiunea executabilă a unui bloc PL/SQL, controlul este transferat în secțiunea de gestionare a excepțiilor a handler-ului care este proiectat să gestioneze acea excepție specială. După finalizarea acțiunilor specificate în acest handler, execuția blocului se încheie fără erori.

Puteți defini acțiuni care trebuie întreprinse dacă sunt ridicate excepții pentru care un handler nu este definit în mod explicit. Pentru a face acest lucru, utilizați clauza WHEN OTHERS. Poate exista o singură clauză WHEN OTHERS și este plasată după toți ceilalți handlere de excepții.

Obținerea excepțiilor predefinite Oracle Server

Captarea erorilor predefinite Oracle se face prin referire la numele excepției standard în secțiunea de tratare a excepțiilor.

Nume excepție

Număr de eroare

Descriere

CURSOR_DEJA_DESCHIS

Încercarea de a deschide un cursor care este deja deschis

DUP_VAL_ON_INDEX

Încercarea de a efectua o operațiune neautorizată pe un cursor (închiderea unui cursor nedeschis)

Încercarea de a converti o valoare de caracter într-o valoare numerică într-o instrucțiune SQL când valoarea caracterului nu este o reprezentare a caracterului unui număr

Încercarea de conectare la o bază de date cu un nume de utilizator și/sau parolă incorecte

Instrucțiunea SELECT INTO nu a returnat niciun rând

Încercarea de a accesa o bază de date fără a vă conecta la ea

Eroare internă PL/SQL

Memorie insuficienta

SYS_INVALID_ROWID

Încercarea de a converti valoarea unui caracter într-un ROWID atunci când valoarea caracterului nu reprezintă o reprezentare validă a caracterului ROWID

TIMEOUT_ON_RESOURCE

Resursa a expirat

Instrucțiunea SELECT INTO a returnat mai mult de un rând

Eroare de calcul, conversie de tip, încălcare a dimensiunii

Încercați să împărțiți la zero

Să ne uităm la un exemplu. Să existe un fișier batch cu exceptia.sql pentru a calcula salariul unui angajat cu o anumită funcție. În acest caz, este necesar să se prevadă pentru tratarea situațiilor în care nu există salariați cu o astfel de funcție sau mai mulți angajați au o astfel de funcție.

v_sal emp.sal%TYPE;

SELECTAȚI sal INTO v_sal FROM emp WHERE LOWER(job)=LOWER(:v_job);

DBMS_OUTPUT.put_line("Salariul lui " || :v_job || " este " || TO_CHAR(v_sal));

WHEN NO_DATA_FUND ATUNCI

DBMS_OUTPUT.put_line(:v_job || " nu este un titlu al angajaților");

CÂND PREA_MÂTE_RÂNDURI APOI

DBMS_OUTPUT.put_line(:v_job || " este un titlu al multor angajați");

CÂND ALȚII ATUNCI

DBMS_OUTPUT.put_line(„A apărut o altă eroare”);

Acum să ne uităm la diferite opțiuni, atribuind diferite valori variabilei gazdă v_loc de munca.

SQL> VARIABLE v_job VARCHAR2(20)

SQL> EXECUTE:v_job:= „Președinte”

SQL> @d:\utilizatori\cu excepția

Salariul presedintelui este de 5000

Procedura PL/SQL finalizată cu succes.

SQL> EXECUTE:v_job:= „Gerer”

Procedura PL/SQL finalizată cu succes.

SQL> @d:\utilizatori\cu excepția

Funcționar este un titlu al multor angajați

Procedura PL/SQL finalizată cu succes.

SQL> EXECUTE:v_job:= „Inginer”

Procedura PL/SQL finalizată cu succes.

SQL> @d:\utilizatori\cu excepția

Inginerul nu este un titlu al angajaților

Procedura PL/SQL finalizată cu succes.

Prinderea excepțiilor Oracle nedefinite

Dacă doriți să gestionați o eroare standard de server Oracle care nu este o eroare predefinită, trebuie mai întâi să declarați excepția în secțiunea declarativă, să o asociați cu un număr de eroare standard și să faceți referire la excepție în secțiunea de tratare a excepțiilor.