2011-08-24 34 views
6

từ truy vấn này: select * from bảngibm db2 lỗi trình điều khiển mạng sql. Không tìm thấy tên bảng?

tôi nhận được thông báo lỗi sau:

Lỗi: DB2 SQL Lỗi: SQLCODE = -204, SQLSTATE = 42.704, SQLERRMC = webuser.table, DRIVER = 4,8 0,87 SQLState: 42.704 ERRORCODE: -204 Lỗi: DB2 SQL Lỗi: SQLCODE = -727, SQLSTATE = 56.098, SQLERRMC = 2; -204; 42.704; webuser.table, DRIVER = 4.8.87 SQLState: 56.098 Mã lỗi: -727

Bất kỳ đề xuất nào về cách điều tra sự cố đánh giá cao.

Trả lời

5

Thoạt nhìn, có vẻ như DB2 không tìm thấy tên bảng đó theo lược đồ webuser hoặc lược đồ của người dùng được kết nối hiện tại không khớp với giản đồ cho bảng. Hãy thử:

select * from webuser.table 

Nếu thất bại, sau đó nó có thể không tồn tại dưới schema webuser, nên cố gắng tìm hiểu những gì schema nó tồn tại dưới.

Bạn thường có thể tìm thấy thông tin cho sql error codes trong IBM DB2 infocenter hoặc trên dòng lệnh DB2 UDB như vậy:

db2 ? SQL0100 

Bạn có thể tra cứu bất kỳ lỗi theo cách này:

db2 ? SQLnnnnn 

nơi nnnnn là mã lỗi.

Bạn cũng có thể thường xuyên tìm thông tin về mã lỗi sql từ db2 bằng cách tìm kiếm trên google mà không bao gồm - vì google xóa cụm từ có dấu gạch ngang phía trước kết quả tìm kiếm. Vì vậy, hãy tìm kiếm sql code 204 và không phải sql code -204. Bạn có thể tìm danh sách tất cả các bảng dưới sysibm.tables hoặc syscat.tables tùy thuộc vào loại hệ thống (z/OS hoặc UDB) bạn đang chạy và cũng tùy thuộc vào việc quản trị viên db2 có hạn chế quyền truy cập vào các danh mục đó hay không. những cái bàn.

Nếu bạn đang chạy chống lại một trường hợp UDB, hãy thử:

select tabschema, tabname from syscat.tables 

Tôi giả định tất nhiên rằng bạn không mong đợi bảng để được đặt tên table. Tôi nghĩ đó là một từ bị hạn chế theo chuẩn db2 hoặc chuẩn SQL-92.

Nếu bạn tình cờ chạy thủ tục được lưu trữ chạy truy vấn đó, thì có thể bạn không thấy lỗi thực sự từ truy vấn. Các thủ tục lưu sẵn thường trả về một mã lỗi khác với một truy vấn bên trong thủ tục lưu sẵn, trừ khi chúng được lập trình để bắt và trả về sqlcode và sqlstate từ chính truy vấn đó.

Ngoài ra, tôi thấy rằng bạn đang nhận được mã sqlcode là -727, với mã thông báo là 2.Các tài liệu cho rằng nói:

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 . 

nơi hành động kiểu là 2: ngầm chuẩn bị của một câu lệnh SQL động cache

thông tin Lỗi này là ít phức tạp và nhiều hơn nữa điều chỉnh cho một quản trị cơ sở dữ liệu. Nó có thể kết thúc là hữu ích nhưng tôi sẽ thử các đề xuất khác đầu tiên. Nó có thể có nghĩa là một số gói nhất định không bị ràng buộc vào cơ sở dữ liệu (giống như gói cho trình điều khiển mạng của bạn) hoặc một số quyền nhất định trong cơ sở dữ liệu không chính xác hoặc sửa lỗi không được áp dụng chính xác và thiếu thủ tục cơ sở dữ liệu. Tuy nhiên, nó cũng có thể được gây ra bởi -204 và chỉ là một lỗi tiếp theo.

Các vấn đề liên quan