日期:2014-05-16  浏览次数:20521 次

oracle 的一些处理
1.oracle 自定义异常
V_EXCEPTION EXCEPTION; 定义异常变量
PRAGMA EXCEPTION_INIT(V_EXCEPTION, -20001); 绑定异常
RAISE_APPLICATION_ERROR(-20001, 'Employees must at least eighteen years of age.'); 抛出异常

---处理异常信息
       exception when V_EXCEPTION THEN
            --处理逻辑
       when others then
            --处理逻辑
       end;

2.oracle 动态游标
TYPE I_CURSO_TYPE IS REF CURSOR;      --动态游标类型
OPEN V_CURSOR FOR P_SQL;
             LOOP
                  FETCH V_CURSOR INTO V_POLNO,V_CERTNO,V_ACCOUNT_TYPE,V_ACCOUNT_CODE,V_TX_AMOUNT,V_TX_DATE;
                  EXIT WHEN V_CURSOR%NOTFOUND;    
                 --处理逻辑
             END LOOP;    
CLOSE V_CURSOR;

3.oracle 类似数组的东西
TYPE MONTH_AMOUNT_TYPE IS RECORD(year_month varchar(10), amount NUMBER);--月份与保单管理费对应关系
TYPE MONTH_AMOUNT_TABLE_TYPE IS TABLE OF MONTH_AMOUNT_TYPE;--相当于月份与管理费对应关系数值
--使用
V_TABLE:=MONTH_AMOUNT_TABLE_TYPE();
V_TABLE.EXTEND;
V_PARAM_ELE.year_month:=P_YEAR_MONTH;
V_PARAM_ELE.amount:=0;
V_TABLE(1):=V_PARAM_ELE;

--循环
for i in 1..P_MONTH_AMOUNT_TABLE.count loop
         V_PARAM_ELE:=P_MONTH_AMOUNT_TABLE(i);
end loop;