oracle触发器及异常处理 简单例子

时间:2021-11-11 21:47:14
  1. create sequence person_seq
  2. start with 1
  3. increment by 1
  4. order                     --按顺序
  5. nocycle                 --不循环不重复
  6. ;
  7. insert into person values(person_seq.nextval,null,'iteye);
  8. delete from person;
  9. update person set user_name ='zwllxs6' where id = 3;
  10. ---触发器
  11. create or replace trigger person_tr before insert or update or delete on person
  12. for each row
  13. Declare
  14. can_not_update_exception  EXCEPTION;
  15. begin
  16. dbms_output.put_line('testest');
  17. if inserting then
  18. dbms_output.put_line('inserting');
  19. end if;
  20. if updating then
  21. dbms_output.put_line('updating');
  22. dbms_output.put_line('old: '||:old.user_name);
  23. dbms_output.put_line('new: '||:new.user_name);
  24. if(:old.user_name<>:new.user_name) then
  25. dbms_output.put_line('不一样,不能更新');
  26. Raise_application_error(-20000,'不一样,不能更新');
  27. end if;
  28. end if;
  29. if deleting then
  30. dbms_output.put_line('deleting');
  31. end if;
  32. end;
  1. Class.forName("oracle.jdbc.driver.OracleDriver");
  2. Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl", "scott", "******");
  3. // 创建状态
  4. Statement stmt = conn.createStatement();
  5. // 执行SQL语句,返回结果集
  6. ResultSet rs = stmt.executeQuery("SELECT * FROM person");
  7. while (rs.next()) {
  8. int id = rs.getInt("id");
  9. String userName = rs.getString("user_name");
  10. System.out.println("id: "+id);
  11. System.out.println("userName: "+userName);
  12. }
  13. int num=stmt.executeUpdate("update person set user_name ='zwllxs5' where id = 3");
  14. System.out.println("num: "+num);