Komunikaty

SQL0800 - SQL0899

SQL0801NPróbowano wykonać dzielenie przez zero.

Objaśnienie: Przetwarzanie funkcji kolumnowej lub wyrażenia arytmetycznego doprowadziło do dzielenia przez zero.

Nie można wykonać instrukcji. Dla instrukcji INSERT, UPDATE lub DELETE nie zostaną wykonane wstawienia ani aktualizacje.

Działanie użytkownika: Przeanalizuj instrukcje SQL, aby określić przyczynę błędu. Jeśli błąd jest zależny od danych, po wystąpieniu błędu konieczne jest przeanalizowanie przetworzonych danych. Przejrzyj podręcznik SQL Reference, aby zapoznać się z poprawnymi zakresami typów danych.

Użytkownicy systemów stowarzyszeń: Prześledź składnię instrukcji SQL, aby określić przyczynę problemu. Jeśli problem jest zależny od danych, sprawdź dane przetwarzane w źródle danych w momencie wystąpienia błędu.

sqlcode: -801

sqlstate: 22012

SQL0802NWystąpiło przepełnienie lub inny błąd arytmetyczny.

Objaśnienie: Przetwarzanie funkcji kolumnowej lub wyrażenie arytmetyczne zakończyło się przepełnieniem arytmetycznym.

Nie można wykonać instrukcji. Dla instrukcji INSERT, UPDATE lub DELETE nie zostaną wykonane wstawienia ani aktualizacje.

Działanie użytkownika: Przeanalizuj instrukcje SQL, aby określić przyczynę błędu. Jeśli błąd jest zależny od danych, po wystąpieniu błędu konieczne jest przeanalizowanie przetworzonych danych. Przejrzyj podręcznik SQL Reference, aby zapoznać się z poprawnymi zakresami typów danych.

Ten błąd może być zwrócony także wtedy, gdy funkcje kolumn nie mogą obsłużyć wartości zwracanej przez instrukcję SQL. Na przykład wydanie instrukcji SELECT COUNT dla tabeli, która ma więcej kolumn niż definiuje to limit MAX_LONGINT_INT SQL, może spowodować błąd nadmiaru arytmetycznego. Rozważ możliwość użycia funkcji kolumnowej COUNT_BIG dla tabel, które mają więcej niż 2 147 483 647 wierszy.

Użytkownicy systemów stowarzyszeń: Prześledź składnię instrukcji SQL, aby określić przyczynę problemu. Jeśli problem jest zależny od danych, sprawdź dane przetwarzane w źródle danych w momencie wystąpienia błędu. Zapoznaj się z odpowiednim dla tego źródła spisem komend SQL, aby określić poprawne zakresy dla typów danych.

sqlcode: -802

sqlstate: 22003

SQL0803NJedna lub kilka wartości w instrukcji INSERT, UPDATE lub w aktualizacji klucza obcego spowodowana instrukcją DELETE jest niepoprawna, ponieważ może spowodować utworzenie powtarzających się wierszy dla tabeli z kluczem podstawowym, ograniczeniem przez unikalność lub indeksem unikalnym.

Objaśnienie: Tabela obiektów INSERT lub UPDATE musi być ograniczona przez jeden lub więcej indeksów UNIQUE, aby zapewnić unikalne wartości w kolumnach lub grupach kolumn. Instrukcja DELETE dla tabeli nadrzędnej mogła spowodować aktualizację klucza obcego w tabeli zależnej ograniczonej przez jeden lub więcej indeksów UNIQUE, aby zapewnić unikalne wartości w kolumnach lub w grupach kolumn. Indeks unikalny może obsługiwać klucz podstawowy lub ograniczenie przez unikalność zdefiniowane w tabeli. Uzupełnianie żądanych wartości lub ich aktualizacja powoduje powielenie wartości w kolumnach.

Jeśli widok jest obiektem instrukcji INSERT lub UPDATE, ograniczenie dotyczy tabeli, na której został zdefiniowany widok.

Nie można wykonać instrukcji. Tabela pozostanie niezmieniona.

Działanie użytkownika: Prześledź definicje wszystkich indeksów UNIQUE zdefiniowanych w oparciu o tabelę obiektów, aby określić ograniczenia przez unikalność tych indeksów.

