Cursor định nghĩa : là kiểu biến có cấu trúc, cho phép ta xử lý dữ liệu gồm nhiều dòng, số dòng ohuj thuộc vào câu lệnh query sau nó . Trong quá trình xử lý ZCursor như là một con trỏ vị trí của now đang xử lý | CÔNG TY cổ PHẨN ĐẨU Tư PHÁT TRIỂN công nghệ - FPT GIÁO TRÌNH SQL VÀ PL SQL 19 CURSOR Dinh .nghĩa Cursor là kiểu biến có cấu trúc cho phép ta xử lý dữ liệu gồm nhiều dòng. Sô dòng phụ thuộc vào câu lệnh query sau nó. Trong quá trình xử lý cursor như là một con trỏ vị trí của row đang xử lý Các bước sử dụng biến cursor Khai báo - mở - lấy dữ liệu để xử lý - đóng Khai báo cursor ten danh sách biến is câu lệnh select Mỏ vùng dữ liệu cất trữ thông tin xử lý. vd cursor x is select deptno from dept where deptno 10 vd cursor x b number is select from dept where deptno b Mở cursor open ten trị của biến vd open x vd open x 10 Lấy dữ liệu Fetch tên cursor into tên biến Vd fetch x into b Đóng cursor Close tên cursor vd Close x Các thuộc tính isopen trả lại giá trị True nế u cursor đang mở notfound trả lại giá trị True nế u lệnh fetch hiện thời trả lại không có row found trả lại giá tri true cho đế n khi fetch không còn row nào rowcount trả lại sô row đã được thực hiện bằng lệnh fetch Ví dụi declare cursor v_a is select from emp m v_a rowtype begin open v_a loop fetch v_a into m insert into t_thu empno ename job values exit when v_a notfound end loop close v_a end ví dụ 2 DECLARE CURSOR ci IS SELECT dname loc FROM dept FOR UPDATE OF loc dept_rec c1 ROWTYPE sales_count NUMBER 0 non_sales NUMBER 0 Đào tạo cơ bản SQL và PL SQL Trang 68 CÔNG TY cổ PHẨN ĐẨU Tư PHÁT TRIỂN công nghệ - FPT GIÁO TRÌNH SQL VÀ PL SQL BEGIN OPEN c1 LOOP FETCH cl INTO dept_rec EXIT WHEN c1 NOTFOUND IF SALES AND DALLAS THEN UPDATE dept SET loc DALLAS WHERE CURRENT OF cl sales_count sales_count 1 ELSIF dept SALES AND NEWYORK THEN UPDATE dept SET loc NEWYORK WHERE CURRENT OF cl non_sales non_sales 1 END IF END LOOP CLOSE c1 INSERT INTO counts sales_set non_sales_set VALUES sales_count non_sales COMMIT END Kieu dữ lieu. Table và. Record Kiểu dữ liệu Table Cú pháp TYPE type_name IS TABLE OF datatype NOT null index by .