Danh mục

Bài giảng Hệ quản trị cơ sở dữ liệu: Chương 5 - Nguyễn Thị Mỹ Dung

Số trang: 29      Loại file: pdf      Dung lượng: 2.21 MB      Lượt xem: 9      Lượt tải: 0    
Jamona

Xem trước 3 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Bài giảng Hệ quản trị cơ sở dữ liệu: Chương 5 Procedure, Trigger, Function cung cấp cho người học những kiến thức như: Procedure; Function; Trigger; Bài tập thực hành. Mời các bạn cùng tham khảo!
Nội dung trích xuất từ tài liệu:
Bài giảng Hệ quản trị cơ sở dữ liệu: Chương 5 - Nguyễn Thị Mỹ Dung Bài giảngHQT Cơ sở dữ liệu (ORACLE)Số tc: 3; LT: 25; Btập: 20GV: Nguyễn Thị Mỹ Dung Khối lớp: Đại học L2 1 NỘI DUNG MÔN HỌC 1 Chương 1: Tổng quan về Oracle (2) 2 Chương 2: Cơ bản về Oracle (2)3 Chương 3: Truy vấn SQL (12)4 Chương 4: Lập trình PL/SQL (9) 5 Chương 5: Procedure, Trigger, Function (12) 6 Chương 6: Quản trị người dùng (4)7 Chương 7: Kết nối CSDL với Oracle (4) 2 Ch5: Procedure, Function, TriggerI. ProcedureII. FunctionIII. TriggerIV. Bài tập thực hành 3 I. Procedure 1. Giới thiệu Thủ tục là một chương trình con để thực hiện một hànhđộng cụ thể nào đó để tăng khả năng xử lý. Có thể sử dụng nhiều lần, có tính bảo mật và an toàn dữliệu cao. Không có giá trị trả về. 2. Khai báo CREATE [OR REPLACE] PROCEDURE tên-thủ tục [(dsáchthamsố)] IS [khai báo biến] BEGIN [EXCEPTION ] END; /*kết thúc thủ tục*/ 4 Procedure – khai báo (tt) - Từ khóa OR REPLACE để tự động xóa và tạomới thủ tục nếu tên thủ tục đó đã tồn tại. Ví dụ: CREATE OR REPLACE HienThiNgay (m number) IS …. - Không được dùng Varchar2(n) trong tham sốtruyền vào, kiểu dữ liệu tham số truyền vào phải làkiểu dữ liệu không ràng buộc. - Không thể áp dụng cho các điều kiện thực hiệntrên nhóm (mệnh đề GROUP). - 5 Procedure – khai báo (tt)Cú pháp đầy đủ:CREATE [OR REPLACE] PROCEDURE procedure_name[( [IN | OUT | IN OUT] [, [IN | OUT | IN OUT] [DEFAULT ]) ]IS [ < kiểudữliệu > [NULL | NOT NULL] [DEFAULT ] ;]BEGIN [;] -- Đây là khối lệnh PL/SQL trong chương trình [EXCEPTION --Phần ngoại lệ (nếu có) WHEN THEN [;] ]END; 6 Procedure (tt)3. Gọi thủ tục - Cú pháp gọi trong PL/SQL: Declare …. BEGIN Tênthủtục(danhsáchthamsố);*/ …. END;- Cú pháp gọi thủ tục từ SQL*Plus: SQL> EXECUTE Tênthủtục(danhsáchthamsố)4. Xóa thủ tục DROP PROCEDURE tênthủtục; 7 Procedure (tt)VD1: Tăng kinh phí cho đề tài DT004CREATE OR REPLACE PROCEDURE Tang_kinhphiAS kp_old INT; kp_new INT;BEGIN SELECT KINHPHI INTO kp_old FROM DETAI WHERE MADT=DT004; IF SQL%FOUND THEN kp_new := kp_old + kp_old*10/100; UPDATE DETAI SET KINHPHI = kp_new WHERE MADT=DT004; 8 Procedure – VD1 (tt) IF SQL%ROWCOUNT0 THEN DBMS_OUTPUT.PUT_LINE (De tai DT004 duoc tang); END IF; END IF; EXCEPTION WHEN NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE (Khong tim thay de tai nay!); END; Thực thi thủ tục: Begin TANG_kinhphi; end; 9 Procedure – VD (tt)VD2: Thủ tục in ra ngày tương ứng với số truyền vàoCREATE PROCEDURE P_Ngay (n IN NUMBER,m OUT NUMBER) ISngay CHAR(15);BEGIN IF n =1 THEN ngay :=Sunday; ELSIF n =2 THEN ngay :=Monday; ELSIF n =3 THEN ngay :=Tuesday; ELSIF n =4 THEN ngay :=Wednesday; ELSIF n =5 THEN ngay :=Thursday; ELSIF n =6 THEN ngay :=Friday; ELSIF n =7 THEN ngay :=Saturday; END IF; m:=n; dbms_output.put_line(Ngay truyen vao: || ngay);END; 10 Procedure – VD2 (tt)--Chạy thủ tục với tham số raDECLARE M NUMBER;BEGIN P_NGAY(5,M); DBMS_OUTPUT.PUT_LINE(THAM SO RA:|| M);END;-- Truyền trực tiếp tham số raDECLARE M NUMBER;BEGIN P_NGAY(5,7); /* Cho nhan xet???? */ DBMS_OUTPUT.PUT_LINE(THAM SO RA:|| M);END; 11 Procedure – VD2 (tt)--Truyền cả hai tham sốDECLARE so1 NUMBER; so2 NUMBER;BEGIN so1:=4; P_NGAY(so1,so2); DBMS_OUTPUT.PUT_LINE(so1); DBMS_OUTPUT.PUT_LINE(so2);END;--Kết quả in ra? 12 Procedure – VD (tt)VD3: Tạo thủ tục kiểm tra khoá chính khi thêm sinh viênCreate Procedure THEM_SINHVIEN (v_MASV in CHAR, v_HOTENSV in varchar2, v_NAMSINH in INT, v_QUEQUAN in varchar2, v_HOCLUC in FLOAT)As DEM int;Begin select count(*) into DEM from SINHVIEN where MASV = v_MASV; if ( DEM=1) then DBMS_Output.Put_ ...

Tài liệu được xem nhiều: