oracle组合数据类型,oracle复合数据类型-相关方法
oracle提供了一些內(nèi)置的函數(shù)和方法來操作復(fù)合數(shù)據(jù)類型。
一、count 返回集合中的元素的個(gè)數(shù)
declare
type ename_table_type is table of varchar2(20) index by binary_integer ;
ename_table ename_table_type ;
begin
for i in 1..5 loop
ename_table(i):='a'||i ;
end loop ;
dbms_output.put_line('元素個(gè)數(shù):'||ename_table.count) ;
for c in 1..ename_table.count loop
dbms_output.put_line(ename_table(c)) ;
end loop ;
end ;
二、exists 用于確定集合元素是否存在,如果存在則返回true,否則返回false
SQL> declare
2 type ename_table_type is table of varchar2(20);
3 ename_table ename_table_type ;
4 BEGIN
5?????? IF ename_table.exists(1) THEN
6???????????? ename_table(1):='scot' ;
7?????? ELSE
8??????????? dbms_output.put_line('嵌套表使用前要初始化');
9?????? END if ;
10 end;
11 /
嵌套表使用前要初始化
PL/SQL procedure successfully completed
三、first&last first返回集合第一個(gè)元素的下標(biāo),last返回集合最后一個(gè)元素的下標(biāo)。
SQL> DECLARE
2 TYPE ename_varray_type IS table OF varchar2(20) INDEX BY binary_integer;
3 ename_varray ename_varray_type ;
4 BEGIN
5?????? ename_varray(1):='mary' ;
6?????? ename_varray(4):='scott' ;
7?????? ename_varray(5):='tiger' ;
8?????? ename_varray(7):='lucy' ;
9?????? dbms_output.put_line('第一個(gè)元素下標(biāo):'||ename_varray.first);
10?????? dbms_output.put_line('最后個(gè)元素下標(biāo):'||ename_varray.last);
11 end ;
12 /
第一個(gè)元素下標(biāo):1
最后個(gè)元素下標(biāo):7
PL/SQL procedure successfully completed
四、prior&next prior返回當(dāng)前元素前一個(gè)元素的下標(biāo),next返回當(dāng)前元素下一下元素的下標(biāo)
SQL> DECLARE
2 TYPE ename_varray_type IS table OF varchar2(20) INDEX BY binary_integer;
3 ename_varray ename_varray_type ;
4 BEGIN
5?????? ename_varray(1):='mary' ;
6?????? ename_varray(4):='scott' ;
7?????? ename_varray(5):='tiger' ;
8?????? ename_varray(7):='lucy' ;
9?????? dbms_output.put_line('元素5的前一個(gè)元素下標(biāo):'||ename_varray.prior(5));
10?????? dbms_output.put_line('元素5的后一個(gè)元素下標(biāo):'||ename_varray.next(5));
11 end ;
12 /
元素5的前一個(gè)元素下標(biāo):4
元素5的后一個(gè)元素下標(biāo):7
PL/SQL procedure successfully completed
五、delete
DECLARE
TYPE ename_varray_type IS table OF varchar2(20) INDEX BY binary_integer;
ename_varray ename_varray_type ;
BEGIN
ename_varray(1):='mary' ;
ename_varray(4):='scott' ;
ename_varray(5):='tiger' ;
ename_varray(6):='lucy' ;
ename_varray(7):='LILI' ;
ename_varray(8):='join' ;
ename_varray(9):='wzj' ;
FOR c IN 1..ename_varray.count LOOP
IF ename_varray.exists(c) then
dbms_output.put_line('下標(biāo)為'||c||'的值為:'||ename_varray(c));
END IF ;
END loop ;
ename_varray.delete(5);
dbms_output.put_line('刪除下標(biāo)為5的元素之后');
FOR c IN 1..ename_varray.count LOOP
IF ename_varray.exists(c) then
dbms_output.put_line('下標(biāo)為'||c||'的值為:'||ename_varray(c));
END IF ;
END loop ;
ename_varray.delete(8,9);
dbms_output.put_line('刪除下標(biāo)為8,9的元素之后');
FOR c IN 1..ename_varray.count LOOP
IF ename_varray.exists(c) then
dbms_output.put_line('下標(biāo)為'||c||'的值為:'||ename_varray(c));
END IF ;
END loop ;
end ;
delete刪除所有元素,delete(n)刪除下標(biāo)為n的元素,delete(m,n)刪除下標(biāo)元素在[m,n]中的元素。
六、extend?? 只用于嵌套表和變長(zhǎng)數(shù)組,用來擴(kuò)展元素個(gè)數(shù)
SQL> DECLARE
2 TYPE ename_varray_type IS varray(10) OF varchar2(20);
3 ename_varray ename_varray_type :=ename_varray_type('');
4 BEGIN
5????? FOR c IN 1..9 LOOp
6????????? ename_varray(c):='a'||c ;
7????????? ename_varray.extend ;
8????? END LOOP ;
9????? FOR c IN 1..ename_varray.count LOOP
10???????? dbms_output.put_line('下標(biāo)為'||c||'的元素為:'||ename_varray(c));
11????? END LOOP ;
12 end ;
13 /
下標(biāo)為1的元素為:a1
下標(biāo)為2的元素為:a2
下標(biāo)為3的元素為:a3
下標(biāo)為4的元素為:a4
下標(biāo)為5的元素為:a5
下標(biāo)為6的元素為:a6
下標(biāo)為7的元素為:a7
下標(biāo)為8的元素為:a8
下標(biāo)為9的元素為:a9
下標(biāo)為10的元素為:
PL/SQL procedure successfully completed
總結(jié)
以上是生活随笔為你收集整理的oracle组合数据类型,oracle复合数据类型-相关方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 股票代码dr是什么意思
- 下一篇: matlab usewhitebg,Ma