本文介紹了prior
/next
的相關說明和示例等內容。
prior
和next
都是函數。
給定一個索引,prior
返回集合中的前一個現有元素的索引(如果存在),否則,prior
返回NULL。因此,對于任何集合c
,c.prior(c.first)
返回NULL。
next
返回集合中的后一個現有元素的索引(如果存在),否則,next
返回NULL。因此,對于任何集合c
,c.next(c.last)
返回NULL。
給定的索引不必存在,prior
和next
會根據索引類型的排序順序查找前一個或后一個索引。prior
和next
會忽略被刪除的元素,即使delete
保留了占位符。
示例
以下是一個變長數組的prior
/next
基礎使用示例。
DECLARE
TYPE v_type IS VARRAY(10) OF VARCHAR(10);
v v_type := v_type();
BEGIN
v.extend(3);
v(1) := 'a';
v(2) := 'b';
v(3) := 'c';
RAISE NOTICE '% % %', v.prior(1), v.prior(2), v.prior(5);
RAISE NOTICE '% % %', v.next(-1), v.next(2), v.next(3);
v.delete(1);
v.delete(3);
RAISE NOTICE '% % %', v.prior(1), v.prior(2), v.prior(5);
RAISE NOTICE '% % %', v.next(-1), v.next(2), v.next(3);
END;
結果顯示如下:
NOTICE: <NULL> 1 3
NOTICE: 1 3 <NULL>
NOTICE: <NULL> <NULL> 2
NOTICE: 2 <NULL> <NULL>
DO
以下是一個關聯數組的prior
/next
基礎使用示例。
DECLARE
TYPE aarray_type IS TABLE OF VARCHAR(10) INDEX BY VARCHAR(10);
arr aarray_type;
BEGIN
arr('b') := 'aa';
arr('c') := 'bb';
arr('d') := 'cc';
RAISE NOTICE '% % %', arr.prior('b'), arr.prior('c'), arr.prior('f');
RAISE NOTICE '% % %', arr.next('a'), arr.next('c'), arr.next('d');
arr.delete('b');
arr.delete('d');
RAISE NOTICE '% % %', arr.prior('b'), arr.prior('c'), arr.prior('f');
RAISE NOTICE '% % %', arr.next('a'), arr.next('c'), arr.next('d');
END;
結果顯示如下:
NOTICE: <NULL> b d
NOTICE: b d <NULL>
NOTICE: <NULL> <NULL> c
NOTICE: c <NULL> <NULL>
DO
文檔內容是否對您有幫助?