oracle有索引的集合,oracle – 获取PL / SQL集合中的元素索引

是否有内置函数来确定PL / sql集合中元素的(第一个)索引?

就像是

DECLARE

TYPE t_test IS TABLE OF VARCHAR2(1);

v_test t_test;

BEGIN

v_test := NEW t_test('A','B','A');

dbms_output.put_line( 'A: ' || get_index( v_test,'A' ) );

dbms_output.put_line( 'B: ' || get_index( v_test,'B' ) );

dbms_output.put_line( 'C: ' || get_index( v_test,'C' ) );

END;

A: 1

B: 2

C:

无论什么必要,我都可以使用关联数组,嵌套表或变量.如果同一元素存在多次,则第一次出现的索引就足够了.

否则我必须做类似的事情

CREATE FUNCTION get_index ( in_test IN t_test,in_value IN VARCHAR2 )

RETURN PLS_INTEGER

AS

i PLS_INTEGER;

BEGIN

i := in_test.FIRST;

WHILE( i IS NOT NULL ) LOOP

IF( in_test(i) = in_value ) THEN

RETURN i;

END IF;

i := in_test.NEXT(i);

END LOOP;

RETURN NULL;

END get_index;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值