2011-08-24 6 views
6

od tego zapytania: select * from tabelaibm db2 błąd sterownika sieci sql. Nie można znaleźć nazwy tabeli?

pojawia się następujący komunikat o błędzie:

Error: Błąd SQL DB2: SQLCODE = -204, SQLSTATE = 42704, SQLERRMC = webuser.table, kierowca = 4,8 0,87 SQLState: 42704 ErrorCode: -204 błędu: błąd SQL DB2: SQLCODE = -727, SQLSTATE = 56098, SQLERRMC = 2; -204; 42704; webuser.table, STEROWNIK = 04.08.87 SQLState: 56098 ErrorCode: -727

Wszelkie sugestie dotyczące sposobu zbadania problemu są bardzo docenione.

Odpowiedz

5

Na pierwszy rzut oka wydaje się, że DB2 nie znajduje tej nazwy tabeli w schemacie webuser, a schemat bieżącego podłączonego użytkownika nie pasuje do schematu tabeli. Spróbuj:

select * from webuser.table 

Jeśli to się nie powiedzie, to prawdopodobnie nie istnieje w schemacie webuser, więc spróbuj się dowiedzieć, co to schemat nie istnieje pod.

Często można znaleźć informacje dla sql error codes w IBM DB2 infocenter lub w wierszu komend DB2 UDB tak:

db2 ? SQL0100 

Można patrzeć żadnego błędu w ten sposób:

db2 ? SQLnnnnn 

gdzie nnnnn jest kod błędu.

Można również często znaleźć informacje na temat kodu błędu sql z db2, wyszukując google, nie włączając w to -, ponieważ google usuwa termin z łącznikiem przed wynikami wyszukiwania. Tak więc wyszukaj sql code 204, a nie sql code -204.

Zazwyczaj można znaleźć listę wszystkich tabel pod numerem sysibm.tables lub syscat.tables w zależności od typu systemu (z/OS lub UDB), a także w zależności od tego, czy administrator db2 ograniczył dostęp do tych katalogów tabele.

Jeśli używasz na przykład UDB, spróbuj:

select tabschema, tabname from syscat.tables 

Ja zakładając oczywiście, że nie spodziewa się tabelę być nazwany table. Myślę, że jest to ograniczone słowo w db2 lub w standardzie SQL-92.

Jeśli działa procedura składowana, która uruchamia to zapytanie, może nie być wyświetlany prawdziwy błąd zapytania. Procedury przechowywane często zwracają inny kod błędu niż zapytanie w procedurze przechowywanej, chyba że są zaprogramowane do przechwytywania i zwracania kodu sqlcode i sqlstate z samego zapytania.

Dodatkowo widzę, że otrzymujesz kod sqlcode -727 z kodem wiadomości 2.Dokumentacja, która mówi:

An error occurred during implicit system action type action-type . Information returned for the error includes SQLCODE sqlcode , SQLSTATE sqlstate and message tokens token-list . 

której akcja typu wynosi 2: niejawna przygotować z pamięci podręcznej dynamicznego SQL

Ta informacja o błędzie jest mniej oczywiste i bardziej dostrojone do administratora bazy danych. Może się to okazać przydatne, ale najpierw wypróbuję inne sugestie. Może to oznaczać, że niektóre pakiety nie są powiązane z bazą danych (np. Niektóre z nich są dostępne dla sterownika sieciowego) lub że niektóre uprawnienia w bazie danych są nieprawidłowe lub pakiet poprawek nie został poprawnie zastosowany i brakuje procedur dotyczących bazy danych. Jednak może również być spowodowane przez -204 i po prostu być kolejnym błędem.

Powiązane problemy