SQL klaida ORA paaiškinimas ir sprendimo būdai

SQL klaidos gali kilti dėl įvairiausių priežasčių: nuo programinės įrangos trūkumų iki aparatinės įrangos gedimų, klaidų kliento pusėje ar net netinkamų užklausų rašymo. Kai kurios klaidos pateikia aiškius užuominas apie duomenų bazės ar sistemos būklę, kitos - reikalauja gilesnės diagnostikos ir papildomų įrankių.

Kaip interpretuoti SQL ir ORA klaidų reikšmes

SQL Server existuje systémová tabulka, ve které jsou uloženy všechny možné Error stavy a jejich závažnost = severity. Error severity nabývá hodnot 0-25 a definuje závažnost chyby. Tabulka obsahuje cca 300 000 informačních a error zpráv ve všech jazykových mutacích SQL Server.

  • 0-10 -> informatyvūs pranešimai, ne klaidos - pavyzdys: “Data truncation error. Length … exceeds maximum length ..”.
  • 18 -> nurodo programinės įrangos problemą serveryje - pavyzdys: “The transaction has been stopped because it conflicted with the execution of a FILESTREAM close operation using the same transaction.”
  • 23 -> nurodo duomenų bazės pažeidimą - pavyzdys: “Corruption in database … possibly due to schema or catalog inconsistency.”
  • 24 -> aparatinės įrangos problemos - pavyzdys: “The MSSQLServer service terminated unexpectedly.”

„SQL Server neegzistuoja arba prieiga uždrausta“. Tai yra bendras „Microsoft Data Access Components“ (MDAC) pranešimas, nurodantis, kad kompiuteryje veikia „Microsoft“. SQL Server nepasiekiama. Jis taip pat žinomas kaip 17 klaidos kodas. Šis bendras pranešimas gali būti įvairių priežasčių.

Serverio ir kliento problemų diagnostika

Su serveriu susijusios problemos - jei nė vienas kliento kompiuteris negali pasiekti SQL server, tikriausiai yra problema pačiame serveryje. Su klientu ar programomis susijusios problemos - jei vienas konkretus klientas arba keli klientai ar programos negali pasiekti SQL server bet kiti klientai gali, tikriausiai yra kliento sistemos problema.

Jei bandote pasiekti pavadintą įvykį SQL Server, būtinai nurodykite teisingą įvykio pavadinimą. Tai gali būti tik MDAC neatitikimo šalutinis poveikis.

ORACLE ORA klaidos: pavyzdžiai ir sprendimo būdai

Kaip pavyzdį verta paminėti klaidą "ORA-01476: divisor is equal to zero", kuri gali kilti, pavyzdžiui, ugniažiediniame (nested) analitinių funkcijų naudojime. Wednesday, February 27th, 2008 Aaaaaargh... Kolega je instalirao jednu Oracle bazu za testiranje, u koju smo kasnije importovali našu production bazu. Ta klaida gali atsirasti net jei iš pradžių neatrodo, kad dalybos iš nulio vyktų - sprendimui gali prireikti rankinio PL/SQL paketų debug'inimo.

Kao što sam već nedavno pisao, prilikom programiranja jedne procedure, dobijao sam konstantno exception sa greškom "ORA-01476: divisor is equal to zero", iako NE BI TREBALA da se pojavi u tom slučaju. Konkretnije rečeno, greška se javlja pri ugniježđenom korištenju analitičkih funkcija (npr. ...). Potražio sam na MetaLinku neko objašnjenje ili rješenje, ali ne nađoh ništa korisno.

Praktiniai patarimai sprendžiant ORA ir SQL klaidas

  • Visada patartina išsiaiškinti pagrindinę SQL klaidų priežastį ir, jei įmanoma, jas pašalinti.
  • Peržiūrėkite užklausas, ypač ugniažiedinius kvietimus ir analitinių funkcijų naudojimą - klaidos gali kilti netikėtai dėl langų funkcijų langelio (frame) nustatymų ar dalybos operacijų.
  • Patikrinkite, ar nėra duomenų pažeidimų (corruption) - tam gali nurodyti klaidų tipai su severity 23.
  • Jei susiduriate su serverio prastova ar pasiekiamumo problemomis, patikrinkite paslaugų būsenas, tinklo config ir ar serveris išvis pasiekiamas iš kitų klientų.
  • Jei problema specifinė ir yra karštoji pataisa (hotfix), ta pataisa gali būti pritaikyta tik toms sistemoms, kurios susiduria su aprašyta problema.

Karštųjų pataisų ir palaikymo procedūros

Šią problemą išsprendžianti pataisa yra įtraukta į "Host Integration Server 2013" 1 kaupiamąjį naujinimo paketą. Palaikomas karštąsias pataisas galima gauti iš "„Microsoft“". Tačiau ši karštoji pataisa skirta ištaisyti tik šiame straipsnyje aprašytą problemą. Taikykite šią karštąją pataisą tik toms sistemoms, kurios susiduria su šiame straipsnyje aprašyta problema.

