Oracle PL/SQL开发基础(第十九弹:集合的异常处理)

在使用集合进行数据处理时,需要了解这几种类型可能会产生的异常及如何对这些异常进行处理。例如,去访问一个未被初始化的嵌套表,或访问索引表中一个不存在的元素,下标超出变长数组的最大范围都会引发异常。下面是集合中的一些常见的异常情况。
- COLLECTION_IS_NULL:调用一个空集合的方法。
- NO_DATA_FOUND:下标索引指向一个被删除的元素或索引表中不存在的元素。
- SUBSCRIPT_BEYOND_COUNT:下标索引值超过集合中的元素个数。
- SUBSCRIPT_OUTSIDE_LIMIT:下标索引超过允许范围。
- VALUE_ERROR:下标索引值为空,或不能转换成正确的键类型。当键被定义在PLS_INTEGER的范围内,而下标索引值超过这个范围时,就可能抛出这个异常。

如:

DECLARE
   TYPE numlist IS TABLE OF NUMBER;
   nums numlist;          --一个空的嵌套表
BEGIN
   nums(1):=1;        --未构造就使用表元素,将触发:ORA-06531:引用未初始化的收集
   nums:=numlist(1,2);--初始化嵌套表
   nums(NULL):=3;     --使用NULL索引键,将触发:ORA-06502:PL/SQL:数字或值错误:NULL索引表键值
   nums(0):=3;        --访问不存在的下标,将触发:ORA-06532:下标超出限制
   nums(3):=3;        --下标超过最大元素个数,将触发:ORA-06532:下标超出限制
   nums.DELETE(1);    --删除第1个元素
   IF nums(1)=1 THEN
      NULL;
       --因为第1个元素已被删除,再访问将触发:ORA-01403: 未找到任何数据
   END IF;
END;
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值