Справочник на съобщенията

SQL0800 - SQL0899

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 тип = "<вход_или_изход>".

Обяснение: Възникнала е грешка при обработката на текущата заявка.

Кодовете за причини се интерпретират както следва:

100
Направената заявка не се поддържа или е извън контекста.

101
SQLDA.SQLN е по-малко от SQLDA.SQLD

102
SQLVAR.SQLTYPE е невалидно.

Потребители на обединени системи: Тип данни, който сте задали, не се поддържа или от обединения сървър, или източника на данни, до който искате да осъществите достъп.

103
Дължината, посочена в SQLVAR.SQLLEN или SQLVAR2.SQLLONGLEN, е неправилна за SQL типа, зададен в SQLVAR.SQLTYPE.

104
Очаква се дублиране на SQLVARs, но полето SQLDOUBLED на SQLDA.SQLDAID не е настроено на '2'. Това може да е необходимо заради тип голям обект или структурен тип.

105
Големият обект от двубайтови символи има нечетна стойност, показана от SQLVAR2.SQLDATALEN указателя, който винаги посочва стойностите в байтове (дори за DBCLOB).

106
SQLDATA указателят е невалиден или посочва към недостатъчно голям масив.

107
SQLIND указателят е невалиден или посочва към недостатъчно голям масив.

108
SQLDATALEN указателят е невалиден или посочва към недостатъчно голям масив.

109
За текущия SQL оператор се очаква определен брой входни хост променливи/SQLVAR.

110
LOB локаторът не е асоцииран с LOB от съвместим тип.

111
LOB се индикира от SQLTYPE на SQLVAR, но вторият SQLVAR няма стойност.

112
Полето SQLDATATYPE NAME не е валидно. То не отговаря на формата за идентифициране на съществуващ потребителски дефиниран тип в базата данни. Форматът за идентифициране на съществуващ потребителски дефиниран тип е както следва: 8 байта, следвани от точка, следвани от 18 байта.

113
Полето SQLFLAG4 не е валидно. Ако е зададен структурен тип, стойността трябва да е X'12'. Ако е зададен тип препратка, стойността трябва да е X'01'. Във всички останали случаи стойността трябва да е X'00'.

В 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

SQL0817NSQL операторът не може да бъде изпълнен, защото резултатът от него ще доведе до забранена операция за обновяване.

Обяснение: Приложението е опитало да изпълни 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

SQL0822NSQLDA съдържа адрес на данни или адрес на променлива индикатор, който не е валиден.

Обяснение: Приложната програма 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).

Изразът не може да бъде изпълнен.

Отговор на потребителя:

  1. Обновете конфигурацията на мениджъра на базата данни, така че тя да задава валидна база данни за tm_database parameter.
  2. Подайте db2stop и db2start, за да сте сигурни, че промяната ще влезе в сила.

sqlcode: -865

sqlstate: 08001

SQL0866NПренасочването на връзката не е успешно. Код на причината: "<код-на-причина>".

Обяснение: Каталогизирането на директории за бази данни е станало причина да се пренасочи връзка по начин, който не е поддържан.

Възможните кодове за причина са следните:

01
Връзка към база данни включва повече от едно пренасочване от сървър към друг сървър; поддържа се само едно пренасочване на връзка.

02
Направен е опит за връзка, който включва и текущата версия на DB2 клиент или сървър, и версия 1 на клиент или сървър. Опитът не е успешен, защото пренасочването не се поддържа от версия 1 на клиент или сървър.

Отговор на потребителя: Според кода за причина действията са:

01
Каталогизирайте повторно базата данни, така че да няма повече от един сървър, който да пренасочва връзката към друг сървър в пътеката на връзката.

02
Каталогизирайте повторно базата данни, така че да няма междинен сървър, който да пренасочва връзката.

sqlcode: -866

sqlstate: 08001

SQL0868NНаправен е опит за изпълнение на CONNECT, използвайки клауза USER/USING, към сървър, с който вече има връзка.

Обяснение: Съществува работна или пасивна връзка към сървър и опит за CONNECT към този сървър чрез клауза USER/USING е невалиден.

Отговор на потребителя: Възможни действия:

sqlcode: -868

sqlstate: 51022

SQL0880NSAVEPOINT "<име-точка-на-съхранение>" не съществува или е невалидно в този контекст.

Обяснение: Възникнала е грешка при издаване на оператора RELEASE или ROLLBACK TO SAVEPOINT "<име-точка-на-съхранение>". Или точка за съхранение с това име не съществува, или тя е установена извън контекста на работното atomic изпълнение.

Операторът не може да бъде обработен.

Отговор на потребителя: Коригирайте името на точката на съхранение в оператора и подайте оператора отново.

sqlcode: -880

sqlstate: 3B001

SQL0881NSAVEPOINT с "<име-точка-на-съхранение>" вече съществува, но това име не може да се използва повторно.

Обяснение: Името "<име-точка-на-съхранение>" вече е било използвано в оператор 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


[ Начало на страницата | Предишна страница | Следваща страница ]