Ši karštoji pataisa gali būti papildomai patikrinta. Jei karštąją pataisą galima atsisiųsti, šio žinių bazės straipsnio viršuje yra skyrius "Karštųjų pataisų atsisiuntimas". Pastaba. Kilus papildomų problemų arba prireikus trikčių diagnostikos, gali tekti sukurti atskirą paslaugos užklausą. Įprastos palaikymo išlaidos bus taikomos papildomiems palaikymo klausimams ir problemoms, kurios neatitinka šios konkrečios karštosios pataisos reikalavimų.

Pastaba. Formoje "Galima atsisiųsti karštąją pataisą" rodomos kalbos, kurioms galima naudoti karštąsias pataisas. Šios karštosios pataisos anglų k. versijoje yra failo atributai (ar vėlesnio failo atributai), nurodyti toliau pateiktoje lentelėje. Šių failų datos ir laikai nurodyti pasauliniu koordinuotuoju laiku (UTC). Peržiūrint failo informaciją, jis konvertuojamas į vietinį laiką.

Rekomenduojami įrankiai duomenų atkūrimui ir klaidų valdymui

Be to, norėdami apsaugoti savo duomenis SQL gedimo atveju, įdiekite a sql server atsigavimas įrankis kaip DataNumen SQL Recovery programą savo serverio įrenginyje. Suaktyvintas jis gali pradėti veikti ir per kelias minutes atkurti įrašus iš pažeisto SQL failo.

Klaidų rankena ir transakcijų valdymas - praktinis kursas

It is critical to know how to handle errors and manage transactions when programming SQL scripts. In this course, you will learn how to handle errors and discover how to manage transactions in case of an error. Additionally, you will study what happens when two or more people interact at the same time with the same data. You will practice all these concepts using two datasets, one of them based on bank accounts and the other one on an electric bike store.

  1. Starting with error handling - FreeTo begin the course, you will learn how to handle errors using the TRY...CATCH construct that provides T-SQL. You will study the anatomy of errors, and you will learn how to use some functions that can give you information about errors.
  2. Raising, throwing and customizing your errors - In this chapter, you will deepen your knowledge of handling errors. You will learn how to raise errors using RAISERROR and THROW. Additionally, you will discover how to customize errors.
  3. Transactions in SQL Server - In this chapter, you will be introduced to the concept of transactions. You will discover how to commit and rollback them. You will finish by learning how to return the number of transactions and their state.
  4. Controlling the concurrency: Transaction isolation levels - This chapter defines what concurrency is and how it can affect transactions. You will learn exciting concepts like dirty reads, repeatable reads, and phantom reads.

Dažnai pasitaikančios klaidos rašant užklausas, kurios gali sukelti ORA / SQL klaidas

Šiame skyriuje išvardintos keli tipiniai problemų šaltiniai, pastebimi kasdienėje praktikoje:

  • Prastas tipų konvertavimas: pavyzdžiui, dalybos dviejų sveikųjų skaičių gali duoti netikėtą rezultatą arba klaidą priklausomai nuo DBMS.
  • HAVING naudojimas vietoje WHERE su agregacija - neteisingas filtravimo etapas.
  • Aliaso (alias) naudojimas WHERE faile - alias neegzistuoja iki SELECT vykdymo.
  • COALESCE nenaudojimas - NULL reikšmių nepastebėjimas gali sugriauti agregacijų rezultatus.
  • Netvarkingas užklausų dizainas: per daug vidinių užklausų vietoje logiškesnių langų funkcijų ar JOIN optimizacijų.
  • Neteisingas langų funkcijų naudojimas - pvz., first_value, last_value elgesys priklauso nuo lango rėmo (frame) nustatymo).
Klaidos tipas / simptomai Galimos priežastys Veiksmai
ORA-01476 arba dalyba iš nulio Analitinės funkcijos, netikėta nulinė reikšmė kalkuliacijoje Peržiūrėti užklausas, pridėti apsaugas (NULL patikrinimai), debug PL/SQL
Prisijungimo klaidos (MDAC / 17) Serveris nepasiekiamas, tinklo problemos, paslaugų klaidos Patikrinti serverio paslaugas, tinklo ryšį, autentifikaciją
Corruption / severity 23 Duomenų bazės pažeidimas Run DBCC / panašius įrankius, atkurti iš atsarginės kopijos arba naudoti duomenų atkūrimo įrankius

Praktiniai patarimai greitai diagnostikai

  • Paleiskite užklausą su papildomais patikrinimais (IS NULL, CASE arba COALESCE) prieš atlikdami matematikos operacijas.
  • Naudokite TRY...CATCH (arba ekvivalentus mechanizmus Oracle) aptikti ir valdyti klaidas vietoje, kur jos įvyksta.
  • Atliekant pakeitimus ar taikant karštąsias pataisas, prieš pritaikant gamybos aplinkoje testuokite tolygioje testinėje aplinkoje.
  • Jei pataisa prieinama iš tiekėjo (pvz., Microsoft), perskaitykite žinių bazės straipsnius ir failų atributus, kad įsitikintumėte apie tinkamumą ir suderinamumą.

Šis straipsnis surenka pagrindines įžvalgas apie ORA ir SQL klaidų prigimtį, jų klasifikaciją pagal sunkumą ir konkrečias priemones bei gerąsias praktikas, kurios padės greičiau rasti ir išspręsti problemas.

tags: #sql #error #ora