SQL0501N | Kursor określony w instrukcji FETCH lub CLOSE nie jest otwarty. |
Objaśnienie: Program próbował: (1) wykonać instrukcję FETCH przy użyciu kursora lub (2) wykonać instrukcję CLOSE w stosunku do kursora, gdy podany kursor nie był otwarty.
Nie można wykonać instrukcji.
Działanie użytkownika: Sprawdź poprzedni komunikat (SQLCODE), który mógł zamknąć kursor. Zauważ, że gdy kursor jest zamknięty, wszystkie instrukcje pobierające lub zamykające kursor nadają zmiennej SQLCODE wartość równą -501.
Jeśli nie zanotowano poprzednich wartości zmiennej SQLCODE, popraw aplikację, aby w trakcie wykonywania instrukcji FETCH lub CLOSE kursor był otwarty.
sqlcode: -501
sqlstate: 24501
SQL0502N | Kursor podany w instrukcji OPEN jest już otwarty. |
Objaśnienie: Program próbował wykonać instrukcję OPEN z otwartym kursorem.
Nie można wykonać instrukcji. Kursor pozostał niezmieniony.
Działanie użytkownika: Popraw program, tak aby nie próbował wykonywać instrukcji OPEN z otwartym kursorem.
sqlcode: -502
sqlstate: 24502
SQL0503N | Kolumna nie może być aktualizowana, ponieważ nie została zidentyfikowana w klauzuli FOR UPDATE instrukcji SELECT z kursorem. |
Objaśnienie: Używając kursora program próbował aktualizować wartości w kolumnie tabeli, która nie została zidentyfikowana w warunku FOR UPDATE w deklaracji kursora lub w przygotowanej instrukcji SELECT.
Aby kolumna mogła zostać aktualizowana, musi zostać zidentyfikowana w klauzuli FOR UPDATE deklaracji kursora.
Nie można wykonać instrukcji.
Działanie użytkownika: Popraw program. Jeśli kolumna wymaga aktualizacji, dodaj jej nazwę do klauzuli FOR UPDATE deklaracji kursora.
sqlcode: -503
sqlstate: 42912
SQL0504N | Kursor "<nazwa>" nie jest zdefiniowany. |
Objaśnienie: Podano instrukcję UPDATE lub DELETE WHERE CURRENT OF "<nazwa>", lecz kursor "<nazwa>" nie został zadeklarowany w aplikacji.
Nie można wykonać instrukcji.
Działanie użytkownika: Sprawdź kompletność programu użytkowego i popraw błędy ortograficzne w nazwach kursorów.
sqlcode: -504
sqlstate: 34000
SQL0505N | Kursor "<nazwa>" został już zdefiniowany. |
Objaśnienie: W instrukcji DECLARE zadeklarowano już kursor o danej nazwie.
Nie można wykonać instrukcji.
Działanie użytkownika: Sprawdź, czy nazwa została napisana poprawnie.
SQL0507N | Kursor określony w instrukcji UPDATE lub DELETE nie jest otwarty. |
Objaśnienie: Program próbował wykonać instrukcję UPDATE lub DELETE WHERE CURRENT OF z kursorem, który nie był otwarty.
Nie można wykonać instrukcji. Nie zaktualizowano ani nie usunięto żadnych danych.
Działanie użytkownika: Sprawdź poprzedni komunikat (SQLCODE), który mógł zamknąć kursor. Zauważ, że gdy kursor jest zamknięty, wszystkie instrukcje pobierające lub zamykające kursor nadają zmiennej SQLCODE wartość -501, a wszystkie instrukcje aktualizujące lub usuwające nadają zmiennej wartość SQLCODE -507. Popraw program użytkowy, tak aby podczas wykonywania instrukcji UPDATE lub DELETE podany kursor był otwarty.
sqlcode: -507
sqlstate: 24501
SQL0508N | Kursor określony w instrukcji UPDATE lub DELETE nie jest ustawiony na żadnym wierszu. |
Objaśnienie: Program próbował wykonać instrukcję UPDATE lub DELETE WHERE CURRENT OF z kursorem, który nie był ustawiony na żadnym wierszu tabeli obiektów. Kursor musi być ustawiony na wierszu, który ma być zaktualizowany lub usunięty.
Kursor nie jest ustawiony na wierszu, jeśli wiersz został usunięty. Dotyczy to każdego użycia kursora wewnątrz punktu zachowania, gdy wykonywana jest instrukcja ROLLBACK TO SAVEPOINT.
Użytkownicy systemów stowarzyszeń: Rekord w zdalnym źródle danych został zaktualizowany i/lub usunięty przez inną aplikację (lub inny kursor w tej samej aplikacji) i rekord ten już nie istnieje.
Nie można wykonać instrukcji. Nie zaktualizowano ani nie usunięto żadnych danych.
Działanie użytkownika: Popraw program użytkowy, tak aby podczas wykonywania instrukcji UPDATE lub DELETE kursor był poprawnie ustawiony na określonym wierszu tabeli obiektów. Zauważ, że kursor nie jest ustawiony na żadnym wierszu, jeśli instrukcja FETCH zwróciła komunikat SQL0100W (SQLCODE = 100).
sqlcode: -508
sqlstate: 24504
SQL0509N | Tabela określona w instrukcji UPDATE lub DELETE nie jest tabelą określoną w instrukcji SELECT dla kursora. |
Objaśnienie: Program próbował wykonać instrukcję UPDATE lub DELETE WHERE CURRENT OF z kursorem, w którym nazwa tabeli nie jest zgodna z nazwą tabeli określoną w instrukcji SELECT, w której został zadeklarowany kursor.
Nie można wykonać instrukcji.
Działanie użytkownika: Popraw program użytkowy, tak aby tabela identyfikowana w instrukcji UPDATE lub DELETE była tabelą identyfikowaną w deklaracji kursora.
sqlcode: -509
sqlstate: 42827
SQL0510N | Instrukcja UPDATE lub DELETE nie jest dozwolona z podanym kursorem. |
Objaśnienie: Program próbował wykonać instrukcję UPDATE lub DELETE WHERE CURRENT OF z kursorem dla definicji widoku lub tabeli, które nie zezwalały na daną operację aktualizacji lub usuwania. Błąd ten może wystąpić, na przykład podczas usuwania z widoku tylko do odczytu lub w przypadku aktualizacji, gdy kursor nie został zdefiniowany z klauzulą FOR UPDATE.
W menedżerze baz danych widok jest tylko do odczytu, jeśli instrukcja SELECT zawiera:
Zauważ, że te warunki nie dotyczą podzapytań instrukcji SELECT.
Kursor został zadeklarowany z klauzulą FOR FETCH ONLY lub ORDER BY.
Kursor jest niejasny i została podana operacja wiązania BLOCKING ALL.
Nie można wykonać instrukcji.
Działanie użytkownika: Jeśli menedżer baz danych nie wykonuje poprawnie instrukcji i kursor jest oparty na instrukcji SELECT lub instrukcji VALUES tylko do odczytu, nie podawaj razem z nimi żadnych instrukcji dotyczących aktualizacji lub usuwania.
Jeśli menedżer baz danych nie wykonuje poprawnie instrukcji i kursor nie jest oparty na instrukcji SELECT lub instrukcji VALUES tylko do odczytu i jest zdefiniowany razem z klauzulą FOR FETCH ONLY lub ORDER BY, usuń tę klauzulę z definicji kursora albo nie podawaj żadnych instrukcji dotyczących aktualizacji lub usuwania.
Jeśli menedżer baz danych nie wykonuje poprawnie instrukcji i na podstawie definicji lub kontekstu nie można określić, czy kursor jest tylko do odczytu, czy można go modyfikować, powiąż program ponownie z opcją wiązania BLOCKING NO lub BLOCKING UNAMBIG.
Użytkownicy systemów stowarzyszeń: Spróbuj ograniczyć problem do określonego źródła danych nieobsługującego danego żądania (podręcznik Problem Determination Guide zawiera procedury identyfikacji uszkodzonego źródła danych). Jeśli źródło danych nie odpowiada na żądanie, sprawdź ograniczenia dla tego źródła danych, aby określić przyczynę występowania problemu i sposób jego rozwiązania. Jeśli dla źródeł danych istnieją ograniczenia, zapoznaj się z podręcznikiem SQL dla tych źródeł danych aby sprawdzić, dlaczego obiektu nie można zaktualizować.
sqlcode: -510
sqlstate: 42828
SQL0511N | Klauzula FOR UPDATE nie jest dopuszczalna, ponieważ nie można modyfikować tabeli określonej przez kursor. |
Objaśnienie: Tabela wynikowa instrukcji SELECT lub VALUES nie może zostać zaktualizowana.
W menedżerze baz danych tabela wyników jest tylko do odczytu, jeśli kursor jest oparty na instrukcji VALUES lub instrukcja SELECT zawiera jedną z następujących pozycji:
Zauważ, że te warunki nie dotyczą podzapytań instrukcji SELECT.
Nie można wykonać instrukcji.
Działanie użytkownika: Nie wykonuj aktualizacji tabeli wynikowej.
Użytkownicy systemów stowarzyszeń: Spróbuj ograniczyć problem do określonego źródła danych nieobsługującego danego żądania (podręcznik Problem Determination Guide zawiera procedury identyfikacji uszkodzonego źródła danych). Jeśli źródło danych nie odpowiada na żądanie, sprawdź ograniczenia dla tego źródła danych, aby określić przyczynę występowania problemu i sposób jego rozwiązania. Jeśli dla źródeł danych istnieją ograniczenia, zapoznaj się z podręcznikiem SQL dla tych źródeł danych aby sprawdzić, dlaczego obiektu nie można zaktualizować.
sqlcode: -511
sqlstate: 42829
SQL0513W | Instrukcja SQL zmodyfikuje całą tabelę lub widok. |
Objaśnienie: Instrukcja UPDATE lub DELETE nie zawiera klauzuli WHERE, dlatego więc w trakcie wykonywania instrukcji wszystkie wiersze tabeli lub widoku są modyfikowane.
Instrukcja została zaakceptowana.
Użytkownicy systemów stowarzyszeń: Nie wszystkie źródła danych raportują ten warunek ostrzeżenia. Serwer stowarzyszony próbuje zgłosić je za każdym razem, gdy wystąpi odpowiedni warunek, ale nie można zagwarantować, że serwer stowarzyszony będzie zawsze w stanie wykryć ten warunek. Dlatego ostrzeżenia nie mogą być jedynym narzędziem używanym, aby zapobiec niepożądanemu modyfikowaniu przez operacje UPDATE/DELETE całej tabeli albo widoku.
Działanie użytkownika: Sprawdź, czy na pewno chcesz modyfikować całą tabelę lub widok.
SQL0514N | Kursor "<nazwa>" nie jest w stanie prepared (przygotowany). |
Objaśnienie: Program użytkowy próbował użyć kursora "<nazwa>", który nie był w stanie prepared (przygotowany). Kursor jest związany z instrukcją, która albo (1) nie została przygotowana, albo (2) jest niepoprawna z powodu użycia ROLLBACK, lub (3) jest niepoprawna z powodu jawnego lub niejawnego ponownego wiązania pakietu.
Nie można wykonać instrukcji.
Działanie użytkownika: W przypadku (1) przed próbą otwarcia kursora przygotuj instrukcję nazwaną w instrukcji DECLARE CURSOR dla "<nazwa>". W przypadku (2) nie wywołuj instrukcji ROLLBACK dopóki kursor jest używany. W przypadku (3) przygotowanie kursora należy wykonać ponownie.
sqlcode: -514
sqlstate: 26501
SQL0516N | Instrukcja DESCRIBE nie określa przygotowanej instrukcji. |
Objaśnienie: Nazwa instrukcji w instrukcji DESCRIBE musi określać instrukcję przygotowaną w tej samej transakcji baz danych.
Nie można wykonać instrukcji.
Działanie użytkownika: Sprawdź, czy podana została nazwa instrukcji, która została przygotowana.
sqlcode: -516
sqlstate: 26501
SQL0517N | Kursor "<nazwa>" wykrył, że przygotowana instrukcja jest inna niż SELECT lub VALUES. |
Objaśnienie: Kursora "<nazwa>" nie można używać w podany sposób, ponieważ przygotowana instrukcja nazwana w deklaracji kursora nie jest instrukcją SELECT lub VALUES.
Nie można wykonać instrukcji.
Działanie użytkownika: Sprawdź, czy nazwa instrukcji została podana poprawnie w instrukcjach PREPARE oraz DECLARE CURSOR dla kursora "<nazwa>". Możesz również poprawić program, aby tylko instrukcje SELECT lub VALUES były używane z deklaracjami kursora.
sqlcode: -517
sqlstate: 07005
SQL0518N | Instrukcja podana w instrukcji EXECUTE nie jest w stanie przygotowania lub jest instrukcją SELECT lub VALUES. |
Objaśnienie: Program użytkowy próbuje wykonać EXECUTE dla instrukcji, która (1) nie została przygotowana, (2) jest niepoprawna z powodu użycia ROLLBACK, (3) jest instrukcją SELECT lub VALUES, (4) jest niepoprawna z powodu jawnego lub niejawnego ponownego wiązania pakietu.
Nie można wykonać instrukcji.
Działanie użytkownika: W przypadku (1) przygotuj instrukcję przed próbą wykonania EXECUTE. W przypadku (2) nie wywołuj instrukcji ROLLBACK dopóki nie zakończysz używać przygotowanej instrukcji lub ponownie przygotuj instrukcję po wykonaniu ROLLBACK. W przypadku (3) upewnij się, że instrukcja nie była instrukcją SELECT lub VALUES. W przypadku (4) przygotowanie kursora musi zostać wykonane ponownie.
sqlcode: -518
sqlstate: 07003
SQL0519N | Instrukcja PREPARE identyfikuje instrukcję SELECT lub VALUES z otwartym kursorem "<nazwa>". |
Objaśnienie: Program użytkowy próbował przygotować instrukcję SELECT lub VALUES dla otwartego kursora.
Nie można przygotować instrukcji. Kursor nie został zmieniony.
Działanie użytkownika: Popraw program użytkowy, tak aby nie próbował przygotowywać instrukcji SELECT lub VALUES dla otwartego kursora.
sqlcode: -519
sqlstate: 24506
SQL0525N | Nie można wykonać instrukcji SQL, ponieważ wystąpił błąd podczas wiązania sekcji = "<numer-sekcji>" pakietu = "<nazwa-pakietu>" elementu spójności = X"<element-spójności>". |
Objaśnienie: Poniżej przedstawiono możliwe przyczyny:
Możliwe wartości to:
Nie można uruchomić instrukcji.
Działanie użytkownika: Jeśli instrukcja SQL nie zostanie wykonana we wskazanym położeniu, popraw program, aby instrukcja z błędem nie była wykonywana w tym położeniu. Wykonaj prekompilację, kompilację oraz wiązanie, które wymieni pakiet. Jeśli instrukcja SQL nie zostanie wykonana we wskazanym położeniu, popraw błąd znaleziony podczas wiązania i dowiąż pakiet, używając BIND z ACTION(REPLACE). Jeśli zostało dowiązanych wiele wersji pakietu, wydaj następującą instrukcję SELECT, aby określić, w której wersji występuje błąd: SELECT VERSION FROM id_położenia.SYSIBM.SYSPACKAGE WHERE LOCATION = ' ' AND COLLID = 'id_kolekcji' AND NAME = 'id_pakietu' AND HEX(CONTOKEN) = 'element_spójności'.
Gdzie:
sqlcode: -525
sqlstate: 51015
SQL0526N | Żądana funkcja nie ma zastosowania do zadeklarowanych tabel tymczasowych. |
Objaśnienie: Wykonywana instrukcja SQL odnosi się do zadeklarowanej tabeli tymczasowej. Zadeklarowana tabela tymczasowa nie może być użyta w danym kontekście.
Nie można wykonać instrukcji.
Działanie użytkownika: Zmodyfikuj instrukcję SQL, aby zapewnić, że odniesienia do obiektu nie są do zadeklarowanych tabel tymczasowych.
sqlcode: -526
sqlstate: 42995
SQL0528N | Tabela "<nazwa-tabeli>" ma już ograniczenie przez unikalność, które jest powieleniem ograniczenia "<nazwa>". |
Objaśnienie: Klauzula UNIQUE używa tej samej listy kolumn, co klauzula PRIMARY KEY, inna klauzula UNIQUE albo ograniczenie PRIMARY KEY lub UNIQUE, które już istnieje dla tabeli "<nazwa-tabeli>". Nie można powielać ograniczenia przez unikalność.
"<nazwa>" jest nazwą ograniczenia, jeśli ograniczenie zostało podane lub istnieje. Jeśli nie została podana nazwa ograniczenia, "<nazwa>" jest pierwszą nazwą kolumny podaną na liście kolumn klauzuli UNIQUE z trzema kropkami.
Nie można wykonać instrukcji.
Działanie użytkownika: Usuń powieloną klauzulę UNIQUE lub zmień listę kolumn, tak aby wybrać kolumny, które nie są częścią ograniczenia przez unikalność.
sqlcode: -528
sqlstate: 42891
SQL0530N | Wartość wstawiania lub aktualizacji ograniczenia FOREIGN KEY "<nazwa-ograniczenia>" nie jest równa żadnej wartości klucza nadrzędnego tabeli nadrzędnej. |
Objaśnienie: Wartość klucza obcego tabeli obiektów jest ustawiana, ale nie jest równa żadnej wartości klucza nadrzędnego tabeli nadrzędnej.
Podczas wstawiania wiersza do tabeli zależnej, wstawiana wartość klucza obcego musi być równa wartości klucza nadrzędnego dowolnego wiersza tabeli nadrzędnej odpowiedniego powiązania (associated relationship).
Podobnie, gdy aktualizowana jest wartość klucza obcego, wartość, którą jest on aktualizowany, musi być równa wartości klucza nadrzędnego w tabeli nadrzędnej powiązanych relacji w momencie zakończenia instrukcji.
Użytkownicy systemów stowarzyszeń: Ograniczenie może istnieć dla źródła danych (jeśli w źródle danych istnieją tabele nadrzędna i potomna).
Niektóre źródła danych nie dostarczają poprawnych wartości parametru "<nazwa-ograniczenia>". W takim przypadku element komunikatu ma format : "<źródło danych>:UNKNOWN", co oznacza, że właściwa wartość dla określonego źródła danych nie jest znana.
Nie można wykonać instrukcji. Zawartość tabeli obiektów nie ulega zmianie.
Działanie użytkownika: Najpierw prześledź wstawianą lub aktualizowaną wartość klucza obcego, a następnie porównaj ją z każdą wartością klucza nadrzędnego tabeli nadrzędnej, aby określić i usunąć problem.
sqlcode: -530
sqlstate: 23503
SQL0531N | Nie można aktualizować klucza nadrzędnego w wierszu nadrzędnym relacji "<nazwa-ograniczenia>". |
Objaśnienie: Próbowano aktualizować klucz nadrzędny w wierszu tabeli nadrzędnej, ale klucz nadrzędny w podanym wierszu ma wiersze zależne w tabeli zależnej związanej z ograniczeniem "<nazwa-ograniczenia>".
Gdy po zakończeniu instrukcji regułą aktualizacji ograniczenia "<nazwa-ograniczenia>" jest NO ACTION, nie można aktualizować wartości klucza nadrzędnego w wierszu nadrzędnym, jeśli wiersz ten ma jakieś wiersze zależne na końcu instrukcji.
Jeśli regułą modyfikacji dla ograniczenia "<nazwa-ograniczenia>" jest RESTRICT, wartość klucza nadrzędnego w nadrzędnym wierszu nie może zostać zaktualizowana, jeśli nadrzędny wiersz ma jakiekolwiek wiersze zależne w chwili aktualizowania klucza nadrzędnego.
Użytkownicy systemów stowarzyszeń: Ograniczenie może istnieć dla źródła danych (jeśli w źródle danych istnieją tabele nadrzędna i potomna).
Niektóre źródła danych nie dostarczają poprawnych wartości parametru "<nazwa-ograniczenia>". W takim przypadku element komunikatu ma format : "<źródło danych>:UNKNOWN", co oznacza, że właściwa wartość dla określonego źródła danych nie jest znana.
Nie można wykonać instrukcji. Zawartość tabeli zależnej pozostanie niezmieniona.
Działanie użytkownika: Sprawdź klucz nadrzędny tabeli obiektów i klucz obcy tabeli zależnej, aby określić, czy wartość podanego wiersza klucza nadrzędnego powinna zostać zmieniona. Jeśli problem nie zostanie w ten sposób zidentyfikowany, przejrzyj zawartość tabeli obiektów oraz tabeli zależnej, aby określić i rozwiązać problem.
sqlcode: -531
sqlstate: 23001, 23504
SQL0532N | Nie można usunąć wiersza nadrzędnego, ponieważ relacja "<nazwa-ograniczenia>" ogranicza usuwanie. |
Objaśnienie: Podczas operacji próbowano usunąć podany wiersz tabeli nadrzędnej, ale klucz nadrzędny w podanym wierszu ma zależne wiersze w ograniczeniu referencyjnym "<nazwa-ograniczenia>" i dla relacji została podana reguła usuwania NO ACTION lub RESTRICT.
Gdy, po zakończeniu instrukcji, regułą usuwania ograniczenia "<nazwa-ograniczenia>" jest NO ACTION, nie można usunąć wiersza tabeli nadrzędnej, jeśli wiersze zależne są ciągle zależne od klucza nadrzędnego.
Gdy regułą usuwania ograniczenia "<nazwa-ograniczenia>" jest RESTRICT, nie można usunąć wiersza tabeli nadrzędnej, jeśli wiersz nadrzędny ma podczas usuwania wiersze zależne.
Zauważ, że usuwanie może kaskadowo usunąć inne wiersze w tabelach zależnych z regułą usuwania NO ACTION lub RESTRICT. Stąd ograniczenie "<nazwa-ograniczenia>" może dotyczyć innej tabeli niż początkowa operacja usuwania.
Użytkownicy systemów stowarzyszeń: Ograniczenie może istnieć dla źródła danych (jeśli w źródle danych istnieją tabele nadrzędna i potomna).
Niektóre źródła danych nie dostarczają poprawnych wartości parametru "<nazwa-ograniczenia>". W takich przypadkach, odpowiednie pola zawierają wartości (takie jak "nieznany") wskazujące, że dana wartość nie jest znana.
Nie można wykonać instrukcji. Zawartość tabeli nie ulega zmianie.
Działanie użytkownika: Prześledź regułę usuwania dla wszystkich tabel podrzędnych, aby określić i poprawić problem. Konkretne powiązanie z tabelami można określić przy pomocy relacji "<nazwa-ograniczenia>".
sqlcode: -532
sqlstate: 23001, 23504
SQL0533N | Instrukcja INSERT jest niepoprawna, ponieważ relacja ogranicza wynik pełnej selekcji do jednego wiersza. |
Objaśnienie: Podczas operacji INSERT z pełną selekcją próbowano wstawić wiele wierszy do tabeli, która jest nadrzędna i zależna w niektórych relacjach ograniczenia referencyjnego.
Pełna selekcja operacji INSERT powinna zwrócić nie więcej niż jeden wiersz danych.
Nie można wykonać instrukcji INSERT. Zawartość tabeli obiektów nie ulega zmianie.
Użytkownicy systemów stowarzyszeń: Ograniczenie może istnieć dla źródła danych (jeśli w źródle danych istnieją tabele nadrzędna i potomna).
Działanie użytkownika: Prześledź warunek wyszukiwania pełnej selekcji, aby zapewnić wybór nie więcej niż jednego wiersza danych.
sqlcode: -533
sqlstate: 21501
SQL0534N | Niepoprawna aktualizacja wielu wierszy. |
Objaśnienie: Podczas operacji UPDATE próbowano wykonać aktualizację wielu wierszy kolumny włączonej do klucza głównego lub indeksu unikalnego.
Aktualizacja wielu wierszy kolumn klucza głównego lub indeksu unikalnego nie jest obsługiwana.
Nie można wykonać instrukcji UPDATE. Zawartość tabeli nie ulega zmianie.
Użytkownicy systemów stowarzyszeń: Ograniczenie może istnieć w bazie serwera stowarzyszonego (jeśli tabele nadrzędna i potomna istnieją w bazie serwera stowarzyszonego jako tabele), lub w źródle danych (jeśli tabele nadrzędna i potomna istnieją w źródle danych).
Działanie użytkownika: Zapewnij, że warunek wyszukiwania instrukcji UPDATE wybierze tylko jeden wiersz tabeli obiektów do aktualizacji.
sqlcode: -534
sqlstate: 21502
SQL0535N | Instrukcja DELETE jest niepoprawna, ponieważ relacja odwołująca się do siebie ogranicza usuwanie do jednego wiersza. |
Objaśnienie: Operacja DELETE z warunkiem WHERE próbowała usunąć wiele wierszy z tabeli, która była nadrzędną i zależną w tej samej relacji ograniczenia referencyjnego z regułą usuwania RESTRICT lub SET NULL.
Klauzula WHERE operacji DELETE powinna wybierać nie więcej niż jeden wiersz danych.
Nie można wykonać instrukcji DELETE. Zawartość tabeli obiektów nie ulega zmianie.
Użytkownicy systemów stowarzyszeń: Ograniczenie może istnieć dla źródła danych (jeśli w źródle danych istnieją tabele nadrzędna i potomna).
Działanie użytkownika: Prześledź warunek wyszukiwania klauzuli WHERE, aby zapewnić wybór nie więcej niż jednego wiersza danych.
INFORMACJA: Ograniczenie to dotyczy jedynie wersji wcześniejszych niż DB2 wersja 2.
sqlcode: -535
sqlstate: 21504
SQL0536N | Instrukcja DELETE jest niepoprawna, ponieważ jej wykonanie może wpłynąć na tabelę "<nazwa>". |
Objaśnienie: Próbowano wykonać operację DELETE z odwołaniem do wskazanej tabeli w podzapytaniu.
Instrukcja DELETE z odwołaniem do wskazanej tabeli w podzapytaniu może na nią wpływać, ponieważ jest ona:
Użytkownicy systemów stowarzyszeń: Ograniczenie może istnieć dla źródła danych (jeśli w źródle danych istnieją tabele nadrzędna i potomna).
Niektóre źródła danych nie dostarczają poprawnych wartości parametru "<nazwa>". W takich przypadkach, odpowiednie pola zawierają wartości (takie jak "nieznany") wskazujące, że dana wartość nie jest znana.
Nie można wykonać instrukcji.
Działanie użytkownika: Nie odwołuj się do tabeli w podzapytaniu instrukcji DELETE, gdy instrukcja DELETE może wpływać na tę tabelę.
UWAGA: Ten błąd odnosi się tylko do wydań DB2 wcześniejszych niż DB2 wersja 2 i hostów, do których dostęp następuje przez DB2 Connect.
sqlcode: -536
sqlstate: 42914
SQL0537N | Klauzula PRIMARY KEY, FOREIGN KEY, UNIQUE lub klauzula PARTITIONING KEY identyfikuje więcej niż jedno wystąpienie kolumny "<nazwa>". |
Objaśnienie: Kolumna "<nazwa>" pojawia się więcej niż jeden raz w klauzulach PRIMARY KEY, FOREIGN KEY, UNIQUE lub PARTITIONING KEY instrukcji CREATE albo ALTER.
Użytkownicy systemów stowarzyszeń: Ograniczenie może istnieć dla źródła danych (jeśli w źródle danych istnieją tabele nadrzędna i potomna).
Niektóre źródła danych nie dostarczają poprawnych wartości parametru "<nazwa>". W takich przypadkach, odpowiednie pola zawierają wartości (takie jak "nieznany") wskazujące, że dana wartość nie jest znana.
Nie można wykonać instrukcji.
Działanie użytkownika: Podaj unikalną nazwę dla każdej kolumny.
sqlcode: -537
sqlstate: 42709
SQL0538N | FOREIGN KEY "<nazwa>" nie zgadza się z opisem klucza nadrzędnego tabeli "<nazwa-tabeli>". |
Objaśnienie: Definicja wskazanego klucza obcego nie zgadza się z opisem klucza nadrzędnego tabeli "<nazwa-tabeli>".
Oto możliwe błędy:
"<Nazwa>" jest nazwą ograniczenia, jeśli zostało ono podane w klauzuli FOREIGN KEY. Jeśli nazwa ograniczenia nie została podana, "<nazwa>" jest nazwą pierwszej kolumny podaną w klauzuli i poprzedzoną trzema kropkami.
Użytkownicy systemów stowarzyszeń: Niektóre źródła danych nie dostarczają odpowiednich wartości dla "<nazwa>" i "<nazwa-tabeli>". W takich przypadkach, odpowiednie pola zawierają wartości (takie jak "nieznany") wskazujące, że dana wartość nie jest znana.
Ograniczenie może istnieć dla źródła danych (jeśli w źródle danych istnieją tabele nadrzędna i potomna).
Nie można wykonać instrukcji.
Działanie użytkownika: Popraw instrukcję, tak aby opis klucza obcego był zgodny z opisem klucza nadrzędnego.
sqlcode: -538
sqlstate: 42830
SQL0539N | Tabela "<nazwa>" nie ma klucza "<typ-klucza>". |
Objaśnienie: Wystąpiła jedna z następujących sytuacji:
Użytkownicy systemów stowarzyszeń: Ograniczenie może istnieć dla źródła danych (jeśli w źródle danych istnieją tabele nadrzędna i potomna).
Niektóre źródła danych nie dostarczają odpowiednich wartości dla "<nazwa>" i "<typ-klucza>". W takich przypadkach, odpowiednie pola zawierają wartości (takie jak "nieznany") wskazujące, że dana wartość nie jest znana.
Nie można wykonać instrukcji. Katalog systemowy nie może zostać zdefiniowany jako główny w ograniczeniu referencyjnym.
Działanie użytkownika: Tworząc ograniczenie referencyjne, przed określeniem (ograniczeń) dla kluczy obcych, podaj klucz główny.
sqlcode: -539
sqlstate: 42888
SQL0540N | Definicja tabeli "<nazwa-tabeli>" jest niepełna, ponieważ brakuje indeksu głównego lub wymaganego indeksu unikalnego. |
Objaśnienie: Nazwa tabeli została zdefiniowana w klauzuli PRIMARY KEY lub klauzuli UNIQUE. Jej definicja jest niepełna, ponieważ nie może zostać użyta, dopóki nie zostanie zdefiniowany indeks unikalny dla klucza głównego (indeks główny) i dla każdego zestawu kolumn w klauzuli UNIQUE (wymagane indeksy unikalne). Próbowano użyć tabeli w klauzuli FOREIGN KEY lub w instrukcji SQL, którą można zmienić.
Nie można uruchomić instrukcji.
Działanie użytkownika: Zdefiniuj indeks główny lub wymagany indeks unikalny w tabeli przed wykonaniem referencji.
sqlcode: -540
sqlstate: 57001
SQL0541W | Ograniczenie referencyjne, klucz główny lub ograniczenie przez unikalność "<nazwa>" jest ignorowane, ponieważ jest ograniczeniem powielonym. |
Objaśnienie: Jeśli "<nazwa>" odnosi się do ograniczenia referencyjnego, klauzula FOREIGN KEY używa tego samego klucza obcego i tabeli nadrzędnej, co inna klauzula FOREIGN KEY.
Jeśli "<nazwa>" odnosi się do klucza głównego lub ograniczenia przez unikalność, oznacza to, że zaistniała jedna z następujących sytuacji:
Jeśli podano ograniczenie, "<nazwa>" jest jego nazwą. Jeśli nazwa ograniczenia nie została podana, "<nazwa>" jest nazwą pierwszej kolumny podaną w klauzuli FOREIGN KEY albo UNIQUE i poprzedzoną trzema kropkami.
Użytkownicy systemów stowarzyszeń: Ograniczenie może istnieć dla źródła danych (jeśli w źródle danych istnieją tabele nadrzędna i potomna).
Niektóre źródła danych nie dostarczają poprawnych wartości parametru "<nazwa>". W takich przypadkach, odpowiednie pola zawierają wartości (takie jak "nieznany") wskazujące, że dana wartość nie jest znana.
Wskazane ograniczenie referencyjne lub ograniczenie przez unikalność nie zostało utworzone. Instrukcja została wykonana pomyślnie.
Działanie użytkownika: Nie jest wymagane żadne działanie. Procedura jest kontynuowana.
sqlcode: +541
sqlstate: 01543
SQL0542N | "<nazwa>" nie może być kolumną klucza głównego lub unikalnego, ponieważ może zawierać wartości null. |
Objaśnienie: Kolumna "<nazwa>" podana w klauzuli PRIMARY KEY albo w klauzuli UNIQUE jest zdefiniowana, tak aby dopuszczała wartości null.
Użytkownicy systemów stowarzyszeń: Niektóre źródła danych nie dostarczają odpowiednich wartości dla "<nazwa>". W takich przypadkach, odpowiednie pola zawierają wartości (takie jak "nieznany") wskazujące, że dana wartość nie jest znana.
Nie można wykonać instrukcji.
Działanie użytkownika: Popraw definicję kolumny, klucza głównego lub klucza unikalnego.
sqlcode: -542
sqlstate: 42831
SQL0543N | Nie można usunąć wiersza z tabeli nadrzędnej, ponieważ ograniczenie sprawdzenia "<nazwa-ograniczenia>" ogranicza usuwanie. |
Objaśnienie: Nie można usunąć wiersza z tabeli nadrzędnej, ponieważ tabela docelowa jest tabelą nadrzędną połączoną ograniczeniem referencyjnym z tabelą zależną z regułą usuwania SET NULL. Ograniczenie sprawdzenia zdefiniowane w tabeli zależnej ogranicza tabelę w taki sposób, że nie może ona nie zawierać żadnych wartości.
Nie można wykonać instrukcji.
Działanie użytkownika: Przeanalizuj klucz obcy i związaną z nim regułę usuwania z tabeli zależnej i wykluczające ją ograniczenie sprawdzenia. Zmień albo regułę usuwania, albo ograniczenie sprawdzenia, tak aby nie wykluczały się nawzajem.
sqlcode: -543
sqlstate: 23511
SQL0544N | Nie można dodać ograniczenia sprawdzenia "<nazwa-ograniczenia>", ponieważ tabela zawiera wiersz, który narusza ograniczenie. |
Objaśnienie: Co najmniej jeden istniejący w tabeli wiersz narusza ograniczenie sprawdzenia, które zostało dodane w instrukcji ALTER TABLE.
Nie można wykonać instrukcji.
Działanie użytkownika: Przejrzyj definicję ograniczenia sprawdzenia podaną w instrukcji ALTER TABLE i dane w tabeli, aby określić, dlaczego nastąpiło naruszenie ograniczenia. Zmień ograniczenie sprawdzenia lub dane, tak aby ograniczenie nie było naruszane.
sqlcode: -544
sqlstate: 23512
SQL0545N | Żądana operacja nie jest dopuszczalna, ponieważ wiersz nie spełnia ograniczenia sprawdzenia "<nazwa-ograniczenia>". |
Objaśnienie: W przypadku operacji INSERT lub UPDATE może wystąpić naruszenie ograniczenia sprawdzenia. Wiersz wynikowy naruszył definicję ograniczenia sprawdzenia w tabeli.
Nie można wykonać instrukcji.
Działanie użytkownika: Przejrzyj dane i sprawdź definicję ograniczenia w widoku katalogu SYSCAT.CHECKS, aby sprawdzić niezrealizowane instrukcje INSERT lub UPDATE. Zmień dane, tak aby ograniczenie nie było naruszone.
sqlcode: -545
sqlstate: 23513
SQL0546N | Ograniczenie sprawdzenia "<nazwa-ograniczenia>" jest niepoprawne. |
Objaśnienie: Ograniczenie sprawdzenia w instrukcji CREATE TABLE lub ALTER TABLE jest niepoprawne z jednej lub kilku następujących przyczyn:
Nie można wykonać instrukcji.
Działanie użytkownika: Działanie użytkownika w zależności od przyczyny błędu:
sqlcode: -546
sqlstate: 42621
SQL0548N | Ograniczenie sprawdzenia zdefiniowane przy użyciu elementu "<element-ograniczenia-sprawdzenia>" jest niepoprawne. |
Objaśnienie: Ograniczenie sprawdzenia w instrukcji CREATE TABLE lub ALTER TABLE jest niepoprawne z jednej lub kilku następujących przyczyn:
Element z tekstu komunikatu o błędzie określa niepoprawną pozycję.
Nie można wykonać instrukcji.
Działanie użytkownika: Działanie użytkownika w zależności od przyczyny błędu:
sqlcode: -548
sqlstate: 42621.
SQL0549N | Instrukcja "<instrukcja>" jest niedozwolona dla "<typu-obiektu1>", "<nazwy-obiektu1>", gdyż jest aktywna opcja powiązania DYNAMICRULES(BIND) w "<typie-obiektu2>". |
Objaśnienie: Program próbował wykonać wskazaną instrukcję SQL. Jednak należy ona do grupy instrukcji, które nie mogą być wywoływane z pakietu lub planu, do którego odnosi się opcja DYNAMICRULES(BIND). Do takich instrukcji SQL należą:
Działanie użytkownika: Aby poprawić błąd, wykonaj jedną z czynności:
sqlstate: 42509
SQL0551N | "<ID-autoryzowanego-użytkownika>" nie ma uprawnienia do wykonania operacji "<operacja>" na obiekcie "<obiekt>". |
Objaśnienie: Użytkownik o identyfikatorze "<ID-autoryzowanego-użytkownika>" próbował wykonać podaną "<operację>" na obiekcie "<nazwa>" bez odpowiednich uprawnień.
Podczas tworzenia lub zmieniania tabeli z ograniczeniami referencyjnymi komunikat (SQLCODE) może oznaczać, że użytkownik nie ma autoryzacji REFERENCES do tworzenia lub usuwania klucza FOREIGN KEY. W takim przypadku "<operacja>" ma wartość "REFERENCES", a "<nazwa>" jest obiektem z odwołaniami do ograniczenia.
Podczas uruchamiania narzędzia DB2 lub interfejsu CLI może być konieczne ponowne wiązanie programów narzędziowych DB2 z bazą danych, ponieważ nie istnieje już identyfikator użytkownika, który utworzył bazę danych lub użytkownik nie ma wymaganych uprawnień.
Użytkownicy systemów stowarzyszeń: jeśli komunikat zostanie zwrócony w momencie zmiany przez użytkownika kolumny remote_pw widoku SYSCAT.USEROPTIONS, oznacza to, że użytkownik nie ma uprawnień do zmiany hasła innego użytkownika. Do tego celu niezbędne jest uprawnienie SYSADM albo ID autoryzowanego użytkownika (wartości odpowiedniego rejestru specjalnego USER) odpowiadający wartości kolumny authid, której wiersze są zmieniane. Niektóre źródła danych nie dostarczają odpowiednich wartości dla "<authid>", <operacja> i <nazwa>. W takich przypadkach znaczniki będą miały następujący format: "<źródło danych> AUTHID:UNKNOWN", "UNKNOWN" i "<źródło danych>:TABLE/VIEW". Wskazuje to, że rzeczywiste wartości identyfikatora autoryzowanego użytkownika, operacja i nazwa w podanym źródle danych są nieznane.
Nie można wykonać instrukcji.
Działanie użytkownika: Sprawdź, czy "<ID-autoryzowanego-użytkownika>" ma wystarczające uprawnienia do wykonania tej operacji.
Użytkownicy systemów stowarzyszeń: Sprawdzanie uprawnień może się odbywać na serwerze stowarzyszonym i/lub w źródle danych.
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:
sqlcode: -551
sqlstate: 42501
SQL0552N | "<ID-autoryzowanego-użytkownika>" nie ma uprawnienia do wykonania operacji "<operacja>". |
Objaśnienie: Użytkownik o identyfikatorze "<ID-autoryzowanego-użytkownika>" próbował wykonać podaną "<operację>" bez odpowiednich uprawnień.
Użytkownicy systemów stowarzyszeń: Niektóre źródła danych nie dostarczają odpowiednich wartości dla "<ID-autoryzowanego-użytkownika>" i <operacji>. W takich przypadkach znaczniki komunikatu będą miały następujący format: "<źródło danych> AUTHID:UNKNOWN" i "UNKNOWN". Wskazuje to, że rzeczywiste wartości identyfikatora autoryzowanego użytkownika i operacji w podanym źródle danych są nieznane.
Nie można wykonać instrukcji.
Działanie użytkownika: Sprawdź, czy "<ID-autoryzowanego-użytkownika>" ma wystarczające uprawnienia do wykonania tej operacji.
Użytkownicy systemów stowarzyszeń: Sprawdzanie uprawnień może się odbywać na serwerze stowarzyszonym i/lub w źródle danych.
sqlcode: -552
sqlstate: 42502
SQL0553N | Nie można utworzyć obiektu z nazwą schematu "<nazwa-schematu>". |
Objaśnienie: Przyczyna, dla której nazwa schematu "<nazwa-schematu>" jest niepoprawna, zależy od typu tworzonego obiektu.
Nie można wykonać instrukcji.
Działanie użytkownika: Użyj poprawnej nazwy schematu lub usuń jawną nazwę schematu i ponownie wykonaj instrukcję.
sqlcode: -553
sqlstate: 42939
SQL0554N | ID autoryzowanego użytkownika nie może nadać uprawnienia sobie samemu. |
Objaśnienie: Identyfikator autoryzowanego użytkownika próbował wykonać instrukcję GRANT, w której jego ID występował jako jedna z pozycji listy ID autoryzowanych użytkowników, którym są nadawane uprawnienia.
Nie można wykonać instrukcji.
Działanie użytkownika: Usuń z listy własny ID autoryzowanego użytkownika.
sqlcode: -554
sqlstate: 42502
SQL0555N | ID autoryzowanego użytkownika nie może odebrać uprawnienia sobie samemu. |
Objaśnienie: ID autoryzowanego użytkownika próbował wykonać instrukcję REVOKE, w której jego ID autoryzowanego użytkownika występował jako jedna z pozycji listy identyfikatorów, którym są odbierane uprawnienia.
Nie można wykonać instrukcji.
Działanie użytkownika: Usuń z listy własny ID autoryzowanego użytkownika.
sqlcode: -555
sqlstate: 42502
SQL0556N | Próba odebrania uprawnienia należącego do "<ID-autoryzowanego-użytkownika>" nie udała się, ponieważ "<ID-autoryzowanego-użytkownika>" nie ma tego uprawnienia. |
Objaśnienie: Nie można odebrać uprawnienia, ponieważ "<ID-autoryzowanego-użytkownika>" nie ma tego uprawnienia.
Nie można wykonać instrukcji.
Działanie użytkownika: Zmień instrukcję REVOKE, tak aby była zgodna z obowiązującymi regułami i ponownie ją wywołaj. Zapewnij, że kiedy instrukcja REVOKE zawiera kilka uprawnień do usunięcia oraz listę ID autoryzowanego użytkownika, każdy z tych identyfikatorów będzie miał co najmniej jedno z podanych uprawnień.
sqlcode: -556
sqlstate: 42504
SQL0557N | Nie można nadać lub odebrać podanej kombinacji uprawnień. |
Objaśnienie: Wystąpiła jedna z następujących sytuacji:
Nie można wykonać instrukcji.
Działanie użytkownika: Popraw i ponownie wywołaj instrukcję.
sqlcode: -557
sqlstate: 42852
SQL0558N | Próba odebrania uprawnienia należącego do "<ID-autoryzowanego-użytkownika>" nie udała się, ponieważ "<ID-autoryzowanego-użytkownika>" wciąż ma to uprawnienie. |
Objaśnienie: "<ID-autoryzowanego-użytkownika>" ma "<uprawnienie-do-kontroli>". Uprawnienie, które miało zostać odebrane, zawiera się w sposób niejawny w "<uprawnieniu-do-kontroli>", nie może więc zostać odebrane dopóki "<uprawnienie-do-kontroli>" również nie zostanie odebrane.
Parametr "<uprawnienie-do-kontroli>" przyjmuje następujące wartości:
Nie można uruchomić instrukcji. Nie zostaną odebrane żadne uprawnienia.
Działanie użytkownika: Jeśli jest to konieczne, odbierz "<uprawnienie do kontroli>".
sqlcode: -558
sqlstate: 42504
SQL0562N | Podane uprawnienia do bazy danych nie mogą zostać nadane grupie PUBLIC. |
Objaśnienie: Instrukcja GRANT próbowała nadać uprawnienie do bazy danych identyfikatorowi PUBLIC. Nie można nadać uprawnienia DBADM użytkownikowi PUBLIC.
Nie można wykonać instrukcji.
Działanie użytkownika: Niejawna funkcja nie jest obsługiwana.
sqlcode: -562
sqlstate: 42508
SQL0567N | "<ID-autoryzowanego-użytkownika>" jest niepoprawnym identyfikatorem autoryzowanego użytkownika. |
Objaśnienie: ID autoryzowanego użytkownika podany w "<ID-autoryzowanego-użytkownika>" jest niepoprawny z jednej z następujących przyczyn:
Nie można wykonać instrukcji.
Działanie użytkownika: Popraw niepoprawne ID autoryzowanych użytkowników.
sqlcode: -567
sqlstate: 42602
SQL0569N | Instrukcja GRANT/REVOKE nie powiodła się, ponieważ "<nazwa-autoryzowanego-użytkownika>" może identyfikować w systemie zarówno użytkownika, jak i grupę. |
Objaśnienie: W instrukcjach GRANT lub REVOKE podano nazwę uprawnień, która może identyfikować w obszarze nazw ochrony zarówno użytkownika jak i grupę, brakuje natomiast bezpośredniego podania parametru USER albo GROUP. Dlatego instrukcja jest niejasna. Przy korzystaniu z ochrony DCE parametr USER albo GROUP jest zawsze wymagany.
Działanie użytkownika: Zmień instrukcję, tak aby w sposób jawny podawała parametr USER lub GROUP jednoznacznie identyfikujące wymagany ID autoryzowanego użytkownika.
sqlcode: -569
sqlstate: 56092
SQL0570W | Nie nadano wszystkich wymaganych uprawnień do obiektu "<nazwa-obiektu>" typu "<typ-obiektu>". |
Objaśnienie: Próbowano wykonać operację GRANT dla obiektu "<nazwa-obiektu>" typu "<typ-obiektu>", lecz część lub wszystkie uprawnienia nie zostały nadane. ID autoryzowanego użytkownika, który wywołał instrukcję, nie ma wszystkich uprawnień potrzebnych do nadawania uprawnień w opcji nadawania lub nie ma uprawnienia DBADM.
Wszystkie właściwe uprawnienia zostały przyznane.
Działanie użytkownika: Uzyskaj wymagane uprawnienia i powtórz działanie.
sqlcode: +570
sqlstate: 01007
SQL0572N | Pakiet "<nazwa-pakietu>" jest nieoperatywny. |
Objaśnienie: Pakiet "<nazwa-pakietu>" jest zaznaczony jako nieoperatywny i musi zostać jawnie ponownie powiązany zanim zostanie użyty. Pakiet ten nie może być używany, ponieważ zostanie usunięta jedna lub kilka zdefiniowanych przez użytkownika funkcji zależnych.
Działanie użytkownika: Wykonaj jawnie ponowne wiązanie pakietu przy pomocy komendy REBIND lub BIND.
sqlcode: -572
sqlstate: 51028
SQL0573N | Lista kolumn, podana w klauzuli referencyjnej ograniczenia "<nazwa>", nie określa ograniczenia przez unikalność tabeli nadrzędnej "<nazwa-tabeli>". |
Objaśnienie: Lista nazw kolumn została podana w klauzuli referencyjnej dla ograniczenia identyfikowanego przez "<nazwę>", która nie odpowiada nazwom kolumn klucza podstawowego lub dowolnego klucza unikalnego tabeli referencyjnej "<nazwa-tabeli>".
Jeśli podano ograniczenie, "<nazwa>" jest jego nazwą. Jeśli nie podano nazwy ograniczenia, "<nazwa>" jest nazwą pierwszej kolumny podanej na liście kolumn klauzuli FOREIGN KEY zakończonej trzema kropkami.
Nie można wykonać instrukcji.
Działanie użytkownika: Popraw listę kolumn w klauzuli odniesień lub dodaj do tabeli odniesień ograniczenie przez unikalność.
sqlcode: -573
sqlstate: 42890
SQL0574N | Wartość DEFAULT lub wartość atrybutu IDENTITY nie jest poprawna dla kolumny "<nazwa-kolumny>" w tabeli "<nazwa-tabeli>". Kod przyczyny: "<kod-przyczyny>". |
Objaśnienie: Wartość DEFAULT lub wartość atrybutu IDENTITY dla kolumny "<nazwa-kolumny>" w tabeli "<nazwa-tabeli>" nie jest poprawna . Oto możliwe wartości kodów przyczyny:
Nie można wykonać instrukcji.
Działanie użytkownika: Popraw wartość DEFAULT lub wartość atrybutu IDENTITY na podstawie zwróconego kodu przyczyny.
sqlcode: -574
sqlstate: 42894
SQL0575N | Nie można używać widoku albo tabeli skrótów "<nazwa>", ponieważ został on oznaczony jako nieoperatywny. |
Objaśnienie: Widok lub tabela skrótów "<nazwa>" została zaznaczona jako nieoperatywna, ponieważ tabela, widok, alias lub uprawnienie, od którego jest ona zależna zostało usunięte. Żadna inna instrukcja SQL poza następującymi nie może używać widoku:
Nie można wykonać instrukcji.
Działanie użytkownika: Jeśli "<nazwa>" jest widokiem, utwórz ponownie widok, wprowadzając instrukcję CREATE VIEW przy pomocy takiej samej definicji widoku co widok nieoperatywny. Jeśli "<nazwa>" jest tabelą skrótów, utwórz ponownie tabelę skrótów, wprowadzając instrukcję CREATE TABLE przy pomocy takiej samej definicji tabeli skrótów jak nieoperatywna tabela skrótów.
sqlcode: -575
sqlstate: 51024
SQL0576N | Nie można utworzyć aliasu "<nazwa>" dla "<nazwa>", ponieważ zostałby utworzony powtarzający się łańcuch aliasów. |
Objaśnienie: Definicja aliasu "<nazwa>" dla "<nazwa2>" mogłaby spowodować powtarzający się łańcuch aliasów, który nie mógłby zostać przekształcony. Na przykład "alias A ma odniesienie do aliasu B, który ma odniesienie do aliasu A" jest powtarzającym się łańcuchem aliasów, którego nie można przerwać.
Nie można wykonać instrukcji.
Działanie użytkownika: Zmień definicję aliasu dla "<nazwy>" lub popraw jedną z pozostałych definicji aliasów w łańcuchu aliasów, aby uniknąć wystąpienia powtarzającego się łańcucha aliasów.
sqlcode: -576
sqlstate: 42916
SQL0577N | Funkcja lub procedura "<nazwa-funkcji>" zdefiniowana przez użytkownika (o nazwie "<nazwa-specyficzna>") próbowała zmodyfikować dane, a nie została zdefiniowana jako MODIFIES SQL DATA. |
Objaśnienie: Program zawierający implementację funkcji lub procedury zdefiniowanej przez użytkownika nie może zmodyfikować instrukcji SQL.
Działanie użytkownika: Usuń wszystkie funkcje SQL, które modyfikują dane, następnie ponownie skompiluj program. W przypadku procedur zapisanych w bazie sprawdź dozwolony poziom SQL, który określono w instrukcji CREATE PROCEDURE.
sqlcode: -577
sqlstate: 38002
sqlstate: 42985
SQL0579N | Funkcja lub procedura "<nazwa-funkcji>" zdefiniowana przez użytkownika (o nazwie "<nazwa-specyficzna>") próbowała odczytać dane, a nie została zdefiniowana jako READ SQL DATA ani jako MODIFIES SQL DATA. |
Objaśnienie: Program zawierający implementację funkcji lub procedury zdefiniowanej przez użytkownika nie może odczytać instrukcji SQL.
Działanie użytkownika: Usuń wszystkie funkcje SQL, które odczytują dane, następnie ponownie skompiluj program. W przypadku procedur zapisanych w bazie sprawdź dozwolony poziom SQL, który określono w instrukcji CREATE PROCEDURE.
sqlcode: -579
sqlstate: 38004
sqlstate: 42985
SQL0580N | Wszystkie wyrażenia wynikowe CASE nie mogą być równe NULL. |
Objaśnienie: W instrukcji występuje wyrażenie CASE, w którym wszystkie wyrażenia wynikowe (wyrażenia po parametrach THEN i ELSE) są równe NULL.
Nie można wykonać instrukcji.
Działanie użytkownika: Zmień wyrażenie CASE, tak aby zawierało co najmniej jeden wynik inny niż parametr NULL.
sqlcode: -580
sqlstate: 42625
SQL0581N | Typy danych wyniku wyrażenia CASE nie są zgodne. |
Objaśnienie: W instrukcji występuje wyrażenie CASE, w którym wyrażenia wynikowe (wyrażenia po parametrach THEN i ELSE) nie są zgodne.
Typ danych wyrażenia CASE jest określany przy użyciu "Zasady dotyczące typów danych wynikowych" (Rules for Result Data Types) w wyrażeniach wynikowych. Typ danych może być niezgodny z jednej z następujących przyczyn:
Nie można wykonać instrukcji.
Działanie użytkownika: Popraw wyrażenia wynikowe, tak aby były zgodne.
sqlcode: -581
sqlstate: 42804
SQL0582N | Wyrażenie CASE w klauzuli VALUES, predykacie IN, klauzuli GROUP BY albo ORDER BY nie może zawierać predykatu kwantyfikowanego, predykatu IN używającego pełnej selekcji ani predykatu EXISTS. |
Objaśnienie: Warunkiem wyszukiwania wyrażenia CASE jest:
a wyrażenie CASE jest częścią:
Takie wyrażenia CASE nie są obsługiwane. Wyrażenie CASE może być częścią funkcji napisanej w języku SQL.
Nie można wykonać instrukcji.
Działanie użytkownika: Nie używaj w wyrażeniu CASE predykatu kwantyfikowanego, predykatu IN ani predykatu EXISTS. Jeśli wyrażenie CASE jest częścią funkcji, może zaistnieć konieczność sformułowania zapytania bez funkcji, która jest przyczyną błędu.
sqlcode: -582
sqlstate: 42625
SQL0583N | Użycie procedury "<nazwa-procedury>" jest niepoprawne, ponieważ nie jest ona deterministyczna lub ma akcję zewnętrzną. |
Objaśnienie: Procedura (funkcja lub metoda) "<nazwa-procedury>" jest zdefiniowana jako procedura niedeterministyczna lub procedura z akcją zewnętrzną. Ten typ procedury nie jest obsługiwany w kontekście, w którym została użyta procedura. Funkcja nie jest poprawna, gdy występuje:
Nie można wykonać instrukcji.
Działanie użytkownika: Jeśli użycie procedury niedeterministycznej lub procedury z akcją zewnętrzną nie było zamierzone, zastąp ją procedurą bez takiej charakterystyki. Jeśli zachowanie się, związane z procedurą niedeterministyczną lub z procedurą akcji zewnętrznej było zamierzone, użyj innej formy instrukcji, w której zamiar ten będzie jawny.
sqlcode: -583
sqlstate: 42845
SQL0584N | Niepoprawne użycie NULL lub DEFAULT. |
Objaśnienie: DEFAULT może być używane tylko w klauzuli VALUES, która jest częścią instrukcji INSERT.
Klauzula VALUES, która nie jest częścią instrukcji INSERT, musi mieć wartość różną od NULL co najmniej w jednym wierszu każdej kolumny.
Jeśli jako nazwę kolumny w klauzuli WHERE lub HAVING podano DEFAULT, musi zostać podana wielkimi literami w podwójnym cudzysłowie.
Użytkownicy systemów stowarzyszeń: Wartość DEFAULT nie może być użyta w klauzuli VALUES instrukcji INSERT, w której obiekt jest pseudonimem.
Działanie użytkownika: Wstaw w klauzuli VALUES wartość inną niż NULL lub DEFAULT. Jeśli wartość DEFAULT jest używana jako nazwa kolumny, wpisz ją w podwójnym cudzysłowie wielkimi literami.
sqlcode: -584
sqlstate: 42608
SQL0585N | Nazwa schematu "<nazwa-schematu>" nie może pojawić się w ścieżce funkcji więcej niż raz. |
Objaśnienie: Ścieżka do funkcji zawiera więcej niż jedną "<nazwę-schematu>". Ścieżka do funkcji może zawierać tylko jedno wystąpienie każdej nazwy schematu.
Nie można wykonać instrukcji.
Działanie użytkownika: Usuń ze ścieżki do funkcji dwukrotne wystąpienie "<nazwy-schematu>".
sqlcode: -585
sqlstate: 42732
SQL0586N | Całkowita długość rejestru specjalnego CURRENT FUNCTION PATH nie może przekraczać 254 znaków. |
Objaśnienie: Rejestr specjalny CURRENT FUNCTION PATH został zdefiniowany jako VARCHAR(254). Łańcuch zawiera wszystkie nazwy schematów w cudzysłowie, oddzielone od siebie przecinkami. Całkowita długość łańcucha, składającego się ze wszystkich nazw schematów, w CURRENT FUNCTION PATH nie może przekraczać 254 znaków. W instrukcji SET CURRENT FUNCTION PATH lub opcji FUNCPATH komendy PREP lub BIND, która spowodowała wystąpienie tego komunikatu, został przekroczony powyższy limit.
Nie można wykonać tej instrukcji lub komendy.
Działanie użytkownika: Usuń nazwy schematów i zredukuj całkowitą długość tak, by nie przekraczała 254 znaków. Jeśli są wymagane wszystkie nazwy schematów, może być konieczne scalenie niektórych funkcji zdefiniowanych przez użytkownika, tak aby w CURRENT FUNCTION PATH było wymaganych mniej nazw schematów.
sqlcode: -586
sqlstate: 42907
SQL0590N | Nazwa "<nazwa>" określona w procedurze "<procedura>" nie jest unikalna. |
Objaśnienie: Nazwa "<nazwa>" jest określona jako parametr, zmienna SQL, kursor, etykieta lub warunek w procedurze "<procedura>". Nazwa nie jest unikalna.
Działanie użytkownika: Zmień nazwę tak, by była unikalna.
sqlcode: -590
sqlstate: 42734
SQL0595W | Poziom odseparowania "<żądany-poziom>" został zmieniony na wyższy "<poziom-eskalacji>". |
Objaśnienie: Podany poziom odseparowania nie jest obsługiwany przez DB2. Został on rozszerzony do następnego wyższego poziomu odseparowania obsługiwanego przez DB2.
Działanie użytkownika: Aby uniknąć tego ostrzeżenia, podaj poziom odseparowania obsługiwany przez DB2. DB2 obsługuje poziomy odseparowania Odczyt Powtarzalny (Repeatable Read) (RR), Stabilność Odczytu (Read Stability) (RS), Stabilność Kursora (Cursor Stability) (CS) i Niezatwierdzony Odczyt (Uncommitted Read) (UR).
sqlcode: +595
sqlstate: 01526
SQL0598W | Istniejący indeks "<nazwa>" jest używany jako indeks dla klucza podstawowego lub klucza unikalnego. |
Objaśnienie: Dla operacji ALTER TABLE, która zdefiniowała klucz podstawowy lub klucz unikalny, wymagany był indeks i wskazany indeks odpowiada wymaganemu.
Podczas tworzenia indeksu na podstawie klucza podstawowego lub unikalnego opis indeksu jest odpowiedni, gdy identyfikuje ten sam zbiór kolumn (w dowolnym porządku) co klucz podstawowy lub unikalny bez względu na to, czy podany jest porządek wzrastający, czy malejący i gdy jest unikalny.
Instrukcja została wykonana poprawnie.
Działanie użytkownika: Nie jest wymagane żadne działanie.
sqlcode: +598
sqlstate: 01550
SQL0599W | Nie utworzono funkcji porównania dla odrębnego typu w oparciu o typ long string. |
Objaśnienie: Nie utworzono funkcji porównania dla odrębnego typu w oparciu o typ long string (BLOB, CLOB, DBCLOB, LONG VARCHAR lub LONG VARGRAPHIC), ponieważ odpowiednie funkcje są niedostępne dla tych wbudowanych typów danych.
Jest to ostrzeżenie. Instrukcja została wykonana poprawnie.
Działanie użytkownika: Nie jest wymagane żadne działanie.
sqlcode: +599
sqlstate: 01596