
giáo trình Oracle tiếng việt phần 6
Thông tin tài liệu:
Nội dung trích xuất từ tài liệu:
giáo trình Oracle tiếng việt phần 6 Quyển sách này được upload tại: hutonline.netOracle cơ bản - SQL và PL/SQL12.2.2. Lệnh lặp LOOP không định trướcTrong lệnh lặp này, số lần lặp tuỳ thuộc vào điều kiện kết thúc vòng lặp và không xác định được ngay tạithời điểm bắt đầu vòng lặp.Cú pháp: LOOP Công việc; EXIT WHEN điều kiện; END LOOP;Ví dụ: x := 0; y := 1000; LOOP x := x + 1; y := y - x; EXIT x > y; END LOOP;12.2.3. Lệnh lặp LOOP có định trướcNgay khi bắt đầu vòng lặp, ta đã xác định được số lần lặp. Cú pháp: LOOP Index IN Cận dưới .. Cận trên Công việc; END LOOP;Ví dụ: x := 0; LOOP Index IN 1 .. 100 x := x + 1; END LOOP;12.2.4. Lệnh lặp WHILECú pháp: WHILE Điều kiện LOOP Công việc; END LOOP;Ví dụ: WHILE length(:Address) < 50 LOOP :Address := :Address || ‘ ‘; END LOOP;12.2.5. Lệnh GOTO, nhảy vô điều kiệnCú pháp: GOTO Nhãn; Trang 78 Quyển sách này được upload tại: hutonline.netOracle cơ bản - SQL và PL/SQLVí dụ: BEGIN công việc; GOTO Nhãn; END;12.3.GIỚI THIỆU CURSORCursor 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ệnhtruy vấn dữ liệu sau nó. Trong quá trình xử lý, ta thao tác với cursor thông qua từng dòng dữ liệu. Dòng dữliệu này được định vị bởi một con trỏ. Với việc dịch chuyển con trỏ, ta có thể lấy được toàn bộ dữ liệu trả về.Các bước sử dụng biến cursor: Khai báo --> mở cursor --> lấy dữ liệu để xử lý --> đóng cursorKhai báo: CURSOR Tên cursor( danh sách biến) IS Câu lệnh truy vấn;Ví dụ1: CURSOR c_Dept IS SELECT deptno, dname FROM dept WHERE deptno>10;Ví dụ2: CURSOR c_Dept(p_Deptno NUMBER) IS SELECT deptno, dname FROM dept WHERE deptno>10;Mở cursor: OPEN Tên cursor | Tên cursor( danh sách biến);Ví dụ1: OPEN c_Dept;Ví dụ2: OPEN c_Dept(10);Lấy dữ liệu: FETCH Tên cursor INTO Tên biến;Ví dụ: FETCH c_Dept INTO v_Dept;Đóng cursor: CLOSE Tên cursor;Ví dụ: CLOSE c_Dept;Các thuộc tính: %isopen trả lại giá trị True nếu cursor đang mở Trang 79 Quyển sách này được upload tại: hutonline.netOracle cơ bản - SQL và PL/SQL %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 fetchVí dụ1: DECLARE -- Khai báo cursor để truy vấn dữ liệu CURSOR c_Emp IS SELECT * FROM emp WHERE dept_id = 10; -- Khai báo biến cursor tương ứng để chứa dòng dữ liệu v_Emp c_EMP%rowtype; BEGIN -- Mở cursor OPEN c_Emp; LOOP -- Lấy dòng dữ liệu từ cursor FETCH c_Emp INTO v_Emp; -- Thoát khỏi vòng lặp nếu đã lấy hết dữ liệu trong cursor EXIT WHEN c_Emp%notfound; -- Bổ sung dữ liệu vào Emp_ext theo dữ liệu lấy được từ cursor INSERT INTO Emp_ext (empno, ename, job) VALUES (v_Emp.empno, v_Emp.ename, v_Emp.job); END LOOP; -- Đóng cursor CLOSE c_Emp; END;Ví dụ 2: DECLARE -- Khai báo cursor, có cho phép cập nhật dữ liệu CURSOR c_Dept IS SELECT dname, loc FROM dept FOR UPDATE OF loc; -- Khai báo biến lưu trữ dữ liệu v_Dept c_Dept%ROWTYPE; v_sales_count NUMBER:=0; v_non_sales NUMBER:=0; BEGIN -- Mở cursor OPEN c_Dept; LOOP -- Lấy từng dòng dữ liệu của cursor để xử lý FETCH c_Dept INTO v_Dept; -- Thoát khỏi lệnh lặp nếu đã duyệt hết tất cả dữ liệu EXIT WHEN c_Dept %notfound; IF (v_Dept.dname = SALES)AND(v_Dept.loc!=DALLAS) THEN -- Cập nhật dữ liệu trên cursor Trang 80 Quyển sách này được upload tại: hutonline.netOracle cơ bản - SQL và PL/SQL UPDATE Dept SET loc=DALLAS WHERE CURRENT OF c_Dept; -- Đếm số lượng bản ghi được cập nhật v_sales_count := sales_count + 1; ELSIF (v_dept.dname != SALES)AND(v_Dept.loc!=NEWYORK) THEN -- Cập nhật dữ liệu trên cursor ...
Tìm kiếm theo từ khóa liên quan:
cơ sở dữ liệu tài liệu tin học SQL server và Oracle lập trình windows hệ thống quản lí ứng dụng windows 7Tài liệu có liên quan:
-
62 trang 418 3 0
-
Đề thi kết thúc học phần học kì 2 môn Cơ sở dữ liệu năm 2019-2020 có đáp án - Trường ĐH Đồng Tháp
5 trang 388 6 0 -
13 trang 340 0 0
-
Giáo trình Cơ sở dữ liệu: Phần 2 - TS. Nguyễn Hoàng Sơn
158 trang 316 0 0 -
Phân tích thiết kế hệ thống - Biểu đồ trạng thái
20 trang 315 0 0 -
Tài liệu học tập Tin học văn phòng: Phần 2 - Vũ Thu Uyên
85 trang 294 1 0 -
Đề cương chi tiết học phần Quản trị cơ sở dữ liệu (Database Management Systems - DBMS)
14 trang 254 0 0 -
Giáo trình về dữ liệu và các mô hình cơ sở dữ liệu
62 trang 224 0 0 -
UltraISO chương trình ghi đĩa, tạo ổ đĩa ảo nhỏ gọn
10 trang 213 0 0 -
Bài tập lập trình Windows dùng C# - Bài thực hành
13 trang 204 0 0 -
Giáo trình Nhập môn Cơ sở dữ liệu - GV. Nguyễn Thế Dũng
280 trang 193 0 0 -
8 trang 191 0 0
-
Giáo trình Cơ sở dữ liệu: Phần 2 - Đại học Kinh tế TP. HCM
115 trang 188 0 0 -
Giáo trình Cơ sở dữ liệu: Phần 1 - Sở Bưu chính Viễn Thông TP Hà Nội
48 trang 186 1 0 -
Bài giảng môn học Cơ sở dữ liệu - Chương 1: Tổng quan về cơ sở dữ liệu
27 trang 175 0 0 -
Bài tập thiết kế cơ sở dữ liệu
9 trang 175 0 0 -
bảo mật mạng các phương thức giả mạo địa chỉ IP fake IP
13 trang 169 0 0 -
Bài giảng Cấu trúc dữ liệu và thuật toán: Chương 7 - Nguyễn Khánh Phương
214 trang 167 0 0 -
Báo cáo Thực tập chuyên môn Thiết kế cơ sở dữ liệu: Xây dựng Website studio
26 trang 166 0 0 -
Hướng dẫn tạo file ghost và bung ghost
12 trang 161 0 0