Мавенс базе података препознаће име Орацле као покретач у свету система управљања релацијским базама података (ДБМС). Орацле деценијама производи веома снажна ДБМС решења и остаје лидер у овом пољу. Многи крајњи корисници производа база података могу бити збуњени или збуњени када користе унапред дефинисано решење и то генерише поруку о грешци. Једна уобичајена порука о грешци коју производи Орацле је грешка ОРА-06512.
Такође погледајте наш чланак Како поправити ора-00942 грешку
Орацле је систем за управљање базама података који постоји већ четрдесет година у различитим облицима. Првобитно је користио нешто што се зове СЦОТТ шема, названа по једном од оригиналних запослених у компанији Орацле. Чак сте се први пут пријавили у Орацле корисничким именом 'сцотт' и лозинком 'тигер' која је добила име по Сцоттовој мачки. Сада се користи неколико шема зависно од чега користите Орацле.
Ако желите да научите више о Орацлеу од почетка, ова страница је веома корисна.
Исправљање грешака ОРА-06512
У Орацлеу је грешка ОРА-06512 општа грешка изузећа која вам говори где нешто пође по злу. То је једна од најмање специфичних грешака коју производи Орацле, јер вам говори само да постоји проблем, али не и шта иде по злу.
На пример, уобичајена порука о грешци може да гласи:
„ОРА-01422: тачно дохваћање враћа више од захтијеваног броја редака
ОРА-06512: код „ДАТАБАСЕ_НАМЕ“, линија 66
ОРА-06512: на линији 1 ″
Први ред говори о томе која се врста грешке дешава, у овом случају упит враћа више података него што упит очекује, тако да не зна како да поступа. 'ОРА-01422' код је стварни код грешке који требате погледати. ОРА-06512 је само општи код грешке.
Други ред говори о томе где се грешка догађа. ДАТАБАСЕ_НАМЕ ће постати база података у којој тада радите. Ред 66 је линија у којој се грешка догађа и линија коју треба да проверите да бисте исправили грешку.
Трећи ред у синтакси грешке говори одакле долази позив. Проверите прву линију и видећете позив ДАТАБАСЕ_НАМЕ.
Да бисте исправили ову одређену грешку, морате да решите проблем узрокован ОРА-01422, а то је „тачно дохваћање враћа више од траженог броја редова“ или морате додати алат за обраду изузетака да бисте рекли Орацлеу да га игнорише. Како је поправљање језгровитих проблема увек пожељно, то је пут.
Постоје две ствари које можете да урадите. Ако очекујете да ће се упит вратити више од једног реда, можете га модифицирати тако да се не изненади. Ако очекујете да ће упит вратити један ред, можете га и модификовати.
Очекујем више од једног реда:
за Кс ин (изаберите * од т где…)
петље
- обради овде Кс запис
крајња петља;
Ово би требало искоријенити грешку у упитима базе података гдје би се вратило више реда.
Ако очекујете да се врати само један ред, можете покушати:
почети
изаберите * у….
од т где….
процес….
изузетак
када НО_ДАТА_ФОУНД тада
код руковања грешкама када није пронађен запис
када ТОО_МАНИ_РОВС тада
код руковања грешкама када је пронађено превише записа
крај;
Ова друга метода треба да испоручи само један ред без избацивања 'ОРА-01422: тачно дохваћање враћа више од потребног броја грешака и, самим тим, оригиналну грешку ОРА-06512.
Упит можете и прилагодити тако да он враћа само први ред одговора из више реда. Ово би могло успети ако немате потпуну контролу над базом података или се не желите превише петљати са стварима, али вам и даље треба одговор.
изјавити
ц1 курсор за одабир * од т где…
почети
отвори ц1;
дохватити ц1 у ..
ако (ц1% не пронађено) онда
руковање грешкама јер није пронађен ниједан запис
крај ако;
затворити ц1;
крај;
(Ако знате СКЛ, можда ћете бити збуњени овим командним линијама … Орацле не користи Трансацт-СКЛ, већ је то сопствено процедурално проширење језика СКЛ, ПЛ / СКЛ. Иако је слично Трансацт-СКЛ, ПЛ / СКЛ пуно паметних ствари и сам по себи је врло моћан алат. Можда ће вам овај ПЛ / СКЛ ФАК бити користан када покушате да сазнате више о Орацлеу.)
Дакле, основна поука овде је грешка ОРА-06512, сама по себи, није нешто што можете директно да поправите. Уместо тога, морате да схватите шта је стварна грешка, шта ће вам рећи други кодови грешака, а затим да те грешке решавате једну по једну.
Имате ли неке савете или трикове за Орацле да делите? Јавите нам о њима у коментарима!
