2011-11-04 34 views
5

Hầu hết khách hàng cho các lỗi trở DB2 ở định dạngDB2 human readable lỗi formatter

Error: DB2 SQL Error: SQLCODE=-407, SQLSTATE=23502, SQLERRMC=TBSPACEID=2, TABLEID=103, COLNO=0, DRIVER=3.57.82 
SQLState: 23502 
ErrorCode: -407 

Thần I nên google cho SQLCODE, so với SQLState và sau đó cố gắng tìm hiểu ý nghĩa của SQLERRMC. Đó là thời gian ... Tôi muốn biết là có công cụ phân tích định dạng như vậy và trả lại lỗi thân thiện với con người định dạng, chẳng hạn như "Bạn đang tring để chèn null ở vị trí 2, nơi chỉ có giá trị không null posible ..."

Trả lời

2

Tham chiếu thông báo phiên bản DB2 9 là hơn here. Mặc dù các tin nhắn khá nhất quán từ phiên bản này sang phiên bản khác, bạn có thể muốn tìm tham chiếu thông báo cho phiên bản cụ thể của mình.

Trong trường hợp của bạn, SQL 407 là here.

Ngoài ra, như các bài viết tham khảo states, nếu bạn muốn tự động dịch các thông báo lỗi DB2, bạn có thể làm như sau:

Để gọi sự giúp đỡ nhắn, mở bộ xử lý dòng lệnh và nhập:

? XXXnnnnn

trong đó XXX thể hiện tiền tố thư hợp lệ và nnnnn đại diện cho số thư hợp lệ.

Văn bản thư được liên kết với giá trị SQLSTATE đã cho có thể được truy xuất bằng cách phát hành:

? nnnnn

hoặc

? nn

trong đó nnnnn là năm chữ số SQLSTATE (chữ số) và nn là mã hai chữ số SQLSTATE class> (hai chữ số đầu tiên của giá trị SQLSTATE).

Trong trường hợp trên bạn có thể nhập? SQL0407 tại dấu nhắc CLP và bạn sẽ nhận được mô tả thông báo lỗi.

+0

Từ cửa sổ Lệnh hoặc trình bao, bạn có thể làm tương tự bằng cách gõ: "db2? SQL0407" chẳng hạn. – AngocA

0

Ngoài ra, hãy kiểm tra tiện ích IBM QW có thể giúp bạn có được mô tả và độ phân giải có thể có ích.

5

Để chuyển đổi 'SQLERRMC = TBSPACEID = x, TABLEID = y, COLNO = z' để lược đồ, bảng và cột tên, tại dấu nhắc lệnh SQL:

SELECT C.TABSCHEMA, C.TABNAME, C.COLNAME 
FROM SYSCAT.TABLES AS T, 
SYSCAT.COLUMNS AS C 
WHERE T.TBSPACEID = x 
AND T.TABLEID = y 
AND C.COLNO = z 
AND C.TABSCHEMA = T.TABSCHEMA 
AND C.TABNAME = T.TABNAME 

Credit: Tôi thấy điều này ở http://www.dbforums.com/db2/1655517-how-find-table-tbspaceid-2-tableid-1583-a.html