Ç°ÑÔ£ºÎÒÃÇÖªµÀ£¬Êý¾Ý¿âµÄÊÂÎñÊÇÒ»ÖÖµ¥Ôª²Ù×÷£¬ÒªÃ´²Ù×÷È«²¿³É¹¦£¬ÒªÃ´²Ù×÷È«²¿Ê§°Ü¡£ÔÚOracleÊý¾Ý¿âÖУ¬Ò»¸öÊÂÎñÊÇ´ÓÖ´ÐеÚÒ»¸öÊý¾Ý¹ÜÀíÓïÑÔ£¨DML£©Óï¾ä¿ªÊ¼£¬Ö±µ½Ö´ÐÐÒ»¸öCOMMITÓï¾ä£¬Ìá½»±£´æÕâ¸öÊÂÎñ£¬»òÕßÖ´ÐÐÒ»¸öROLLBACKÓï¾ä£¬·ÅÆú´Ë´Î²Ù×÷½áÊø¡£
ÊÂÎñµÄ¡°ÒªÃ´È«²¿Íê³É£¬ÒªÃ´Ê²Ã´¶¼Ã»Íê³É¡±µÄÌØÐÔ»áÈý«´íÎóÐÅÏ¢¼ÇÈëÊý¾Ý¿â±íÖбäµÃºÜÀ§ÄÑ£¬ÒòΪµ±ÊÂÎñʧ°ÜÖØÐÂÔËÐÐʱ£¬ÓÃÀ´±àдÈÕÖ¾ÌõÄ¿µÄINSERTÓï¾ä»¹Î´Íê³É¡£
Õë¶ÔÕâÖÖÀ§¾³£¬OracleÌṩÁËÒ»ÖÖ±ã½ÝµÄ·½·¨£¬¼´×ÔÖÎÊÂÎñ¡£×ÔÖÎÊÂÎñ´Óµ±Ç°ÊÂÎñ¿ªÊ¼£¬ÔÚÆä×ÔÉíµÄÓï¾³ÖÐÖ´ÐС£ËüÃÇÄܶÀÁ¢µØ±»Ìá½»»òÖØÐÂÔËÐУ¬¶ø²»Ó°ÏìÕýÔÚÔËÐеÄÊÂÎñ¡£ÕýÒòΪÕâÑù£¬ËüÃdzÉÁ˱àд´íÎóÈÕÖ¾±í¸ñµÄÀíÏëÐÎʽ¡£ÔÚÊÂÎñÖмì²âµ½´íÎóʱ£¬Äú¿ÉÒÔÔÚ´íÎóÈÕÖ¾±í¸ñÖвåÈëÒ»Ðв¢Ìá½»Ëü£¬È»ºóÔÚ²»¶ªÊ§Õâ´Î²åÈëµÄÇé¿öÏ»عöÖ÷ÊÂÎñ¡£
ÒòΪ×ÔÖÎÊÂÎñÊÇÓëÖ÷ÊÂÎñÏà·ÖÀëµÄ£¬ËùÒÔËü²»Äܼì²âµ½±»Ð޸ĹýµÄÐеĵ±Ç°×´Ì¬¡£Õâ¾ÍºÃÏñÔÚÖ÷ÊÂÎñÌύ֮ǰ£¬ËüÃÇÒ»Ö±´¦ÓÚµ¥¶ÀµÄ»á»°À¶Ô×ÔÖÎÊÂÎñÀ´Ëµ£¬ËüÃÇÊDz»¿ÉÓõġ£È»¶ø£¬·´¹ýÀ´Çé¿ö¾Í²»Í¬ÁË£ºÖ÷ÊÂÎñÄܹ»¼ì²âµ½ÒѾִÐйýµÄ×ÔÖÎÊÂÎñµÄ½á¹û¡£
Òª´´½¨Ò»¸ö×ÔÖÎÊÂÎñ£¬Äú±ØÐëÔÚÄäÃû¿éµÄ×î¸ß²ã»òÕß´æ´¢¹ý³Ì¡¢º¯Êý¡¢Êý¾Ý°ü»ò´¥·¢µÄ¶¨Ò岿·ÖÖУ¬Ê¹ÓÃPL/SQLÖеÄPRAGMA AUTONOMOUS_TRANSACTIONÓï¾ä¡£ÔÚÕâÑùµÄÄ£¿é»ò¹ý³ÌÖÐÖ´ÐеÄSQL ServerÓï¾ä¶¼ÊÇ×ÔÖεġ£
´¥·¢ÎÞ·¨°üº¬COMMITÓï¾ä£¬³ý·ÇÓÐPRAGMA AUTONOMOUS_TRANSACTION±ê¼Ç¡£µ«ÊÇ£¬Ö»Óд¥·¢ÖеÄÓï¾ä²ÅÄܱ»Ìá½»£¬Ö÷ÊÂÎñÔò²»ÐС£
Áбí1չʾÁ˶ÔÒ»¸ö¼òµ¥µ«Áé»îµÄ´íÎóÈÕÖ¾±í¸ñËù×÷µÄCREATE TABLEºÍCREATE SEQUENCEÓï¾ä¡£
CREATE TABLE errorlog (
errorlog_id NUMBER,
logged_on TIMESTAMP DEFAULT SYSTIMESTAMP,
logged_by VARCHAR2(30) DEFAULT USER,
num1 NUMBER,
num2 NUMBER,
num3 NUMBER,
text1 VARCHAR2(1000),
text2 VARCHAR2(1000),
text3 VARCHAR2(1000)
);
CREATE SEQUENCE errorlog_seq
START WITH 1
INCREMENT BY 1;
Áбí2ÊÇÒ»¸ö¶ÀÁ¢µÄ´æ´¢¹ý³Ì£¬ÓÃÓÚ¸üдíÎóÈÕÖ¾±í¸ñ¡£
CREATE OR REPLACE
PROCEDURE log_error (
n1 IN NUMBER:=NULL, t1 IN VARCHAR:=NULL,
n2 IN NUMBER:=NULL, t2 IN VARCHAR:=NULL,
n3 IN NUMBER:=NULL, t3 IN VARCHAR:=NULL
)
IS
PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
INSERT INTO errorlog
(errorlog_id,
num1, num2, num3, text1, text2, text3)
VALUES
(errorlog_seq.NEXTVAL, n1, n2, n3, t1, t2, t3);
COMMIT;
END;
Õâ¸ö¹ý³Ì½ÓÊÜ×î¶àÈý¸öÊý×ÖºÍÈý¸öÎı¾±äÁ¿£¬È»ºó½«ËüÃǺÍʱ¼ä´ÁÒÔ¼°µ÷Óùý³ÌµÄÓû§Ò»Æð´¢´æÔÚ±í¸ñÖС£
¼ÙÈçÄãÒª²âÊÔÕâ¸ö¹ý³Ì£¬¾ÍÐèÒª¸üУ¨UPDATE£©»òɾ³ý£¨DELETE£©±í¸ñÖеÄijЩÐУ»Õâ¾ÍÒý·¢ÁËÖ÷ÊÂÎñ¡£È»ºóÖ´Ðд洢¹ý³Ì£¬½«ÄúÑ¡ÔñµÄÒª¼ÇÈëÈÕÖ¾µÄÊý¾Ý´«µÝ¸øËü¡£×îºó£¬ÖØÐÂÔËÐÐÖ÷ÊÂÎñ£¬Ñ¡Ôñ£¨SELECT£©´íÎóÈÕÖ¾±í¸ñ£¬ÄãµÄÈÕÖ¾ÌõÄ¿ÒÀ¾É»áÔÚÔλÖá£