oracle 三种复合类型变量分析
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,实际项目中,经常遇到的三种复合类型变量。结合部分项目实例做个整理,具体如下:记录类型:记录类型可以包含一个或多个成员,而每个成员的类型可以不同,成员可以是标量类型。也可以引用其他的变量类型。这种类型的
千家信息网最后更新 2026年10月31日oracle 三种复合类型变量分析
实际项目中,经常遇到的三种复合类型变量。结合部分项目实例做个整理,具体如下:
记录类型:记录类型可以包含一个或多个成员,而每个成员的类型可以不同,成员可以是标量类型。也可以引用其他的变量类型。这种类型的特点是比较适合处理查询语句中有多个列的情况,最常用的情况就如在调用某一张表中的一行记录。
索引表类型(关联数组):索引表类型和数组相似,他利用键值查找对应的值,这里的键值同真正数组的下标不同,索引表中下标允许使用字符串。数组的长度不是固定值,可以根据需要自动增长。其中的键值是整数或是字符串,其中的值就是普通的标量类型,也可以是记录类型。(下标从1开始)
VARRAY 变长数组:变长数组的元素个数需要限制,他是一个存储有序元素的集合,数组的下标从1开始,适合较少数据时使用。
eg1:记录类型-declare type pro_x is record (v_id product_info.id%type, v_name varchar2(10), v_price number(8,2)); v_pro pro_x;//声明变量 v_pro,v_pro的数据类型是pro_x类型。 begin select id,name,price into v_pro from product_info where id='11011211410086'; dbms_output.put_line('id:'||v_pro.v_id||','||'name:'||v_pro.v_name||','||'price:'||v_pro.v_price); end; 记录类型声明方式:type type_name is record(field_name datatype[not null]{:=|default}expression) 说明:not null 可以约束记录成员非空。 可以使用%rowtype进行代替,实现上述功能。即: declarev_pro product_info%rowtype; begin select id,name,price into v_pro from product_info where id='11011211410086'; dbms_output.put_line('id:'||v_pro.id||','||'name:'||v_pro.name||','||'price:'||v_pro.price); end; eg2:索引表类型(关联数组)---×××校验 declare type TiArray is table of integer; type TcArray is table of varchar2(1); type id_emp is table of qlr_info%type index by binary_integer; rst id_emp; W TiArray; A TcArray; S integer; tab varchar2(200); zuihyw varchar2(1); jieguo number; shenfzh varchar2(20); cursor c is select zjbh from qlr_info where length(zjbh)=18 and zjzl='居民×××' and regexp_like(substr(zjbh,1,17),'^[0-9]*$');//regexp_like(substr(zjbh,1,17),'^[0-9]*$') 表示查找截取的前17为字符串为数字。^:匹配开始位置;$:匹配结束位置;*:匹配零次或多次。 begin W:=TiArray(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2); A:=TcArray('1','0','X','9','8','7','6','5','4','3','2');for emc in c loopS:=0;shenfzh:=emp.zjbh;for i in 1..17 loopS:=S+to_number(substr(shenfzh,i,1)*W(i));end loop;jieguo:=S mod 11;zuihyw:=A(jieguo+1);zuihyw2:=substr(shenfzh,18,1);if (zuihyw<>zuihyw2) thendbms_output_line('证件编号:'emp.zjbh||'错误!')end if;end loop;end;eg2.1使用字符串为键值的索引表declaretype pro is table of number(8) index by varchar2(20);v_pro pro;beginv_pro('test'):=253;v_pro('test1'):=256;dbms_out.put_line(v_pro.first ||','||v_pro(v_pro.first));end;索引表类型声明:type type_name is table of {column_type|variable_name%type|table_name%rowtype}[not null] index by {pls_integer|binary_integer|varchar2(v_size)}eg3,变长数组declaretype varr is varray(10) of varchar2(10);//定义数组长度10v_pro varr:=varr('1','2');//初始化了两个元素(最多可以初始化10个)beginv_pro(1):='haha';v_pro(2):='ouou';dbms_output.put_line(v_pro(1)||','||v_pro(2));end;变长数组声明:type type_name is {varray|varying array}(size_limit)of element_type[not null] 2016.05.11
类型
数组
索引
下标
字符
字符串
成员
变量
元素
不同
位置
多个
数据
标量
长度
项目
关联
普通
有序
相似
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
蓝思科技飞鸽互联网
互联网科技工作委员会毛军
广州百单互联网科技有限公司
科技和互联网公司
互联网电商科技
互联网科技会
互联网未来科技
互联网科技媒体
奔汉互联网科技
深圳互联网科技怎么样
隆华科技工业互联网
央行互联网金融科技公司
河南猎农互联网科技有限公司
互联网科技与大数据专业
国大互联网教育科技有限公司工作
乌苏新华互联网科技做什么的
怎样加入科技互联网
北京市互联网新科技
陕西九四连强互联网科技有限公司
美国五大互联网科技公司市值多少
青岛互联网科技公司
互联网科技排名
互联网高科技企业
互联网科技公司介绍
互联网科技创新企业排名
汉立互联网科技有限公司联系电话
创业天下互联网科技有限公司
宜昌元轩互联网科技有限公司
皮皮虾互联网科技有限公司
东营紫格互联网科技