无法在这个位置找到: head2.htm
当前位置: 建站首页 > 新闻动态 > 行业新闻 >

Oracle三种结合数据信息种类的较为

时间:2021-02-28 23:30来源:未知 作者:jianzhan 点击:
PL/SQL中沒有数字能量数组的定义,他的结合数据信息种类和数字能量数组是类似的。在7.3之前的版本号中仅有一种结合,称之为PL/SQL表,在这里以后又有二种结合数据信息种类:嵌套循环
PL/SQL中沒有数字能量数组的定义,他的结合数据信息种类和数字能量数组是类似的。在7.3之前的版本号中仅有一种结合,称之为PL/SQL表,在这里以后又有二种结合数据信息种类:嵌套循环表和varray。在其中varray结合中的原素是了解量限定的,index_by表和嵌套循环表是沒有这一限定的。index-by表是稀少的,换句话说下标能够不持续,varray种类的结合则是密不可分的,他的下标沒有间距。index_by表不可以储存在数据信息库文件,可是嵌套循环表和varray能够被储存在数据信息库文件。

结合在应用时务必先应用type开展界定即可应用

1.index_by表

type type_name is table of element_type [NOT NULL] index by binary_integer

2.嵌套循环表

type type_name is table of element_type [NOT NULL]

3.varray

type type_name is [varray varying array](max_size) of element_type[NOT NULL]

一,index_by表

TYPE TYPE1 IS TABLE OF VARCHAR2(10) INDEX BY BINARY_INTEGER;

1.应用的情况下必须先取值后载入,最少还要先前期化一下,不然会出現出现异常:ORA-01403: no data found。

2.这类数字能量数组不用事前特定限制,下标能够不持续,能够是0或负数。

例:v1 TYPE1;

v1(-1) := '-1';

v1(0) := '0';

v1(1) := '1';

DBMS_OUTPUT.put_line(v1(-1)); --浏览合理合法

DBMS_OUTPUT.put_line(v1(2)); --浏览不法

二,嵌套循环表

TYPE TYPE2 IS TABLE OF VARCHAR2(10);

1.务必开展前期化,不然会出現出现异常:ORA-06531: Reference to uninitialized collection

2.前期化方式:

v1 TYPE2 := TYPE2(); --申明时前期化数字能量数组为空

v2 TYPE2 := TYPE2('1','2','3','4','5'); --申明时前期化数字能量数组为五个原素

v1 := TYPE2(); --前期化后数字能量数组为空

v2 := TYPE2('1','2','3','4','5'); --前期化后数字能量数组为五个原素

3.数字能量数组原素的浏览:

下标从1刚开始,不可以超出数字能量数组全部原素的总数,时下标超过容许范畴时,出現出现异常:ORA-06532: Subscript outside of limit

由于不可以浏览空数字能量数组,因此空数字能量数组的场所,务必开展数字能量数组拓展。

例:v1.EXTEND;

V1(1):= ‘1’; --浏览合理合法

v1(2):= ‘2’; --浏览不法,以前务必再度实行v1.EXTEND;

例:v2的下标范畴是1~5。

v2(5):= ‘Hello’; --浏览合理合法

DBMS_OUTPUT.put_line(v2(6)); --浏览不法

三,Varray

TYPE TYPE3 IS ARRAY(5) OF VARCHAR2(10);

因为种类界定时的原素数量限定,因此TYPE3的自变量在应用时较大的原素数量不可以超出五个。

与嵌套循环表基本一致(略)

四,结合內建涵数

结合也有许多內建涵数,这种涵数称之为方式,启用方式的英语的语法以下:

collection.method

下表格中列举oracle中结合的方式

方式 叙述 应用限定

COUNT 回到结合中原素的数量

DELETE 删掉结合中常有原素

DELETE(x) 删掉原素下标为x的原素,假如x为null,则结合维持不会改变 对VARRAY不法

DELETE(x,y) 删掉原素下标从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以后及紧挨着它的原素的值,假如该原素是最终一个原素,则回到null。

PRIOR(x) 回到结合中在原素x以前紧挨着它的原素的值,假如该原素是第一个原素,则回到null。

TRIM 从结合尾端刚开始删掉一个原素 对index_by不符合法

TRIM(x) 从结合尾端刚开始删掉x个原素 对index_by不符合法

(责任编辑:admin)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
无法在这个位置找到: ajaxfeedback.htm
栏目列表
推荐内容


扫描二维码分享到微信