Nâng caoOracle PL/SQL ~13 phút

SELECT INTO và trả nhiều giá trị

SELECT INTO là cầu nối cơ bản giữa SQL và logic thủ tục: lấy dữ liệu từ bảng vào biến để kiểm tra, tính toán hoặc trả về caller.

Lý thuyết

SELECT ... INTO

Trong PL/SQL, SELECT cot1, cot2 INTO bien1, bien2 FROM ... yêu cầu kết quả đúng một dòng.

  • 0 dòng: Oracle phát NO_DATA_FOUND.
  • Nhiều hơn 1 dòng: Oracle phát TOO_MANY_ROWS.

Số cột SELECT phải khớp số biến INTO và kiểu dữ liệu phải tương thích.

Trả nhiều giá trị

Procedure không có RETURN như function, nhưng có thể trả nhiều OUT parameters. Ví dụ p_namep_salary cùng được điền từ một SELECT INTO.

SELECT INTO hay cursor?

  • Dùng SELECT INTO khi chắc chắn cần một dòng.
  • Dùng cursor loop hoặc bulk collect khi cần nhiều dòng.
  • Dùng aggregate như COUNT khi muốn luôn có đúng một dòng.
Đừng dùng WHEN OTHERS để che NO_DATA_FOUND. Hãy quyết định rõ: không có dữ liệu là lỗi hay kết quả hợp lệ.

Thuật ngữ (di chuột để xem giải thích)

Dữ liệu mẫu

Đang tải dữ liệu mẫu…