Dla instrukcji UPDATE upewnij się, że podana operacja nie była sprzeczna z ograniczeniami innymi niż przez unikalność. Jeśli nie spowoduje to wystąpienia błędu, prześledź zawartość tabeli obiektów, aby określić przyczynę problemu.

Dla instrukcji INSERT prześledź zawartość tabeli obiektów, aby określić, które wartości z podanej listy wartości naruszają ograniczenie przez unikalność. Alternatywnie, jeśli instrukcja INSERT zawiera podzapytanie, to aby określić przyczynę problemu, zawartość tabeli obiektów zaadresowana przez podzapytanie musi być porównana z zawartością tabeli obiektów.

Dla instrukcji DELETE prześledź tabele zależne dla ograniczeń przez unikalność w kluczach obcych, które zostały zdefiniowane z regułą ON DELETE SET NULL. Jedna taka tabela ma kolumnę klucza obcego zawartą w unikalnym indeksie, który nie może zawierać wartości NULL, jeśli nie podano wartości dla kolumny tej tabeli.

Użytkownicy systemów stowarzyszeń: Ogranicz wystąpienie problemu do źródła danych nieodpowiadającego na żądanie (zapoznaj się z podręcznikiem Problem Determination Guide, aby określić, które źródło danych nie przetworzyło instrukcji SQL) i sprawdź definicje indeksu oraz dane dla poprzednio wymienionych warunków.

sqlcode: -803

sqlstate: 23505

SQL0804NNiepoprawne parametry wejściowe aplikacji dla bieżącego żądania. Kod przyczyny "<kod-przyczyny>". Jeśli zmienna języka bazowego albo zmienna SQLVAR w obszarze deskryptorów SQL jest błędna, to: numer zmiennej języka bazowego/SQLVAR = "<numer-zmiennej>", SQLTYPE = "<typ-sql>", SQLLEN = "<długość-sql>", typ zmiennej języka bazowego/SQLVAR = "<wejście_lub_wyjście>".

Objaśnienie: W trakcie przetwarzania bieżącego żądania wystąpił błąd.

Kod przyczyny jest interpretowany w następujący sposób:

100
Tworzone żądanie nie jest obsługiwane albo jest poza kontekstem.

101
Obszar deskryptorów SQL.SQLN jest mniejszy niż obszar deskryptorów SQL.SQLD.

102
SQLVAR.SQLTYPE jest niepoprawne.

Użytkownicy systemów stowarzyszeń: Określony typ danych nie jest obsługiwany ani przez serwer stowarzyszony, ani przez źródło danych, do którego chcesz uzyskać dostęp.

103
Długość podana w SQLVAR.SQLLEN lub w SQLVAR2.SQLLONGLEN jest niepoprawna dla typu SQL podanego w SQLVAR.SQLTYPE.

104
Oczekiwane jest podwojenie zmiennych SQLVAR, lecz pole SQLDOUBLED z SQLDA.SQLDAID nie jest ustawione na '2'. Może to być wymagane z powodu dużego obiektu lub typu strukturalnego.

105
Dwubajtowy znak typu LOB ma wartość nieparzystą wskazywaną przez wskaźnik SQLVAR2.SQLDATALEN, która w kategoriach bajtów jest zawsze parzysta, nawet dla obiektów DBCLOB.

106
Wskaźnik SQLDATA jest niepoprawny lub wskazuje na niewystarczający obszar pamięci.

107
Wskaźnik SQLIND jest niepoprawny lub wskazuje na niewystarczający obszar pamięci.

108
Wskaźnik SQLDATALEN jest niepoprawny lub wskazuje na niewystarczający obszar pamięci.

109
Dla bieżącej instrukcji SQL oczekiwane jest podanie określonej liczby zmiennych języka bazowego/zmiennych SQLVAR.

110
Wskaźnik dużego obiektu (LOB) nie jest powiązany z dużym obiektem (LOB) zgodnego typu.

111
Wartość SQLTYPE dla zmiennej SQLVAR wskazuje duży obiekt (LOB), ale druga zmienna SQLVAR ma wartość Null.

