Chương 6 Ngôn ngữ PL/SQL nằm trong bộ bài giảng Quản trị cơ sở dữ liệu Oracle trình bày PL/SQL là gì? Cấu trúc khối lệnh của PL/SQL, biến số, hằng số Phép gán, các phép toán, cấu trúc điều khiển: điều kiện rẽ nhánh, lặp Con trỏ Hàm và thủ tục Trigger Package.
a Hệ thống thông tin Quản lý – Học viện Ngân hàng @NhamCT Hàm thủ tục Một nhóm lệnh thực chức cụ thể nhóm lại Mục đích: • • • Tăng khả xử lý Tăng khả sử dụng chung Tăng tính bảo mật an toàn liệu Lưu trữ CSDL dạng p-code 7-27 Khoa Hệ thống thông tin Quản lý – Học viện Ngân hàng @NhamCT Thủ tục Cú pháp CREATE [OR REPLACE] PROCEDURE procedure_name [(argument1 [mode1] datatype1, argument2 [mode2] datatype2, )] IS|AS procedure_body; Gọi thủ tục • • 7-28 EXEC tên_thủ_tục; Tên_thủ_tục; Khoa Hệ thống thông tin Quản lý – Học viện Ngân hàng @NhamCT Thủ tục – ví dụ CREATE PROCEDURE add_dept IS dept_id NUMBER(4); dept_name VARCHAR2(50); BEGIN dept_id:=280; dept_name:='ST-Curriculum'; INSERT INTO dept VALUES(dept_id,dept_name); DBMS_OUTPUT.PUT_LINE(' Inserted '|| SQL%ROWCOUNT ||' row '); END; 7-29 Khoa Hệ thống thông tin Quản lý – Học viện Ngân hàng @NhamCT Hàm Cú pháp CREATE [OR REPLACE] FUNCTION function_name [(argument1 [mode1] datatype1, argument2 [mode2] datatype2, )] RETURN datatype IS|AS function_body; Gọi hàm • • 7-30 Tên _biến := tên_hàm; Dùng câu lệnh truy vấn Khoa Hệ thống thông tin Quản lý – Học viện Ngân hàng @NhamCT Hàm – ví dụ CREATE FUNCTION check_sal RETURN Boolean IS dept_id NUMBER(4); empno NUMBER(4); sal NUMBER(8); avg_sal NUMBER(8,2); BEGIN empno:=205; SELECT salary,department_id INTO sal,dept_id FROM employees WHERE employee_id= empno; SELECT avg(salary) INTO avg_sal FROM employees WHERE department_id=dept_id; IF sal > avg_sal THEN RETURN TRUE; ELSE RETURN FALSE; END IF; EXCEPTION WHEN NO_DATA_FOUND THEN RETURN NULL; END; / 7-31 Khoa Hệ thống thông tin Quản lý – Học viện Ngân hàng @NhamCT Hủy bỏ sửa thủ tục/hàm Hủy DROP PROCEDURE tên_thủ_tục; DROP FUNCTION tên_hàm; Sửa ALTER PROCEDURE tên_thủ_tục … ALTER FUNCTION tên_hàm … 7-32 Khoa Hệ thống thông tin Quản lý – Học viện Ngân hàng @NhamCT So sánh thủ tục hàm Thủ tục Hàm Thực giống thực Có thể gọi giống câu lệnh phần lệnh PL/SQL Khơng có kiểu giá trị trả Có chứa giá trị trả Có thể trả Trả giá trị nhiều tham số Không chứa lệnh DML 7-33 Khoa Hệ thống thông tin Quản lý – Học viện Ngân hàng @NhamCT Trigger Trigger gì? Trigger dùng để làm gì? Là thủ tục thực ngầm định thực lệnh SQL nhằm đảm bảo quy tắc logic phức tạp liệu Các loại trigger: • • • • • 7-34 DDL trigger DML trigger Compound trigger Instead-of trigger System/database trigger Khoa Hệ thống thông tin Quản lý – Học viện Ngân hàng @NhamCT Chú ý sử dụng trigger Chú ý sử dụng trigger: • • • Chỉ sử dụng trigger với thao tác trọng tâm Không sử dụng trigger cho trường hợp sử dụng constraint Trigger gây khó khăn cho việc bảo trì phát triển hệ thống lớn Chỉ sử dụng trigger thật cần thiết 7-35 Khoa Hệ thống thông tin Quản lý – Học viện Ngân hàng @NhamCT ... tin Quản lý – Học viện Ngân hàng @NhamCT Package Tham khảo tài liệu: User&PLSQL.pdf (trang 47) 7-4 2 Khoa Hệ thống thông tin Quản lý – Học viện Ngân hàng @NhamCT 7-4 3 Khoa Hệ thống thông tin Quản. .. END; 7-3 9 Khoa Hệ thống thông tin Quản lý – Học viện Ngân hàng @NhamCT Instead-of trigger Cú pháp viết trigger DML Chỉ dùng cho view 7-4 0 Khoa Hệ thống thông tin Quản lý – Học viện Ngân hàng... lần kích hoạt • • 7- 36 Mức câu lệnh Mức dịng Khoa Hệ thống thông tin Quản lý – Học viện Ngân hàng @NhamCT Phân loại trigger… 7-3 7 Khoa Hệ thống thông tin Quản lý – Học viện Ngân hàng @NhamCT Tạo