Lỗi trong DB2
Trong DB2, các từ khoá SQLCODE và SQLSTATE được dùng để xác định sự thành công hay thất bại trong việc thực thi một câu lệnh SQL. Những từ khoá này cần được khai báo tường minh trong phần ngoài cùng của thủ tục như sau:
DECLARE SQLSTATE CHAR[5];
DECLARE SQLCODE INT;
DB2 sẽ thiết lập giá trị một cách tự động cho những từ khoá trên sau mỗi thao tác trên SQL (SQL operation). Đối với SQLCODE, giá trị được thiết lập như sau:
- = 0, thành công
- > 0, thành công nhưng có cảnh báo
- < 0, không thành công
- = 100, không tìm thấy dữ liệu (ví dụ như: câu lệnh FETCH không trả về dữ liệu)
Đối với SQLSTATE, các giá trị của nó như sau:
- Thành công: SQLSTATE ‘00000’
- Không thấy: SQLSTATE ‘02000’
- Cảnh báo: SQLSTATE ‘01XXXX’
- Trường hợp đặc biệt: các giá trị khác
SQLCODE là một đặc tả cho cơ sở dữ liệu, chi tiết hơn cả SQLSTATE, SQLSTATE là tiêu chuẩn trong các hệ quản trị cho cơ sở dữ liệu nhưng tổng quát hơn. Nhiều SQLCODE có thể trùng với SQLSTATE.
Một điều kiện có thể được tạo ra bằng bất kỳ câu lệnh SQL nào và sẽ trùng với một SQLSTATE. Ví dụ, một điều kiện cụ thể như SQLSTATE ‘01004’ được tạo ra khi có một giá trị được làm tròn số trong quá trình thi hành câu lệnh SQL. Thay vì dùng SQLSTATE ‘01004’ để kiểm tra điều kiện này, một tên gọi có thể được gán. Trong ví dụ cụ thể này, tên “trunc” có thể được gán cho điều kiện SQLSTATE ‘01004’ như sau:
DECLARE trunc CONDITION FOR SQLSTATE ‘01004’
Các điều kiện khác đã được định nghĩa trước:
- SQLWARNING
- SQLEXCEPTION
- NOT FOUND
- Hướng dẫn sử dụng công cụ Draw.io để thiết kế sơ đồ khối trong lập trình
- Xây dựng tài liệu hệ thống
- GENERATE AI DIAGRAM TRONG VISUAL PARADIGM
- Khám phá ngành mạng máy tính: Cơ hội nghề nghiệp đột phá và tương lai định hình 2026
- QMIX – Kỹ thuật học tăng cường sâu đa tác tử cho các bài toán ra quyết định phối hợp