SQL0801N | Направен е опит за делене на нула. |
Обяснение: Обработката на агрегатна функция или на аритметичен израз е довела до деление на нула.
Операторът не може да бъде обработен. За операторите INSERT, UPDATE или DELETE не са извършени вмъквания или обновявания.
Отговор на потребителя: Проверете SQL израза, за да откриете причината за проблема. Ако проблемът зависи от данните, необходимо е да проверите данните, обработвани при възникването на грешката. Обърнете се към SQL Справочник за валидните обхвати на типовете данни.
Потребители на обединени системи: проверете SQL оператора, за да определите причината за проблема. Ако проблемът е зависим от данните, проверете данните, които са били обработвани в източниците на данни при възникването на грешката.
sqlcode: -801
sqlstate: 22012
SQL0802N | Възникнало е аритметично препълване или друго изключение, свързано с аритметична операция. |
Обяснение: Обработката на агрегатна функция или на аритметичен израз е довел до аритметично препълване.
Операторът не може да бъде обработен. За операторите INSERT, UPDATE или DELETE не са извършени вмъквания или обновявания.
Отговор на потребителя: Проверете SQL израза, за да откриете причината за проблема. Ако проблемът зависи от данните, необходимо е да проверите данните, обработвани при възникването на грешката. Обърнете се към SQL Справочник за валидните обхвати на типовете данни.
Тази грешка може също да бъде върната и когато агрегатни функции не могат да обработят стойността, върната от SQL оператор. Например издаването на оператор SELECT COUNT за таблица, която има повече редове от дефинираните от ограничението MAX_LONGINT_INT SQL, ще предизвика грешка от аритметично препълване. Използвайте агрегатната функция COUNT_BIG за таблици с повече от 2 147 483 647 реда.
Потребители на обединени системи: проверете SQL оператора, за да определите причината за проблема. Ако проблемът е зависим от данните, проверете данните, които са били обработвани в източниците на данни при възникването на грешката. Направете справка със съответния SQL справочник за източника на данни, за да определите валидните обхвати за типовете данни.
sqlcode: -802
sqlstate: 22003
SQL0803N | Една или повече на брой стойности в оператор INSERT, оператор UPDATE или обновяване на външен ключ, причинено от оператор DELETE, не са валидни, защото ще доведат до появата на дублиращи се редове за таблица с първичен ключ, ограничение за уникалност или уникален индекс. |
Обяснение: Обектната таблица INSERT или UPDATE е ограничена от един или повече индекси UNIQUE да притежава уникални стойности в определени колони или групи от колони. Алтернативата е оператор DELETE за таблица родител да е причинил обновяването на външен ключ в зависима таблица, ограничена от един или повече индекси UNIQUE да притежава уникални стойности в определени колони или групи от колони. Уникалният индекс може да съществува, за да поддържа първичен ключ или ограничение за уникалност, дефинирано за таблицата. Завършването на желаното вмъкване или обновяване води до дублиране на стойности в колоните.
Възможно е, ако обектът на оператора INSERT или UPDATE е производна таблица, таблицата, за която е дефинирана производната таблица, да е с ограничение.
Операторът не може да бъде обработен. Таблицата остава непроменена.
Отговор на потребителя: Разгледайте дефинициите за всички UNIQUE индекси, дефинирани за обектната таблица, за да определите ограниченията за уникалност, които тези индекси налагат.
При оператор UPDATE се уверете, че зададената операция сама по себе си не е несъвместима с тези ограничения за уникалност. Ако това не показва грешката, разгледайте съдържанието на обектната таблица, за да определите причината на проблема.
При оператор INSERT разгледайте съдържанието на обектната таблица, за да определите коя от стойностите в списъка със зададени стойности нарушава ограничението за уникалност. В случай че оператор INSERT съдържа подзапитване, то трябва да се провери съответствието между съдържанието на обектната таблица, адресирана от това подзапитване, и съдържанието на тази обектна таблица, за да може да се определи причината за проблема.
За оператор DELETE вижте дали в зависимите таблици има ограничения за уникалност за външни ключове, дефинирани с правилото ON DELETE SET NULL. Една такава таблица има колона с външен ключ, включена в уникален индекс, който не може да бъде без стойност, тъй като вече има параметър без стойност в колоната за тази таблица.
Потребители на обединени системи: изолирайте проблема до източника на данни, който не е успял да удовлетвори заявката, (направете справка с Ръководство за отстраняване на проблеми, за да определите кой източник на данни не е успял да обработи SQL оператора) и разгледайте дефинициите на индекси и данните за посочените условия.
sqlcode: -803
sqlstate: 23505
SQL0804N | Входните параметри на приложната програма за текущата заявка не са валидни. Код на причина "<код-на-причина>". Ако хост променлива или SQLVAR в SQLDA е невалидна, тогава: хост променлива/SQLVAR номер = "<променлива-номер>", SQLTYPE = "<sql-тип>", SQLLEN = "<sql-дължина>", хост променлива/SQLVAR тип = "<вход_или_изход>". |
Обяснение: Възникнала е грешка при обработката на текущата заявка.
Кодовете за причини се интерпретират както следва:
Потребители на обединени системи: Тип данни, който сте задали, не се поддържа или от обединения сървър, или източника на данни, до който искате да осъществите достъп.
В SQL операторите с хост променливи, използвайте номера на хост променливата, за да преброите отначалото на оператора (или подоператора, в случай на съставен SQL), за да откриете невалидната хост променлива. За оператори, използващи SQLDA, за откриване на невалидния SQLVAR се използва SQLVAR номерът. За входен SQLDA, отчитайте при броенето само входните хост променливи или SQLVAR. Аналогично за изходен SQLDA. Забележете, че този номер е базиран на 1.
Операторът не може да бъде обработен.
Отговор на потребителя: Разгледайте внимателно приложната програма за възможни грешки. Обърнете внимание на това, че програмистът не бива да модифицира изхода на предкомпилатора.
Потребители на обединени системи: Ако получите код на причина 102, задайте поддържан тип данни и подайте програмата отново.
sqlcode: -804
sqlstate: 07002
SQL0805N | Пакетът "<име-на-пакет>" не е намерен. |
Обяснение: Възможните причини за това съобщение (SQLCODE) са:
Операторът не може да бъде обработен.
Отговор на потребителя: Задайте точното име на пакета или свържете програмата. Ако пуснатото приложение не е свързано към базата данни, свържете се с администратора на базата данни, който да осъществи необходимите връзки.
Ако помощните програми за DB2 трябва да бъдат повторно свързани към базата данни, администраторът на базата данни може да постигне това, като подаде една от следните CLP команди от поддиректория bnd на потребителския модел, докато е свързан към базата данни:
Потребители на обединени системи: уверете се, че пакетите, необходими за обединен сървър, са свързани към приложимите източници на данни. Обърнете се към Ръководството Приложение за инсталиране и конфигуриране за допълнителна информация относно свързаните пакети към източници на данни.
sqlcode: -805
sqlstate: 51002
SQL0808N | Семантиката на оператора CONNECT не е в съответствие с тази на другите съществуващи връзки. |
Обяснение: Операторът CONNECT произлиза от файл източник, който е предкомпилиран с други опции за връзка (SQLRULES, тип CONNECT, SYNCPOINT или тип RELEASE), а не с тези на файла източник, за които съществува връзката.
Отговор на потребителя: Уверете се, че всички файлове източници са предкомпилирани със същите опции на CONNECT, а ако това не е възможно, обърнете се към SET CLIENT api, за да настроите желаните опции за приложния процес, преди да подадете първия оператор CONNECT.
sqlcode: -808
sqlstate: 08001
SQL0811N | Резултатът от скаларен фулселект, оператор SELECT INTO или оператор VALUES INTO е по-голям от един ред. |
Обяснение: Едно от следните неща е предизвикало грешка:
Потребители на обединени системи: Тази ситуация може да бъде открита от обединен сървър или от източника на данни.
Операторът не може да бъде обработен.
Отговор на потребителя: Уверете се, че операторът съдържа правилните спецификации за условия. Ако това е така, може да има проблем с данните, който предизвиква връщането на повече от един ред, когато се очаква само един.
Потребители на обединени системи: изолирайте проблема до източника на данни, който не е успял да удовлетвори заявката (направете справка с Ръководство за отстраняване на проблеми, за да определите кой източник на данни не е успял да обработи SQL оператора), и разгледайте критериите за избор и данните за този обект.
sqlcode: -811
sqlstate: 21000
SQL0817N | SQL операторът не може да бъде изпълнен, защото резултатът от него ще доведе до забранена операция за обновяване. |
Обяснение: Приложението е опитало да изпълни SQL израз, който би довел до обновяване на потребителските данни или на подсистемен каталог. Това е забранено поради следните причини:
Тези SQL оператори включват INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, GRANT и REVOKE.
Изразът не може да бъде изпълнен.
Отговор на потребителя: Ако приложението работи като IMS транзакция само за запитване, свържете се с вашия IMS системен програмист, който трябва да промени състоянието 'само за четене' на транзакцията, под която приложението работи.
Ако IMS или CICS приложение се опитва да прави отдалечени обновявания, или приложението трябва да бъде променено така, че да работи като локално приложение на сървъра на DBMS, или DBMS сървърът трябва да бъде надстроен така, че да поддържа двуфазен комит.
Ако приложението се опитва да обновява данни на много разположения, то или приложението трябва да бъде променено, или всички DBMS трябва да бъдат надстроени така, че да поддържат двуфазен комит.
sqlcode: -817
sqlstate: 25000
SQL0818N | Възникнал е конфликт с времевия индикатор. |
Обяснение: Времевият индикатор, генериран от предкомпилатора по времето на предкомпилация, не е същият като времевия индикатор, съхранен с пакета в момента на свързване.
Проблемът може да е причинен от следното:
Потребители на обединени системи: в допълнение към гореизброените причини проблемът може да се дължи и на несвързването на желаните пакети във всички приложими източници на данни.
Операторът не може да бъде обработен.
Отговор на потребителя: Отново свържете приложението, използвайки свързвания файл за програмата, който съответства на обектния модул. Или изпълнете програмата, която съответства на пакета, съхранен в базата данни.
Ако инсталирате примерната база данни, запишете номера и текста на това съобщение и се свържете с вашия представител на техническия сервиз.
Потребители на обединени системи: в допълнение към гореизброените действия уверете се, че пакетите, необходими за обединен сървър, са свързани в приложимите източници на данни. Обърнете се към Приложение за инсталиране и конфигуриране за допълнителна информация относно свързаните пакети към източници на данни.
sqlcode: -818
sqlstate: 51003
SQL0822N | SQLDA съдържа адрес на данни или адрес на променлива индикатор, който не е валиден. |
Обяснение: Приложната програма e включила адрес, който не е валиден в SQLDA.
Операторът не може да бъде обработен.
Отговор на потребителя: Коригирайте приложната програма, така че в SQLDA да се поставят валидни адреси.
sqlcode: -822
sqlstate: 51004
SQL0840N | Прекалено много обекти са върнати в списък SELECT. |
Обяснение: Броят на обектите, върнати към списък SELECT, превишава допустимия брой. Максимумът за SELECT списъци (различни от изрази за общи таблици) е 1012. Максимумът за SELECT списъци в изрази за обща таблица е 5000.
Операторът не може да бъде обработен.
Отговор на потребителя: Определете дали цялата информация е наистина необходима. (Забележете, че броят обекти, върнати от списъка SELECT * в SQL оператора SELECT * от A, B, C, е сума на броя колони във всичките три таблици.) Ако това е възможно, препишете SQL оператора, така че да бъдат върнати само необходимите информационни обекти. Ако е необходима цялата информация, разделете SQL оператора на два или повече оператора.
sqlcode: -840
sqlstate: 54004
SQL0842N | Вече съществува връзка към сървър "<име-на-сървър>". |
Обяснение: SQLRULES(STD) е в сила и оператор CONNECT идентифицира съществуваща SQL връзка.
Отговор на потребителя: Корекцията зависи от грешката:
Коригирайте грешката в приложението и опитайте пак.
sqlcode: -842
sqlstate: 08002
SQL0843N | Името на сървъра не указва съществуваща връзка. |
Обяснение: Израз, команда или API, зададен в името на сървъра, който не идентифицира съществуваща SQL връзка на процеса на приложението.
Това може да е възникнало с помощта на:
Отговор на потребителя: Корекцията зависи от грешката:
Коригирайте грешката в приложението и опитайте пак.
sqlcode: -843
sqlstate: 08003
SQL0846N | Невалидна спецификация на колона за идентичност "<име-на-колона>". |
Обяснение: За оператор ALTER или CREATE TABLE, спецификацията на колоната за идентичност може да е невалидна поради една от следните причини:
Операторът не може да бъде обработен.
Отговор на потребителя: Коригирайте синтаксиса и подайте оператора отново.
sqlcode: -846
sqlstate: 42815
SQL0859N | Достъпът до Програмата за управление на транзакциите в бази данни не е успешен със SQLCODE "<SQLCODE>". |
Обяснение: Приложението е предкомпилирано със SYNCPOINT(TWOPHASE) и изисква Програма за управление на транзакциите в бази данни за координиране на двуфазовото записване на промените. Причините, поради които Програмата за управление на транзакциите в бази данни не е на разположение, може да са следните:
Отговор на потребителя: Възможни действия:
sqlcode: -859
sqlstate: 08502
SQL0863W | Осъществена е успешна връзка, но може да бъдат използвани само еднобайтови символи. |
Обяснение: Базата данни на сървъра и приложението на клиента използват кодови страници за различни типове езици, и символите, намиращи се извън 7-битовата ASCII област, не може да бъдат гарантирани (само символите в тази 7-битова ASCII област съществуват във всички кодови страници). Например връзката може да бъде между японска и първата латинска (Latin-1) кодова страница, но никоя от японските букви няма да е на разположение в кодовата страница за латиница, така че всички такива символи трябва да бъдат избягвани (символите на латиница може да се използват).
Потребители на обединени системи: възможните причини са:
Отговор на потребителя: Не използвайте SQL оператори или команди, използващи символи, които не са общи за кодовите страници на приложението и на базата данни.
Потребители на обединени системи: не подавайте SQL оператори или команди, използващи символи, които не са общи за клиентската система, обединената система и източника на данни.
sqlcode: +863
sqlstate: 01539
SQL0865N | Невалидна стойност за tm_database. |
Обяснение: Базата данни, избрана като tm_database в конфигурацията на мениджъра на базата данни, не е валидна. Базата данни трябва да е от ниво DB2 V2.1 или по-нова и не може да е база данни, достъпът до която се осъществява посредством протокол DRDA (т.е. чрез DB2 Connect).
Изразът не може да бъде изпълнен.
Отговор на потребителя:
sqlcode: -865
sqlstate: 08001
SQL0866N | Пренасочването на връзката не е успешно. Код на причината: "<код-на-причина>". |
Обяснение: Каталогизирането на директории за бази данни е станало причина да се пренасочи връзка по начин, който не е поддържан.
Възможните кодове за причина са следните:
Отговор на потребителя: Според кода за причина действията са:
sqlcode: -866
sqlstate: 08001
SQL0868N | Направен е опит за изпълнение на CONNECT, използвайки клауза USER/USING, към сървър, с който вече има връзка. |
Обяснение: Съществува работна или пасивна връзка към сървър и опит за CONNECT към този сървър чрез клауза USER/USING е невалиден.
Отговор на потребителя: Възможни действия:
sqlcode: -868
sqlstate: 51022
SQL0880N | SAVEPOINT "<име-точка-на-съхранение>" не съществува или е невалидно в този контекст. |
Обяснение: Възникнала е грешка при издаване на оператора RELEASE или ROLLBACK TO SAVEPOINT "<име-точка-на-съхранение>". Или точка за съхранение с това име не съществува, или тя е установена извън контекста на работното atomic изпълнение.
Операторът не може да бъде обработен.
Отговор на потребителя: Коригирайте името на точката на съхранение в оператора и подайте оператора отново.
sqlcode: -880
sqlstate: 3B001
SQL0881N | SAVEPOINT с "<име-точка-на-съхранение>" вече съществува, но това име не може да се използва повторно. |
Обяснение: Името "<име-точка-на-съхранение>" вече е било използвано в оператор SAVEPOINT. Името на точката на съхранение не може да се използва повторно, защото поне един от операторите SAVEPOINT, които използват това име, задава също и ключовата дума UNIQUE, което означава, че името трябва да е уникално.
Операторът не може да бъде обработен. Новата точка на съхранение на е настроена. Старата точка на съхранение със същото име продължава да съществува.
Отговор на потребителя: Изберете друго име за тази точка на съхранение и подайте отново оператора SAVEPOINT. Ако това име на съществуваща точка на съхранение трябва да се използва отново, подайте оператор RELEASE SAVEPOINT, за да освободите съществуващата точка на съхранение. Не забравяйте обаче, че операторът RELEASE SAVEPOINT освобождава също и всички точки на съхранение, които са били създадени в транзакцията след установяването на посочената точка на съхранение. За повече информация се обърнете към SQL Справочник.
sqlcode: -881
sqlstate: 3B501
SQL0882N | Точка на съхранение не съществува. |
Обяснение: Възникнала е грешка при издаване на оператора ROLLBACK TO SAVEPOINT. Издаването на ROLLBACK TO SAVEPOINT, без да е посочено име на конкретна точка на съхранение, не е разрешено, когато няма съществуващи точки на съхранение.
Операторът не може да бъде обработен.
Отговор на потребителя: Подайте друг оператор или опитайте да изпълните ролбек за цялата транзакция с оператора ROLLBACK.
sqlcode: -882
sqlstate: 3B502