112
Pole SQLDATATYPE NAME jest niepoprawne. Nie jest dostosowane do formatu przeznaczonego do identyfikowania typów zdefiniowanych przez użytkownika, istniejących w bazie danych. Format przeznaczony do identyfikowania istniejących typów zdefiniowanych przez użytkownika ma następującą postać: 8 bajtów, po nich kropka, a po nich następne 18 bajtów.

113
Pole SQLFLAG4 jest niepoprawne. Jeśli określony jest typ strukturalny, to wartość musi być równa X'12'. Jeśli określony jest typ referencyjny, to wartość musi być równa X'01'. W pozostałych przypadkach wartość musi być równa X'00'.

W instrukcjach SQL zawierających zmienne języka bazowego, aby znaleźć niepoprawną zmienną języka bazowego, należy policzyć zmienne od początku instrukcji (lub podinstrukcji, w przypadku złożonej instrukcji SQL). Dla instrukcji używających obszaru deskryptorów SQL numer zmiennej SQLVAR jest używany do lokalizacji niepoprawnej SQLVAR. Dla danych wejściowych obszaru deskryptorów należy liczyć tylko wejściowe zmienne języka bazowego lub SQLVAR; podobnie dla obszaru wyjściowego. Liczenie należy rozpocząć od 1.

Nie można wykonać instrukcji.

Działanie użytkownika: Sprawdź aplikację pod kątem zauważonych błędów. Programista nie powinien próbować modyfikować wyniku działania prekompilatora.

Użytkownicy systemów stowarzyszeń: Jeśli otrzymasz kod przyczyny równy 102, określ obsługiwany typ danych i wprowadź ponownie program.

sqlcode: -804

sqlstate: 07002

SQL0805NNie znaleziono pakietu "<nazwa-pakietu>".

Objaśnienie: Oto możliwe przyczyny wystąpienia tego komunikatu (SQLCODE):

Nie można wykonać instrukcji.

Działanie użytkownika: Podaj poprawną nazwę pakietu lub wykonaj wiązania programu. Jeśli wykonywany program użytkowy nie został powiązany z bazą danych, skontaktuj się z administratorem bazy danych, aby wykonać potrzebne wiązania.

Aby wykonać ponowne wiązanie programów narzędziowych DB2 z bazą danych, administrator bazy danych może na przykład w trakcie łączenia się z bazą danych wywołać jedną z następujących komend CLP z podkatalogu bnd:

Użytkownicy systemów stowarzyszeń: Sprawdź, czy pakiety wymagane dla serwera stowarzyszonego są powiązane z odnośnymi źródłami danych. Zapoznaj się z podręcznikiem Instalowanie i konfigurowanie - suplement, aby uzyskać więcej informacji dotyczących powiązań pakietów ze źródłami danych.

sqlcode: -805

sqlstate: 51002

SQL0808NSemantyka instrukcji CONNECT nie jest zgodna z semantyką innych istniejących połączeń.

Objaśnienie: Instrukcja CONNECT pochodzi z pliku wyjściowego prekompilowanego z opcjami połączenia (SQLRULES, CONNECT, SYNCPOINT lub RELEASE) innymi niż opcje pliku źródłowego, dla którego istnieje połączenie.

Działanie użytkownika: Sprawdź, czy wszystkie pliki zostały prekompilowane przy użyciu tych samych opcji instrukcji CONNECT lub, jeśli nie jest to możliwe, przed wywołaniem pierwszej instrukcji CONNECT wywołaj funkcję API SET CLIENT, aby przed wywołaniem ustawić żądane opcje dla przetwarzania aplikacji.

sqlcode: -808

sqlstate: 08001

SQL0811NWynik selekcji skalarnej, instrukcja SELECT INTO lub instrukcja VALUES INTO występuje w więcej niż jednym wierszu.

Objaśnienie: Błąd powstał w jednej z następujących sytuacji:

Użytkownicy systemów stowarzyszeń: Sytuacja ta może być wykryta przez serwer stowarzyszony lub przez źródło danych.

Nie można wykonać instrukcji.

Działanie użytkownika: Sprawdź, czy instrukcja zawiera poprawnie zapisany warunek. Jeśli tak, problem może dotyczyć danych i może powodować zwrócenie więcej niż jednego wiersza danych, gdy wymagany jest tylko jeden wiersz.

