ORACLE ´¥·¢Æ÷ÈçºÎupdate×îÐÂinsertµÄÊý¾Ý
´¥·¢Æ÷ÈçÏ£º
CREATE or replace TRIGGER TEST_DB.add8hour after
INSERT ON TEST_DB.REPOSITORY for each row
declare PRAGMA AUTONOMOUS_TRANSACTION;
begin
update TEST_DB.REPOSITORY set RP_MODIFIED_TIME=:NEW.RP_MODIFIED_TIME+1/3 WHERE :new.RP_ID=(select max(:new.RP_ID) from TEST_DB.REPOSITORY);
commit;
end;
Ä¿µÄÊÇupdate×îÐÂinsertµÄÊý¾Ý£¬ ¸ÃÊý¾ÝµÄÌØÕ÷ÊÇÓµÓÐ RP_ID µÄ×î´óÖµ£¬ µ«½á¹ûÊÇ ´¥·¢Æ÷Ö»ÄÜupdateËüµÄÉÏÒ»Ìõ¼Ç¼£¬¶ø²»ÊDZ¾´ÎµÄ£¬ ¸ÃÔõô×ö£¿
update TEST_DB.REPOSITORY set RP_MODIFIED_TIME=:NEW.RP_MODIFIED_TIME+1/3 WHERE :new.RP_ID=(select max(RP_ID) from TEST_DB.REPOSITORY);
ÊÔÊÔ£¿
ºÜ¹Ö Èç¹û select max(RP_ID) ÄÇÑù¸ÄµÄ»°Á¬ÉÏÒ»ÌõÒ²²»¸üÐÂÁË
вåÈëµÄ¼Ç¼£¬RP_IDÊDz»ÊÇ×î´óµÄ£¿
¸Ã¼Ç¼¸Õ¸Õ²åÈ룬after´¥·¢Æ÷¼´¸üÐÂËü£¿
update TEST_DB.REPOSITORY set RP_MODIFIED_TIME=:NEW.RP_MODIFIED_TIME+1/3 WHERE RP_ID=:new.RP_ID;
вåÈëµÄ¼Ç¼£¬RP_IDÊDz»ÊÇ×î´óµÄ£¿ ——ÊǵÄ
¸Ã¼Ç¼¸Õ¸Õ²åÈ룬after´¥·¢Æ÷¼´¸üÐÂËü£¿ —— ÊÇÕâ¸öÄ¿µÄ
update TEST_DB.REPOSITORY set RP_MODIFIED_TIME=:NEW.RP_MODIFIED_TIME+1/3 WHERE RP_ID=:new.RP_ID;
ÕâÑùÒ²ÊÇÒ»ÌõÒ²²»¸üУ¬ »á²»»áÊÇÔÚ new µÄËùÈ¡µ½ÖµÉÏÓÐʲô˵·¨£¬ where Ìõ¼þ²»·ûºÏ£¿
¶÷£¬×ÔÖÎÊÂÎñÎÞ·¨¿´¼ûÆäÍâÃæ¸¸ÊÂÎñвåÈëµÄÊý¾Ý¡£
ÄÇÇëÖ¸µãÒ»Ï塃 ¸ÃÔõô×ö£¬ ²»ÓÃ×ÔÖÎÊÂÎñÒ²ÐУ¬
Ïà¹ØÎÊ´ð£º
ÎÒÊÇÓÃÔ¶³Ì×ÀÃæÁ¬²Ù×÷·þÎñÆ÷ÉϵÄÊý¾Ý¿â¡£
ÔÚ´´½¨Ò»¸öÓû§Ö®ºó£¬ÔÙÓÃPLSQLµÇ¼£¬ÔòPLSQLËÀµôÁË¡£
ÎҹصôPLSQLÖ®ºó£¬ÓÃÆäËûÓû§Ò²²»ÄܵǼ¡£
ÎÒ°ÑoracleµÄ·þÎñÍ£Ö¹£¬½á¹û¾ÍÊÇoracleµÄ·þÎñ״̬¾ÍÍ£ÁôÔÚ¡°Í ......
ÔÚϵͳÔËÐеÄʱºò×ÜÊÇÓÐÒ»¿é´ÅÅÌʼÖÕÉÁºìµÆ£¬½øÈëϵͳºó
#topas²é¿´×ÜÊÇÓÐÒ»¿é´ÅÅÌ%BUSYΪ90%ÒÔÉÏ£¬
Êý¾Ý¿â°æ±¾£ºoracle 9.2.0.7
Êý¾ÝÎļþ¹ÒÔØµÄ½Úµã£º/oradata/pcs/ Âß¼¾íºÅlv04
#lslv -l lv04
......
²éÁËÒ»ÌìµÄblob£¬»¹ÊÇûÀí½âµ½£¬ÎÒÏëÔÚVCÏ´æÈ¡¶þ½øÖƵÄÎļþ£¬Ê¹ÓõÄÊÇoo4o£¬ÕÕ×ŰïÖúÎĵµÉÏÃæµÄдÁËдÈëÊý¾Ý¿âµÄ´úÂ룬»¹ÊÇûд¶Ô£¬´íÎóÌáʾÊÇthis operation is not permitted on a empty LOB£¬ÕâÊÇʲôÒâ˼°¡£¿ÕÕ ......
SQL code:
declare
v_deptno number(2);
v_dname varchar2(14);
begin
dbms_output.put_line('ÇëÊäÈ벿ÃźźͲ¿ÃÅÃû:');
v_deptno:=&deptno;
v_dname:='&dname';
insert into dept01(deptno,dnam ......