SQL0801N | Pró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
SQL0802N | Wystą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
SQL0803N | Jedna 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
SQL0804N | Niepoprawne 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:
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.
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
SQL0805N | Nie 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
SQL0808N | Semantyka 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
SQL0811N | Wynik 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
SQL0817N | Nie 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
SQL0818N | Wystą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
SQL0822N | Obszar 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
SQL0840N | Na 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
SQL0842N | Połą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
SQL0843N | Nazwa 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
SQL0846N | Niepoprawna 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
SQL0859N | Niezrealizowany 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
SQL0863W | Połą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
SQL0865N | Niepoprawna 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:
sqlcode: -865
sqlstate: 08001
SQL0866N | Przekierowanie 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:
Działanie użytkownika: Działania, jakie należy podjąć dla danego kodu przyczyny:
sqlcode: -866
sqlstate: 08001
SQL0868N | Pró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
SQL0880N | SAVEPOINT "<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
SQL0881N | SAVEPOINT 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
SQL0882N | Punkt 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