oracle ÓÃtrigger¶¯Ì¬´´½¨±í¸ñ
¸÷λ´ó¸ç´ó½ã.
СµÜÔÚ´´½¨trigger Óöµ½Ò»¸öÎÊÌâ.°ï°ïæ°É!
ÔÚ±íeqdb_platform ÖвåÈë¼Ç¼ ֮ǰÏȼì²é Ïà¹ØÁªÁíÍâµÄÒ»¸ö±í¸ñÊDz»ÊÇ´æÔÚ. Èç¹û²»´æÔھʹ´½¨.
CREATE OR REPLACE TRIGGER eqdb_platform_bi
BEFORE INSERT ON eqdb_platform
FOR EACH ROW
DECLARE
v_count int ;
v_platform VARCHAR2(10) ;
v_area VARCHAR2(10) ;
v_tablename VARCHAR2(20);
sql_stmt VARCHAR2(200);
BEGIN
v_platform := :NEW.platform;
v_tablename := :NEW.tablename;
v_area := :NEW.area;
SELECT count(*) INTO v_count from user_tables
WHERE table_name=v_tablename;
IF v_count < 1 THEN
sql_stmt := 'CREATE TABLE '|| v_tablename || ' AS SELECT * from EQDB_DETAILS_J971 WHERE rownum < 1';
EXECUTE IMMEDIATE sql_stmt;
END IF;
END;
trigger ´´½¨Ê± ûÎÊÌâ. Ö´ÐÐʱ³ö´í.
SQL> /
Trigger created.
SQL> INSERT INTO eqdb_platform(platform,tablename,vendor,area) values ('J973','EQDB_DETAILS_J973','Teradyne','Probe')
2 ;
INSERT INTO eqdb_platform(platform,tablename,vendor,area) values ('J973','EQDB_DETAILS_J973','Teradyne','Probe')
*
ERROR at line 1:
ORA-04092: cannot COMMIT in a trigg
Ïà¹ØÎÊ´ð£º
ÇëÎÊÕâ¸ö»º³å³ØÊÇÔõô»ØÊ°¡£¿¿ÉÒÔÁ¬½Ó»º³å³ØÀûÓÃÆäÖеÄÊý¾Ý°É£¿ÔõôÓã¿
Õâ¸öÊÇoracle×Ô¶¯×öµÄ£¬Ò»°ãÓ¦ÓóÌÐòÊDzÙ×÷²»Á˵ġ£
²»ÄÜÖ±½ÓÁ¬½ÓÂð£¿
ÒýÓÃ
²»ÄÜÖ±½ÓÁ¬½ÓÂð£¿
²»ÄÜ
ÄÇ»º³å³ØÀïµÄÊý¾ÝÒ²²»Äܲéѯ ......
СµÜ£¬×î½üҪתÐÐÈ¥×öoracle¿ª·¢ÁË£¬ÓÉÓÚ´óѧ±Ïҵʱ£¬×ßÁ˸öÍä·£¬ÏÖÔÚºÜСÐÄ£¬ÎÊÏ£¬×öPL/SQLÓÐûÓÐǰ;£¿£¿£¿
µ±È»ÎÒ˵µÄÕâ¸öǰ;ÊÇÖ¸ ÒÔºóÒªÌø²Û£¬Êг¡¶ÔÕâÑùµÄÈ˲ŵÄÐèÇóÁ¿´ó²»´ó£¿£¿
3q ÄÇ¿´À´»¹Ö»ÄÜÏȽӴ ......
select sum£¨a.t)from ta a group by ta.a,ÕâÌõÓï¾ä½«±ítaÖеÄÊý¾Ý°´ÕÕa×ֶηÖ×é»ã×Üt×ֶΡ£
½á¹û±ÈÈ磺
3 30
4 50
ÎÒÏëµÃµ½Õâ¸ö½á¹û£º
1 0
2 0
3 30
4 50
5 0
Õâ¸ö½á¹û£¬ÇëÎÊsqlÓï¾äÔõôд£¿¶àл
nobody ......
oracle 11g °²×° 01092 ´íÎó,
ÈÕÖ¾ÐÅÏ¢£º
[oracle@linux trace]$ vi alert_orcl.log
MMON started with pid=14, OS id=9089
RESETLOGS after incomplete recovery UNTIL CHANGE 522752
Errors in file / ......
ÎÊÌâÌá³ö£º
Ò»¸ö¸ß¼¶SQLÓï¾äÎÊÌâ
¼ÙÉèÓÐÒ»ÕÅ±í£¬AºÍB×ֶζ¼ÊÇNUMBER£¬
A B
1 2
2 3
3 4
4
ÓÐÕâÑùһЩÊý¾Ý
ÏÖÔÚÏëÓÃÒ»ÌõSQLÓï¾ä£¬²éѯ³öÕâÑùµÄÊý¾Ý
COLA COL1 COL3 COL2 COL1
4 4 ......