码迷,mamicode.com
首页 > 数据库 > 详细

oracle的异常处理

时间:2017-03-12 19:44:49      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:llb   ice   style   roc   使用   异常   ems   bst   values   

  /**
     写入自动施封命令:【同步webservice使用】
     wyg 2017-03-12
  */
  PROCEDURE ISDT_VEHICLE_AutoLock(P_WID       IN VARCHAR2,
                                  P_VEHICLENO IN VARCHAR2,
                                  P_STATE     OUT INT,
                                  P_MSG       OUT VARCHAR2) IS
  BEGIN
    insert into t_isdt_elockautorequest
      (requestid,
       wid,
       vehicleno,
       operatetype,
       created_date,
       last_updated_date)
    values
      (sys_guid(), P_WID, P_VEHICLENO, 1, sysdate, sysdate);
    COMMIT;
    P_STATE := 1;
    P_MSG   := ‘success‘;
  EXCEPTION
    WHEN OTHERS THEN
      rollback;
      P_STATE := 0;
      P_MSG   := SUBSTRB(‘line:‘ || dbms_utility.format_error_backtrace() ||
                         ‘ Occur error;‘ || SQLCODE || ‘,‘ || SQLERRM,
                         1,
                         200);
  END;

  

 EXCEPTION
    WHEN DUP_VAL_ON_INDEX THEN
      INSERT INTO t_isdt_vehicle_track_err
        (car_num,
         gpstime,
         lon,
         lat,
         speed,
         direction,
         odometer,
         statusstr,
         placeroad,
         created_date,
         CREATED_BY)
      VALUES
        (P_CAR_NUM,
         P_GPSTIME,
         P_LON,
         P_LAT,
         P_SPEED,
         P_DIRECTION,
         P_ODOMETER,
         P_STATUSSTR,
         P_PLACEROAD,
         SYSDATE,
         1);
      P_STATE := 0;
      P_MSG   := SUBSTRB(line: || dbms_utility.format_error_backtrace() ||
                          Occur error; || SQLCODE || , || SQLERRM,
                         1,
                         200);
      COMMIT;
    WHEN OTHERS THEN
      ROLLBACK;
      P_STATE := 0;
      P_MSG   := SUBSTRB(line: || dbms_utility.format_error_backtrace() ||
                          Occur error; || SQLCODE || , || SQLERRM,
                         1,
                         200);

显示结果:

ine:ORA-06512: 在 "employeDB.__DATA_SYNC", line 512
Occur error;-12899,ORA-12899: 列 "EMS"."T_ISDT_ELOCKAUTOREQUEST"."WID" 的值太大 (实际值: 137, 最大值: 50)

oracle的异常处理

标签:llb   ice   style   roc   使用   异常   ems   bst   values   

原文地址:http://www.cnblogs.com/yitong/p/6538730.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!