触发器使用自治事务修改表

CREATE OR REPLACE TRIGGER USER_TEST_TRIGGER
  AFTER INSERT ON USER_TEST
  FOR EACH ROW --对表的每一行触发器执行一次
DECLARE
  NAMES VARCHAR2(20);
  AGES VARCHAR2(20);
  AGEFS VARCHAR2(20);
  AGESS VARCHAR2(20);
  PWDS VARCHAR2(20);
  SEXS VARCHAR2(20);
  PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
  NAMES:=:NEW.USER_NAME;
  AGES:=:NEW.USER_PWD;
  PWDS:=:NEW.USER_AGE;
  SEXS:=:NEW.USER_SEX;
  --SELECT :NEW.USER_NAME INTO NAMES FROM DUAL;
  DBMS_OUTPUT.PUT_LINE(NAMES,AGES,PWDS,SEXS);

  --AGEFS:=SUBSTR(AGES, 1, 2)||','||SUBSTR(AGES, 3, 2)||','||SUBSTR(AGES, 5, 2)||','||SUBSTR(AGES, 7, 2);

  SELECT SUBSTR(AGES, 1, 2)||','||SUBSTR(AGES, 3, 2)||','||SUBSTR(AGES, 5, 2)||','||SUBSTR(AGES, 7, 2) INTO AGEFS FROM DUAL;
 
  DBMS_OUTPUT.PUT_LINE(AGEFS);
 
  --AGESS:=REPLACE(REVERSE_F(AGEFS,','),',','' );
  SELECT REPLACE(REVERSE_F(AGEFS,','),',','') INTO AGESS FROM DUAL;
 
  DBMS_OUTPUT.PUT_LINE(AGESS);
 
  UPDATE USER_TEST SET USER_AGE=AGESS WHERE USER_NAME=NAMES;
  COMMIT;
END;

猜你喜欢

转载自blog.csdn.net/javawutuobang/article/details/79903253