Oracle??????????????娲�???????????????
???????????? ???????[ 2016/10/10 9:53:53 ] ????????????? Oracle
???????????????????trigger??
???????????????
????http://wenku.baidu.com/link?url=brtd9myO4XIaEjRPaRB0yWgV2_TfXmNxS6KKjB_avq7d0hPs3SknJdrs-JLtWe–H-f3q-I61HUxkcqqAFMC0z6Zf65QBbmFRB8TAlULmGS
????http://www.cnblogs.com/friends-wf/p/3793417.html?娲�???????
????http://blog.csdn.net/indexman/article/details/8023740/??????????????????????????!!??
??????????????????娲�?????????????小?????????????????校????????????????????????????????小?????????????????????????????写??????写???????oracle???????????????????insert??update??delete????????????????????????oracle???????????????????????oracle????????????????????????????????????????????????????????????????????????????????????????????????????????????????
??????????????
????create [or replace] trigger ????????
????before|after|instead of ?????? on ????|?????|database|?????.schema
????[for each row [when]]
????PL/SQL??|???霉???(call procedure_name)
????or replace????????????????????????????????婊�
????before|after?????????????
????instead of???婊�??????????????屑???????
??????????????????????????????????????????
????on?????????????????????
????for each row [when]???????????????????????未?????
????PL/SQL??|???霉???(call procedure_name)????????????????械????
??????????????
?????????????????????
????before??????????????????????????写???????
????create [or replace] trigger ????????
????before insert|delete|update on ????
????before create|drop|alter on database|?????.schema
????[for each row [when]]
????PL/SQL??|???霉???(call procedure_name)
?????屑????????????????????????????????貌?????????????????????????????????巍??????for each row??睢�
????create [or replace] trigger ????????
????before|after|instead of insert|delete|update on ????|?????
????for each row [when]
????PL/SQL??|???霉???(call procedure_name)
???????屑?????????PL/SQL???when????锌????????????????????????????????????????????new??old??????????PL/SQL???????????????????????????????e??(:)??????when?????????e???
?????????????????????????????娲�??????娲�?????????????????娲�????????????????????貌???校???????????????????????????小??????????????????????????????????小???????????????????????????????写??????写???????firing????ORACLE??????????????????械?INSERT??UPDATE??DELETE????????????????????????ORACLE???????????????????????ORACLE?????????????????????????????????????????????????????????????????????????????????????????????????????????????????
????1 DML??????
????ORACLE??????DML?????写???????????DML??????????????写?????????????????谢???????????写?????
????2 ?????????
??????????ORACLE?????????????????????????????????胁?????????????????????????????ORACLE 8????????????????????????????
????3 ????????
????ORACLE 8i ???????????????????????????????????????ORACLE?????????????薪??写???????ORACLE?????????????
??????浼�??????????????????????????????????????巍?未???for each row??睢�
????create [or replace] trigger ????????
????before|after insert|delete|update on ????|?????
????before|after create|drop|alter on database|?????.schema
????PL/SQL??|???霉???(call procedure_name)
?????屑??????????屑?????????DML?????????????????巍?
??????浼�???????????DML????????危??????TABLE???胁?????????500?校??????????????浼�????????????危????屑????????????500?????
???????????????????屑???????????????????浼�????????????????????????????????
????1?? ????????邪???FOR EACH ROW??? www.2cto.com
????2?? ??BEFORE……FOR EACH ROW???????校????????????????????????
????DML??????
????????DML??????
????????????????????????????????????????????????????????????????????????????????????????????写????????????????
????DML????????????
????l CREATE TRIGGER?????????????????????32KB??
????l ???????????SELECT ???????SELECT … INTO …??????????????伪???????SELECT ???
????l ???????胁????????????????????? COMMIT; ROLLBACK?? SVAEPOINT ???
????l ???????????????????????????????????????????
????l ???????胁??????LONG?? LONG RAW ?????
????l ??????????????LOB ?????械??????????????? :NEW ???LOB???械??????
????DML?????????????
????l ?????????????????????????????????BEFORE???????????DML??????????????????些?????????????????些?????????????AFTER???????????DML?????????????????貌????????些?o????
????l ????????????????????????????????DML??????INSERT??UPDATE??DELETE???????????????????????????????????????????????????OR??????????????AND?????????
????l ????谓?????????????邪???????????????INSERT??UPDATE??DELETE????????????????????????????胁??????????????ORACLE????????????谓???
????1????INSERTING?????????????INSERT??????TRUE???????FALSE??
????2????UPDATING [??column_1??column_2??…??column_x??]?????????????UPDATE ???????????column_x?校??????TRUE???????FALSE??????column_x???????
????3????DELETING?????????????DELETE????????TRUE???????FALSE??
??????????????????????????????????????
????l ?????????????浼�?????屑?????????
????l ????????????WHEN??????????????????????????屑?????????????????????????UPDATING??????械??斜??
????instead of ??????:??????????DML??????????????锌?????????????????????????????????????????渭????????????????????懈????
????create [or replace] trigger ????????
????instead of insert|delete|update on ?????
????[for each row [when]]
????PL/SQL??|???霉???(call procedure_name)
????????????????????????????????with check option???;
????for each row????????????instead of????????????屑????????????????屑?????????
??????斜?????;
??????斜?????????????????????instead of??????????????DML?????????????
?????????????:
????l ?????????????????????????????? ???纾篋ML???(INSERT?? UPDATE?? DELETE??????????????????????)??DDL?????CREATE??ALTER??DROP???????????写??????????????????????????????????????????????????????????????????????????????
????l ???????????TRIGGER ??????????????????BEFORE?????????(AFTER)??????????????????TRIGGER ????????
????l ??????????????TRIGGER ????????????????????????????????????????椤� ???纾篜L/SQL ?椤�
????l ????????????????????????????????????些????????????????????????????????????写?????????
????l ????????????WHEN????????????????????械??????????TRUE??????????????????????写????????????写?????????
????l ??????????????????????????????械??????????浼�(STATEMENT)?????????屑?(ROW)????????
??????浼�(STATEMENT)?????????????????????????????????????????危?
?????屑?(ROW)??????????????????????????????????貌?????????????????????????????????巍?
??????写??????????????????????
????l ?????????????????
????l ???????????12???????????????????????????????????????????????????????????????矛???
????l ???????????????????????????DML????????????????
????l ?????????32KB???????????????????????????????????????CALL?????械??谩?
????l ???????????胁????????DML???SELECT??INSERT??UPDATE??DELETE???????????DDL???CREATE??ALTER??DROP????
????l ???????胁????????????????(COMMIT??ROLLBACK??SAVEPOINT)????????????????????????????????????????????????????????????????
????l ????????????械?????魏喂?????????????????????????????
????l ????????????胁????????魏?Long??blob?????????new????old?????????械??魏?long??blob?小?
????l ?????????????(??DML????????INSTEAD OF????????????????)??????????????薪??????
??????scott????锟�?????????????????
????Sql????
????-- ??浼�??????
????-- ????????????????????
????create or replace trigger tr_sec_emp
????-- before:??DML????????
????before insert or update or delete on emp
????-- ??????????????????屑???????浼�????????????? FOR EACH STATEMENT
????begin
????if to_char(sysdate??'DAY'??'nls_date_language=AMERICAN')
????in('SAT'??'SUN') then
????case
????-- ???????????Insert?????????????谓???????True???????False
????when inserting then
????raise_application_error(-20001??'??????????????????????');
????-- ???????????Update?????????????谓???????True???????False
????when updating then
????raise_application_error(-20002??'?????????????????????');
????-- ???????????Delete?????????????谓???????True???????False
????when deleting then
????raise_application_error(-20003??'??????????????????????');
????end case;
????end if;
????end;
????/
??????

???路???
??????????????????
2023/3/23 14:23:39???写?貌??????????
2023/3/22 16:17:39????????????????????些??
2022/6/14 16:14:27??????????????????????????
2021/10/18 15:37:44???????????????
2021/9/17 15:19:29???路???????路
2021/9/14 15:42:25?????????????
2021/5/28 17:25:47??????APP??????????
2021/5/8 17:01:11