Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 99 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
99
Dung lượng
2,18 MB
Nội dung
NGƠN NGỮ THỦ TỤC PL/SQL PL/SQL gì? • Procedural Language extensions to SQL (PLSQL) • Kết hợp SQL cấu trúc điều khiển, thủ tục (procedure), hàm (function), trỏ (cursor), ngoại lệ (exception) lệnh giao tác (transaction) GV Nguyễn Thị Hải Bình Cơng nghệ Oracle Cấu trúc PL/SQL • Ngơn ngữ PL/SQL tổ chức lệnh theo khối lệnh • Mỗi lệnh PL/SQL phải kết thúc dấu ; • Mỗi khối lệnh PL/SQL chứa khối lệnh • Khối lệnh bắt đầu BEGIN kết thúc END • Ghi chú: thực thi khối lệnh PL/SQL sqlPlus phải thêm ký tự / sau lệnh END GV Nguyễn Thị Hải Bình Cơng nghệ Oracle Ví dụ Ghi chú: Để câu lệnh DBMS_OUTPUT.PUTLINE hoạt động, thêm dòng lệnh SET SERVEROUTPUT ON; vào trước PL/SQL block GV Nguyễn Thị Hải Bình Cơng nghệ Oracle Một số ký hiệu (Delimiter) GV Nguyễn Thị Hải Bình Công nghệ Oracle Một số ký hiệu GV Nguyễn Thị Hải Bình Cơng nghệ Oracle Một số ký hiệu GV Nguyễn Thị Hải Bình Cơng nghệ Oracle Identifiers • You use identifiers to name PL/SQL program items and units, which include constants, variables, exceptions, cursors, cursor variables, subprograms, and packages • The identifiers consist of a letter optionally followed by more letters, numerals, dollar signs ($), underscores (_), and number signs (#) and should not exceed 30 characters • Identifiers are not case-sensitive GV Nguyễn Thị Hải Bình Cơng nghệ Oracle Identifiers • Examples: GV Nguyễn Thị Hải Bình Cơng nghệ Oracle Quoted Identifiers • PL/SQL lets you enclose identifiers within double quotes GV Nguyễn Thị Hải Bình Cơng nghệ Oracle 10 DBMS_OUTPUT • The DBMS_OUTPUT is a built-in package that enables you to display output, display debugging information, and send messages from PL/SQL blocks, subprograms, packages, and triggers • DBMS_OUTPUT subprograms: • • • • • • • DBMS_OUTPUT.DISABLE DBMS_OUTPUT.ENABLE DBMS_OUTPUT.GET_LINE DBMS_OUTPUT.GET_LINES DBMS_OUTPUT.NEW_LINE DBMS_OUTPUT.PUT DBMS_OUTPUT.PUT_LINE GV Nguyễn Thị Hải Bình Cơng nghệ Oracle 85 Ví dụ GV Nguyễn Thị Hải Bình Cơng nghệ Oracle 86 Ví dụ GV Nguyễn Thị Hải Bình Cơng nghệ Oracle 87 Triggers • Triggers are stored programs, which are automatically executed or fired when some events occur • Triggers are, in fact, written to be executed in response to any of the following events: • A database manipulation (DML) statement (DELETE, INSERT, or UPDATE) • A database definition (DDL) statement (CREATE, ALTER, or DROP) • A database operation (SERVERERROR, LOGON, LOGOFF, STARTUP, or SHUTDOWN) • Triggers could be defined on the table, view, schema, or database with which the event is associated GV Nguyễn Thị Hải Bình Cơng nghệ Oracle 88 Benefits of Triggers • • • • • • • Generating some derived column values automatically Enforcing referential integrity Event logging and storing information on table access Auditing Synchronous replication of tables Imposing security authorizations Preventing invalid transactions GV Nguyễn Thị Hải Bình Cơng nghệ Oracle 89 Creating Triggers - - - - GV Nguyễn Thị Hải Bình {BEFORE | AFTER | INSTEAD OF}: when the trigger would be executed The INSTEAD OF clause is used for creating trigger on a view {INSERT [OR] | UPDATE [OR] | DELETE}: This specifies the DML operation [OF col_name]: This specifies the column name that would be updated ON table_name: This specifies the name of the table associated with the trigger [REFERENCING OLD AS o NEW AS n]: This allows you to refer new and old values for various DML statements, like INSERT, UPDATE, and DELETE (Not available for table level triggers) [FOR EACH ROW]: This specifies a row level trigger, i.e., the trigger would be executed for each row being affected Otherwise the trigger will execute just once when the SQL statement is executed, which is called a table level trigger WHEN (condition): This provides a condition for rows for which the trigger would fire This clause is valid only for row level triggers Công nghệ Oracle 90 Example GV Nguyễn Thị Hải Bình Cơng nghệ Oracle 91 Triggering a Trigger GV Nguyễn Thị Hải Bình Cơng nghệ Oracle 92 Example GV Nguyễn Thị Hải Bình Cơng nghệ Oracle 93 Example GV Nguyễn Thị Hải Bình Cơng nghệ Oracle 94 Conditional Predicates for Detecting Triggering DML Statement GV Nguyễn Thị Hải Bình Cơng nghệ Oracle 95 Example GV Nguyễn Thị Hải Bình Cơng nghệ Oracle 96 Correlation Names and Pseudorecords • A trigger that fires at row level can access the data in the row that it is processing by using correlation names • Two default correlation names are OLD and NEW • OLD and NEW are also called pseudorecords • The structure of a pseudorecord is table_name%ROWTYPE, where table_name is the name of the table on which the trigger is created GV Nguyễn Thị Hải Bình Cơng nghệ Oracle 97 OLD and NEW pseudorecord field values GV Nguyễn Thị Hải Bình Cơng nghệ Oracle 98 Drop a trigger GV Nguyễn Thị Hải Bình Cơng nghệ Oracle 99 ... (Delimiter) GV Nguyễn Thị Hải Bình Cơng nghệ Oracle Một số ký hiệu GV Nguyễn Thị Hải Bình Cơng nghệ Oracle Một số ký hiệu GV Nguyễn Thị Hải Bình Cơng nghệ Oracle Identifiers • You use identifiers... nghệ Oracle Identifiers • Examples: GV Nguyễn Thị Hải Bình Cơng nghệ Oracle Quoted Identifiers • PL/SQL lets you enclose identifiers within double quotes GV Nguyễn Thị Hải Bình Cơng nghệ Oracle. .. Thị Hải Bình Công nghệ Oracle 15 Datetime and Interval Types GV Nguyễn Thị Hải Bình Cơng nghệ Oracle 16 Large Object (LOB) Data Types GV Nguyễn Thị Hải Bình Cơng nghệ Oracle 17 User-Defined Subtypes