ORACLE 之陣列定義

2021-09-01 22:39:51 字數 1710 閱讀 5439

固定陣列

declare

type type_array is varray(10) of varchar2(20); --一維陣列,字串型別

var_array type_array:=type_array('ggs','jjh','wsb','csl','dd','bb');

begin

for i in 1..var_array.count loop --陣列的長度用count

dbms_output.put_line(var_array(i));

end loop;

end;

count 返回集合中元素的個數

delete 刪除集合中所有元素

delete(x) 刪除元素下標為x的元素 對varray非法

delete(x,y) 刪除元素下標從x到y的元素 對varray非法

exist(x) 如果集合元素x已經初始化,則返回true, 否則返回false

extend 在集合末尾新增乙個元素 對index_by非法

extend(x) 在集合末尾新增x個元素 對index_by非法

extend(x,n) 在集合末尾新增元素n的x個副本 對index_by非法

first 返回集合中的第乙個元素的下標號,對於varray集合始終返回1。

last 返回集合中最後乙個元素的下標號, 對於varray返回值始終等於count.

limit 返回varry集合的最大的元素個數 index_by集合和巢狀表無用

next(x) 返回在第x個元素之後及緊挨著它的元素值,如果x是最後乙個元素,返回null.

prior(x) 返回在第x個元素之前緊挨著它的元素的值,如果x是第乙個元素,則返回null。

trim 從集合末端開始刪除乙個元素 對於index_by不合法

trim(x) 從集合末端開始刪除x個元素

var_array.next(3); //返回var_array(3)

可變陣列

declare

type type_array is table of varchar2(20) index by binary_integer;

var_array type_array;

begin

var_array(1):='aa';

var_array(2):='bb'; --下標必須是連續的

for i in 1..var_array.count loop

dbms_output.put_line( var_array(i));

end loop;

end;

declare

type type_array is table of t_user%rowtype index by binary_integer; --類似二維陣列

var_array type_array;

begin

select * bulk collect into var_array from t_user;

for i in 1..var_array.count loop

dbms_output.put_line(var_array(i).user_id); --二維陣列的訪問

dbms_output.put_line(var_array(i).username);

end loop;

end;

ORACLE 之陣列定義

固定陣列 declare type type array is varray 10 of varchar2 20 一維陣列,字串型別 var array type array type array ggs jjh wsb csl dd bb begin for i in 1.var array.co...

oracle 陣列定義

集合 是具有相同定義的元素的聚合。oracle有兩種型別的集合 可變長陣列 varray 可以有任意數量的元素,但必須預先定義限制值。巢狀表 視為表中之表,可以有任意數量的元素,不需要預先定義限制值。在pl sql中是沒有陣列 array 概念的。但是如果程式設計師想用array的話,就得變通一下,...

oracle之系統預定義角色

預定義角色是在資料庫安裝後,系統自動建立的一些常用的角色。下介簡單的介紹一下這些預定角色。角色所包含的許可權可以用以下語句查詢 sql select from role sys privs where role 角色名 1 connect,resource,dba 這些預定義角色主要是為了向後相容。...