Użytkownicy systemów stowarzyszeń: Ogranicz wystąpienie problemu do źródła danych nieodpowiadającego na żądanie (zapoznaj się z podręcznikiem Problem Determination Guide, aby określić, które źródło danych nie przetworzyło instrukcji SQL) i sprawdź kryteria selekcji oraz dane dla tego obiektu.

sqlcode: -811

sqlstate: 21000

SQL0817NNie można wykonać instrukcji języka SQL, ponieważ jej wynikiem byłaby zabroniona operacja aktualizacji.

Objaśnienie: Aplikacja próbowała wykonać instrukcję języka SQL, której wynikiem byłaby aktualizacja danych użytkownika albo katalogu podsystemu. Jest to zabronione z jednego z podanych poniżej powodów:

Do takich instrukcji języka SQL należą INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, GRANT i REVOKE.

Nie można uruchomić instrukcji.

Działanie użytkownika: Jeśli aplikacja działa jako transakcja IMS wykonująca tylko zapytanie, poproś programistę systemu IMS o zmianę statusu (inquiry-only) transakcji, dla której działa aplikacja.

Jeśli aplikacja IMS lub CICS próbuje wykonać zdalną aktualizację, to albo należy zmienić aplikację, tak aby pracowała na serwerze DBMS jako aplikacja lokalna, albo należy zaktualizować serwer DBMS, tak aby obsługiwał transakcje dwufazowe.

Jeśli aplikacja usiłuje zaktualizować dane na wielu serwerach, to albo należy zmienić aplikację, albo zaktualizować wszystkie wymagane serwery DBMS, tak aby obsługiwały transakcje dwufazowe.

sqlcode: -817

sqlstate: 25000

SQL0818NWystąpił konflikt datownika.

Objaśnienie: Datownik wygenerowany przez prekompilator podczas prekompilacji nie jest taki sam, jak datownik zapamiętany z pakietem podczas wiązania.

Problem ten może zostać spowodowany przez:

Użytkownicy systemów stowarzyszeń: Poza wymienionymi powyżej przyczynami problem może również wynikać z braku powiązania wymaganych pakietów ze wszystkimi potrzebnymi źródłami danych.

Nie można wykonać instrukcji.

Działanie użytkownika: Wykonaj ponowne wiązanie programu użytkowego, używając dla programu pliku wiązania, który jest zgodny z modułem obiektu. Możesz także wywołać program zgodny z pakietem przechowywanym w bazie danych.

Podczas instalowania przykładowej bazy danych zapisz numer oraz tekst tego komunikatu i skontaktuj się z inżynierem serwisu.

Użytkownicy systemów stowarzyszeń: Dodatkowo, oprócz podanych powyżej działań sprawdź, czy pakiety wymagane dla serwera stowarzyszonego są powiązane z odnośnymi źródłami danych. Zajrzyj do podręcznika Instalowanie i konfigurowanie - suplement, aby uzyskać więcej informacji dotyczących powiązań pakietów ze źródłami danych.

sqlcode: -818

sqlstate: 51003

SQL0822NObszar deskryptorów SQL zawiera niepoprawny adres danej lub zmiennej indykacyjnej.

Objaśnienie: Aplikacja umieściła w obszarze deskryptorów SQL niepoprawny adres.

Nie można wykonać instrukcji.

Działanie użytkownika: Popraw aplikację, tak aby w obszarze deskryptorów SQL został umieszczony poprawny adres.

sqlcode: -822

sqlstate: 51004

SQL0840NNa liście instrukcji SELECT zostało zwróconych zbyt wiele pozycji.

Objaśnienie: Liczba pozycji zwróconych na liście SELECT przekroczyła dopuszczalne maksimum. Maksymalna wartość dla list SELECT (inaczej niż w przypadku wspólnych wyrażeń tabelowych) wynosi 1012. Maksymalna wartość dla list SELECT we wspólnym wyrażeniu tabelowym wynosi 5000.

Nie można wykonać instrukcji.

Działanie użytkownika: Sprawdź, czy wszystkie informacje są rzeczywiście potrzebne. (Zauważ, że liczba pozycji zwróconych przez listę SELECT * w instrukcji SQL SELECT * dla A, B, C jest sumą liczb kolumn we wszystkich trzech tabelach.) Jeśli jest to możliwe, to popraw instrukcję SQL, tak aby zwracane były tylko potrzebne pozycje. Jeśli potrzebne są wszystkie informacje, podziel instrukcję SQL na dwie lub więcej instrukcji.

