Komunikaty

SQL3600 - SQL3699

SQL3600NOpcja IMMEDIATE CHECKED instrukcji SET INTEGRITY jest niepoprawna, ponieważ tabela "<nazwa-tabeli>" nie jest w stanie sprawdzania w toku.

Objaśnienie: Naruszenie ograniczeń dla danych jest sprawdzane tylko wtedy, gdy tabela jest ustawiona w stan sprawdzania w toku.

Działanie użytkownika: Użyj instrukcji SET INTEGRITY z opcją OFF, aby ustawić tabelę w stan sprawdzania w toku.

sqlcode: -3600

sqlstate: 51027

SQL3601WInstrukcja spowodowała, że jedna lub kilka tabel znalazło się automatycznie w stanie sprawdzania w toku.

Objaśnienie: Istnieją dwie sytuacje, w których mogło to nastąpić.

  1. Aby ustawić tabelę nadrzędną w strukturze referencyjnej, trzeba postawić tabele zależne i podrzędne w stan sprawdzania w toku. Jest to konieczne do wymuszenia spójności referencyjnej ograniczeń. Dodanie klucza obcego, gdy tabela nadrzędna jest w stanie sprawdzania w toku, wymaga automatycznego postawienia wszystkich nowych tabel zależnych i podrzędnych względem tej tabeli nadrzędnej w stan sprawdzania w toku.
  2. Aby ustawić tabelę podstawową posiadającą zależne bezpośrednio odświeżane tabele podsumowujące, należy ustawić te zależne tabele podsumowujące w stan sprawdzania w toku. Jest to konieczne, aby wprowadzić zależności danych między tabelą podstawową i zależną tabelą podsumowującą.

Działanie użytkownika: To jest komunikat ostrzegawczy. Użytkownik musi wykonać instrukcję SET INTEGRITY z opcją IMMEDIATE CHECKED w celu sprawdzenia integralności we wszystkich tabelach zależnych i podrzędnych.

sqlcode: +3601

sqlstate: 01586

SQL3602WPodczas sprawdzania danych program wykrył naruszenia ograniczeń i przeniósł je do tabel wyjątków.

Objaśnienie: Znaleziono wiersze, który naruszają ograniczenia, zdefiniowane dla tabeli, której sprawdzanie zostało określone w instrukcji SET INTEGRITY. Takie wiersze zostały przesunięte do tabeli wyjątków.

Działanie użytkownika: W tabeli wyjątków sprawdź wiersze, które naruszają ograniczenia. Wiersze zostały usunięte z oryginalnej tabeli, ale mogą zostać poprawione i przeniesione z powrotem z tabeli wyjątków.

sqlcode: +3602

sqlstate: 01603

SQL3603NPodczas sprawdzania przetwarzania danych instrukcją SET INTEGRITY, znaleziono naruszenie integralności, związane z ograniczeniem o nazwie "<nazwa>".

Objaśnienie: Znaleziono wiersz, który narusza ograniczenie, zdefiniowane dla tabeli, której sprawdzanie zostało określone w instrukcji SET INTEGRITY. Nazwa "<nazwa>" jest albo nazwą ograniczenia, albo nazwą generowanej kolumny.

Działanie użytkownika: Wierszy tych nie usunięto z tabeli, ponieważ użyto opcji FOR EXCEPTION.

Podczas sprawdzania danych zalecane jest przetwarzanie instrukcji SET INTEGRITY z opcją FOR EXCEPTION. Dane mogą być poprawione na podstawie informacji z tabeli (tabel) wyjątków.

sqlcode: -3603

sqlstate: 23514

SQL3604NTabela wyjątków "<nazwa-tabeli-wyj>" odpowiadająca tabeli "<nazwa-tabeli>" w instrukcji SET INTEGRITY lub w programie narzędziowym LOAD nie ma odpowiedniej struktury, została zdefiniowana z indeksami unikalnymi, ograniczeniami, kolumnami generowanymi, wyzwalaczami lub jest sama w stanie sprawdzania w toku.

Objaśnienie: Tabela wyjątków odpowiadająca danej tabeli musi mieć podobną do niej definicję. Opcjonalne kolumny dla programów narzędziowych opisano w odpowiednich sekcjach dokumentacji tabel wyjątków. W tabeli wyjątków może nie być żadnych generowanych kolumn. Tabela wyjątków nie może mieć zdefiniowanych żadnych ograniczeń ani wyzwalaczy. Tabela wyjątków nie powinna być także w stanie sprawdzania w toku.

Działanie użytkownika: Utwórz tabelę wyjątków w sposób opisany w odpowiednich paragrafach dokumentacji, a następnie ponownie uruchom instrukcję lub program narzędziowy.

sqlcode: -3604

sqlstate: 428A5

SQL3605NTabeli "<nazwa-tabeli>", której nazwa znajduje się w instrukcji SET INTEGRITY, nie ma na liście do sprawdzenia lub jest to tabela wyjątków, określona więcej niż raz.

Objaśnienie: Jeśli w instrukcji SET INTEGRITY zostanie określona klauzula FOR EXCEPTION, to błąd ten może być spowodowany następującymi czynnikami:

Działanie użytkownika: Popraw nazwy tabel i wprowadź ponownie komendę.

sqlcode: -3605

sqlstate: 428A6

SQL3606NWystępuje niezgodność liczby sprawdzanych tabel z liczbą tabel wyjątków, określoną w instrukcji SET INTEGRITY.

Objaśnienie: Pomiędzy umieszczonymi na liście oryginalnymi tabelami i tabelami wyjątków musi być odpowiedniość typu jeden-do-jeden.

Działanie użytkownika: Utwórz brakującą tabelę wyjątków, jeśli tego nie zrobiono, umieść ją na liście i wprowadź ponownie komendę.

sqlcode: -3606

sqlstate: 428A7

SQL3608NZa pomocą instrukcji SET INTEGRITY nie można sprawdzić ani zresetować stanu Sprawdzanie w toku dla tabeli zależnej "<nazwa-tabeli-zal>", jeśli tabela nadrzędna "<nazwa-tabeli-nadrz>" jest w stanie sprawdzania w toku.

Objaśnienie: Tabela nadrzędna musi być czysta (nie w stanie sprawdzania w toku) lub być ujęta na liście wywołania w celu:

Działanie użytkownika: Upewnij się, że tabela nadrzędna nie jest w stanie sprawdzania w toku, wykonując instrukcję SET INTEGRITY, by sprawdzić tabelę nadrzędną.

Zaleca się sprawdzanie najpierw tabeli nadrzędnej. Możliwe jest także sprawdzenie tabeli zależnej i umieszczenie tabeli nadrzędnej na liście wywołań. W takim przypadku, komenda może nadal się nie powieść, jeśli w tabeli nadrzędnej występują naruszenia ograniczeń i nie zostały one usunięte. Może się tak zdarzyć, jeśli nie została użyta opcja FOR EXCEPTION.

W przypadku cyklu referencyjnego wszystkie tabele muszą być umieszczone na liście wywołań.

sqlcode: -3608

sqlstate: 428A8


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