ORACLE´¥·¢Æ÷
´¥·¢Æ÷
q ´¥·¢Æ÷Êǵ±Ìض¨Ê¼þ³öÏÖʱ×Ô¶¯Ö´ÐеĴ洢¹ý³Ì
q ÌØ¶¨Ê¼þ¿ÉÒÔÊÇÖ´ÐиüеÄDMLÓï¾äºÍDDLÓï¾ä
q ´¥·¢Æ÷²»Äܱ»ÏÔʽµ÷ÓÃ
q ´¥·¢Æ÷µÄ¹¦ÄÜ£º
q ×Ô¶¯Éú³ÉÊý¾Ý
q ×Ô¶¨Ò帴ÔӵݲȫȨÏÞ
q ÌṩÉó¼ÆºÍÈÕÖ¾¼Ç¼
q ÆôÓø´ÔÓµÄÒµÎñÂß¼
´´½¨´¥·¢Æ÷µÄÓï·¨£º
CREATE [OR REPLACE] TRIGGER trigger_name
AFTER | BEFORE | INSTEAD OF
[INSERT] [[OR] UPDATE [OF column_list]]
[[OR] DELETE]
ON table_or_view_name
[REFERENCING {OLD [AS] old / NEW [AS] new}]
[FOR EACH ROW]
[WHEN (condition)]
pl/sql_block;
´¥·¢Æ÷ÓÉÈý²¿·Ö×é³É£º
q ´¥·¢Æ÷Óï¾ä£¨Ê¼þ£©
q ¶¨Ò弤»î´¥·¢Æ÷µÄ DML ʼþºÍ DDL ʼþ
q ´¥·¢Æ÷ÏÞÖÆ
q Ö´Ðд¥·¢Æ÷µÄÌõ¼þ£¬¸ÃÌõ¼þ±ØÐëÎªÕæ²ÅÄܼ¤»î´¥·¢Æ÷
q ´¥·¢Æ÷²Ù×÷£¨Ö÷Ì壩
q °üº¬Ò»Ð© SQL Óï¾äºÍ´úÂ룬ËüÃÇÔÚ·¢³öÁË´¥·¢Æ÷Óï¾äÇÒ´¥·¢ÏÞÖÆµÄÖµÎªÕæÊ±ÔËÐÐ
´´½¨´¥·¢Æ÷
CREATE OR REPLACE TRIGGER first_emp_trg
AFTER INSERT
ON emp
FOR EACH ROW
BEGIN
IF (:NEW.sal < 10000) THEN
DBMS_OUTPUT.PUT_LINE('less 10000');
ELSE
DBMS_OUTPUT.PUT_LINE('ge 10000');
END IF;
END;
SQL> insert into emp(empno,ename,sal) values(8102,'HuangPei',10000);
ge 10000
1 row inserted
SQL> insert into emp(empno,ename,sal) values(8103,'HuangPei',100);
less 10000
1 row inserted
²éѯ´¥·¢Æ÷
SQL> select trigger_name,trigger_type,triggering_event,status from user_triggers;
TRIGGER_NAME TRIGGER_TYPE TRIGGERING_EVENT STATUS &n
Ïà¹ØÎĵµ£º
OracleÌṩµÄÐòºÅº¯Êý:
ÒÔemp±íΪÀý:
1: rownum ×î¼òµ¥µÄÐòºÅ µ«ÊÇÔÚorder by֮ǰ¾ÍÈ·¶¨Öµ.
select rownum,t.* from emp t order by ename
ÐÐÊý
ROWNUM
EMPNO
ENAME
JOB
MGR
HIREDATE
SAL
COMM
DEPTNO
1
11
7876
ADAMS
CLERK
7788
1987-5-23
1100
¡¡
20
2
2
7499
ALLEN
SALESMAN
7698
......
¹¦ÄÜ£ºOracleÊý¾Ýµ¼Èëµ¼³öimp/exp¾ÍÏ൱ÓëoracleÊý¾Ý»¹ÔÓ뱸·Ý¡£´ó¶àÇé¿ö¶¼¿ÉÒÔÓÃOracleÊý¾Ýµ¼Èëµ¼³öÍê³ÉÊý¾ÝµÄ±¸·ÝºÍ»¹Ô£¨²»»áÔì³ÉÊý¾ÝµÄ¶ªÊ§£©¡£
¡¡¡¡OracleÓиöºÃ´¦£¬ËäÈ»ÄãµÄµçÄÔ²»ÊÇ·þÎñÆ÷£¬µ«ÊÇÄã×°ÁËoracle¿Í»§¶Ë£¬²¢½¨Á¢ÁËÁ¬½Ó £¨Í¨¹ýnet8 assistantÖб¾µØ——>·þÎñÃüÃû Ìí¼ÓÕýÈ·µÄ·þÎñÃüÃû
¡¡¡¡Æ ......
1.´´½¨Ñ§Éú±í£º
CREATE TABLE student (
xh number primary key,
Name varchar2(10) not null);
2. ´´½¨ÐòÁУº
CREATE SEQUENCE student_seq
START WITH 1
INCREMENT BY 1
NOCACHE;
°´»Ø³ ......
SQLµÄÓÅ»¯Ó¦¸Ã´Ó
5
¸ö·½Ãæ½øÐе÷Õû£º
1.È¥µô²»±ØÒªµÄ´óÐͱíµÄÈ«±íɨÃè
2.»º´æÐ¡ÐͱíµÄÈ«±íɨÃè
3.¼ìÑéÓÅ»¯Ë÷ÒýµÄʹÓÃ
4.¼ìÑéÓÅ»¯µÄÁ¬½Ó¼¼Êõ
5.¾¡¿ÉÄܼõÉÙÖ´Ðмƻ®µÄ
Cost
SQLÓï¾ä£º
ÊǶÔÊý¾Ý¿â(
Êý¾Ý
)
½øÐвÙ×÷µÄΩһ;¾¶£»
ÏûºÄÁË70%~90%
µÄÊý¾Ý¿â×ÊÔ´£»¶ÀÁ¢ÓÚ³ÌÐòÉè¼ÆÂß¼£¬Ïà¶ÔÓÚ¶Ô³ÌÐòÔ´´úÂëµÄÓÅ»¯£¬ ......
Create directoryÈÃÎÒÃÇ¿ÉÒÔÔÚOracleÊý¾Ý¿âÖÐÁé»îµÄ¶ÔÎļþ½øÐжÁд²Ù×÷£¬¼«´óµÄÌá¸ßÁËOracleµÄÒ×ÓÃÐԺͿÉÀ©Õ¹ÐÔ¡£
ÆäÓ﷨Ϊ:
CREATE [OR REPLACE] DIRECTORY directory AS 'pathname';
±¾°¸Àý¾ßÌå´´½¨ÈçÏÂ:
create or replace directory exp_dir as '/tmp';
Ŀ¼´´½¨ÒԺ󣬾ͿÉÒ԰ѶÁдȨÏÞÊÚÓèÌØ¶¨Óû§ ......