sqlcode: -840

sqlstate: 54004

SQL0842NPołączenie z serwerem "<nazwa-serwera>" już istnieje.

Objaśnienie: Uruchomiono SQLRULES(STD) i instrukcja CONNECT identyfikuje istniejące połączenie SQL.

Działanie użytkownika: Zalecane działanie zależy od rodzaju błędu:

Popraw błąd w aplikacji i powtórz działanie.

sqlcode: -842

sqlstate: 08002

SQL0843NNazwa serwera nie określa istniejącego połączenia.

Objaśnienie: W instrukcji, komendzie lub funkcji API podano nazwę serwera, która nie określa istniejącego połączenia SQL dla aplikacji.

Błąd ten może wystąpić dla:

Działanie użytkownika: Zalecane działanie zależy od rodzaju błędu:

Popraw błąd w aplikacji i powtórz działanie.

sqlcode: -843

sqlstate: 08003

SQL0846NNiepoprawna nazwa kolumny identyfikującej "<nazwa-kolumny>".

Objaśnienie: W instrukcji ALTER lub CREATE TABLE specyfikacja kolumny identyfikującej może być niepoprawna z jednej z następujących przyczyn:

Nie można wykonać instrukcji.

Działanie użytkownika: Popraw składnię i wprowadź ponownie instrukcję.

sqlcode: -846

sqlstate: 42815

SQL0859NNiezrealizowany dostęp do bazy danych TM (Transaction Manager Database) z SQLCODE "<SQLCODE>".

Objaśnienie: Aplikacja została prekompilowana z opcją SYNCPOINT(TWOPHASE) i wymaga koordynacji zatwierdzania dwufazowego przez bazę danych menedżera transakcji. Baza danych TM jest niedostępna z jednej z następujących przyczyn:

Działanie użytkownika: Możliwe działania:

sqlcode: -859

sqlstate: 08502

SQL0863WPołączenie zakończyło się pomyślnie, ale można używać tylko znaków jednobajtowych.

Objaśnienie: Baza danych serwera i aplikacja typu klient używają stron kodowych dla różnych typów języków i nie można zagwarantować poprawnej obsługi wszystkich znaków ASCII spoza zakresu 7-bitowego (tylko znaki ASCII z 7-bitowego zakresu istnieją we wszystkich stronach kodowych). Na przykład mogło zostać nawiązane połączenie między stroną kodową japońską a Latin-1, ale żaden z japońskich znaków nie jest dostępny w stronie kodowej Latin-1, więc powinno się unikać tych znaków (ale znaki języka angielskiego będą poprawnie obsługiwane).

Użytkownicy systemów stowarzyszeń: Możliwe przyczyny:

Działanie użytkownika: Nie wysyłaj instrukcji SQL lub komend, które używają znaków innych niż powszechnie wykorzystywane w aplikacjach i stronach kodowych bazy danych.

Użytkownicy systemów stowarzyszeń: Nie wysyłaj instrukcji SQL lub komend, które używają znaków innych niż wspólne dla systemu klienta, systemu stowarzyszonego oraz źródła danych.

sqlcode: +863

sqlstate: 01539

SQL0865NNiepoprawna wartość tm_database.

Objaśnienie: Baza danych podana w konfiguracji menedżera baz danych jako tm_database jest niepoprawna. Baza danych musi być w wersji DB2 V2.1 lub nowszej i nie może być bazą danych, do której dostęp następuje przy użyciu protokołu DRDA (np. przez DB2 Connect).

Nie można uruchomić instrukcji.

Działanie użytkownika:

  1. Zaktualizuj konfigurację menedżera baz danych, podając poprawną bazę danych dla parametru tm_database.
  2. Wywołaj db2stop i db2start, aby się upewnić, że dokonano odpowiednich zmian.

sqlcode: -865

sqlstate: 08001

SQL0866NPrzekierowanie połączenia nie powiodło się. Kod przyczyny: "<kod-przyczyny>".

Objaśnienie: Umieszczenie bazy danych w katalogu spowodowało przekierowanie połączenia w sposób, który nie jest obsługiwany.

