¹ØÓÚoracle´¥·¢Æ÷µÄÎÊÌâ - Oracle / ¸ß¼¶¼¼Êõ
ÏÖÔÚÓÐÈý¸ö±íA£¬B£¬C,±íÖÐ×Ö¶ÎÈçÏ£º
±íA£º[×Ö¶Î1][×Ö¶Î2][×Ö¶Î3][×Ö¶Î4]
±íB£º[×Ö¶Î1][×Ö¶Î2]
±íC£º[×Ö¶Î3][×Ö¶Î4]
ÒªÇóµ±±íAÖ´ÐÐinsert²Ù×÷ʱ£¬Ïò±íBºÍ±íCÖвåÈëÏàÓ¦×ֶΣ¬ÆäÖÐ×Ö¶Î1ºÍ×Ö¶Î2²åÈë±íB£¬×Ö¶Î3ºÍ×Ö¶Î4²åÈë±íC
ÇëÎÊ´¥·¢Æ÷¸ÃÔõôд°¡£¿
ÎÒ³¢ÊÔ×ÅÔÚÒ»¸ö´¥·¢Æ÷ÁËдÁËÁ½ÌõinsertÓï¾ä£¬µ«ÊÇûÓÐÖ´Ðгɹ¦¡£
SQL code:
CREATE OR REPLACE TRIGGER tr_A_insert
AFTER INSERT ON table_A
FOR EACH ROW
BEGIN
--ʹÓÃ:newÀ´ÒýÓÃвåÈëÖµ
INSERT INTO ±íB VALUES (:new.×Ö¶Î1, new.×Ö¶Î2);
INSERT INTO ±íC VALUES (:new.×Ö¶Î3, :new.×Ö¶Î4);
END;
´¥·¢Æ÷£º
create or replace trigger asdf
after insert on A
for each row
begin
insert into B values (:new.×Ö¶Î1,:new.×Ö¶Î2);
insert into C values(:new.×Ö¶Î3,:new.×Ö¶Î4);
end;
ÄÇÄãµÄ´¥·¢Æ÷Óï¾äÌù³öÀ´¿´¿´
±¨Ê²Ã´´í
SQL code:
create or replace trigger in_a before insert on A for each row
as
begin
insert into B values(:new.×Ö¶Î1,:new.×Ö¶Î2);
insert into C values(:new.×Ö¶Î3,:new.×Ö¶Î4);
commit;
end;
--2:Ò²¿ÉÒÔÓÃmerge intoÀ´
merge into B using A on(A.×Ö¶Î1=B.×Ö¶Î1 and A.×Ö¶Î2=B.×Ö¶Î2)
when not matched then insert(B.×Ö¶Î1,B.×Ö¶Î2) values(A.×Ö¶Î1,A.×Ö¶Î2)
merge into C using
Ïà¹ØÎÊ´ð£º
ÔÚϵͳÔËÐеÄʱºò×ÜÊÇÓÐÒ»¿é´ÅÅÌʼÖÕÉÁºìµÆ£¬½øÈëϵͳºó
#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£¬ÕâÊÇʲôÒâ˼°¡£¿ÕÕ ......
oracleµÄ°²×°ºÍʹÓö¼ºÜÄÑÂð£¿ÔÀ´Ê²Ã´¶¼²»»áʱѧÁËMySQL£¬Ò²Ã»Ôõôѧ¹ý£¬¾Í×Ô¼º×°¼¸´Î£¬Óü¸Ï£¬¾Í´ïµ½ÁË´óÌåÄÜʹÓõij̶ÈÁË£¬¿ÉÊÇoracleµ½ÏÖÔÚ²»»á×°²»»áÓ㬲»»áÅ䣬ÎÒ¾ÍÏë×°¸öoracle£¬È»ºó½¨¸öÊý¾Ý¿â£¬ÀïÃæÓм¸Õ ......
·þÎñÆ÷ºǫ́µÄÊý¾Ý¿âÊÇoracle£¬ÔÚ½ñÌìϵͳµÇ¼µÄʱºò±¨¡°µÇ¼²»ÁËÊý¾Ý¿â£¬IOÒì³£¡±£¬½á¹ûÊÇÈ«¹«Ë¾¶¼µÇ²»ÉÏÈ¥£¬ÎÒÖØÆôÁËһϷþÎñÆ÷²ÅºÃÁË£¬ÎÒÏë¿ÉÄÜÊÇÓû§²¢·¢Á¿Ì«´óµÄÔµ¹Ê£¬²»ÖªµÀ¸÷λ´óϺÈÏͬ²»£¿ÓÐʲô½â¾ö°ì·¨Ã»£¿ ......