Możliwe kody przyczyn:

01
Połączenie bazy danych spowodowało więcej niż jedno przekierowanie z serwera do innego serwera; obsługiwane jest tylko jedno przekierowanie połączenia.

02
Próbowano nawiązać połączenie między bieżącą wersją klienta lub serwera DB2 i wersją 1 klienta lub serwera. Próba ta nie powiodła się, ponieważ przekierowanie nie jest obsługiwane z wersją 1 klienta lub serwera.

Działanie użytkownika: Działania, jakie należy podjąć dla danego kodu przyczyny:

01
Ponownie wpisz bazę danych do katalogu, tak aby nie było więcej niż jednego serwera przekierowującego połączenie do innego serwera w ścieżce połączenia.

02
Ponownie wpisz bazę danych do katalogu, tak aby nie było pośredniego serwera przekierowującego połączenie.

sqlcode: -866

sqlstate: 08001

SQL0868NPróbowano wykonać instrukcję CONNECT z klauzulą USER/USING z serwerem, z którym połączenie już istnieje.

Objaśnienie: Istnieje już połączenie bieżące lub unieruchomione i próba wykonania instrukcji CONNECT z danym serwerem z klauzulą USER/USING jest niepoprawna.

Działanie użytkownika: Możliwe działania:

sqlcode: -868

sqlstate: 51022

SQL0880NSAVEPOINT "<nazwa-punktu-zapisywania>" nie istnieje lub jest w tym kontekście niepoprawny.

Objaśnienie: Wystąpił błąd podczas próby wykonania instrukcji ROLLBACK TO SAVEPOINT "<nazwa-punktu-zapisywania>". Nie istnieje punkt zapisywania o tej nazwie albo został ustanowiony na zewnątrz bieżącego kontekstu niepodzielnego wykonania.

Nie można wykonać instrukcji.

Działanie użytkownika: Popraw nazwę punktu zapisywania w instrukcji i ponownie wydaj instrukcję.

sqlcode: -880

sqlstate: 3B001

SQL0881NSAVEPOINT o nazwie "<nazwa-punktu-zapisywania>" już istnieje, lecz ta nazwa punktu zapisywania nie może być ponownie użyta.

Objaśnienie: Nazwa "<nazwa-punktu-zapisywania>" była już użyta w instrukcji SAVEPOINT. Nazwa punktu zapisywania nie może być użyta ponownie, ponieważ co najmniej jedna z instrukcji SAVEPOINT, która korzysta z tej nazwy ma także wyspecyfikowany parametr UNIQUE, co oznacza, że nazwa musi być unikalna.

Nie można wykonać instrukcji. Nowy punkt zapisywania nie został ustawiony. Stary punkt zapisywania o tej samej nazwie nadal istnieje.

Działanie użytkownika: Wybierz inną nazwę dla tego punktu zapisywania i ponownie wykonaj instrukcję SAVEPOINT. Jeśli ten istniejący punkt zapisywania musi być ponownie użyty, to wykonaj instrukcję RELEASE SAVEPOINT, aby zwolnić istniejący punkt zapisywania. Musisz jednak mieć świadomość tego, że instrukcja RELEASE SAVEPOINT zwalnia także wszystkie inne punkty zapisywania, zostały ustanowione w transakcji od momentu, w którym został wyspecyfikowany zwalniany punkt zapisywania. Więcej informacji na ten temat znajdziesz w skorowidzu języka SQL.

sqlcode: -881

sqlstate: 3B501

SQL0882NPunkt zapisywania nie istnieje.

Objaśnienie: Wystąpił błąd podczas próby wykonania instrukcji ROLLBACK TO SAVEPOINT. Wykonanie instrukcji ROLLBACK TO SAVEPOINT jest niedozwolone bez określenia konkretnej nazwy punktu zapisywania, w sytuacji, w której nie ma istniejących punktów zapisywania.

Nie można wykonać instrukcji.

Działanie użytkownika: Spróbuj wykonać inną instrukcję lub za pomocą instrukcji ROLLBACK spróbuj wycofać zmiany dla całej transakcji.

sqlcode: -882

sqlstate: 3B502


[ Początek strony | Poprzednia strona | Następna strona | Spis treści | Indeks ]