我的编程空间,编程开发者的网络收藏夹
学习永远不晚

oracle 三种复合类型变量分析

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

oracle 三种复合类型变量分析

实际项目中,经常遇到的三种复合类型变量。结合部分项目实例做个整理,具体如下:

  1. 记录类型:记录类型可以包含一个或多个成员,而每个成员的类型可以不同,成员可以是标量类型。也可以引用其他的变量类型。这种类型的特点是比较适合处理查询语句中有多个列的情况,最常用的情况就如在调用某一张表中的一行记录。

  2. 索引表类型(关联数组):索引表类型和数组相似,他利用键值查找对应的值,这里的键值同真正数组的下标不同,索引表中下标允许使用字符串。数组的长度不是固定值,可以根据需要自动增长。其中的键值是整数或是字符串,其中的值就是普通的标量类型,也可以是记录类型。(下标从1开始)

  3. 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进行代替,实现上述功能。即:
 declare
v_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 
loop
S:=0;
shenfzh:=emp.zjbh;
for i in 1..17 loop
S:=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) then
dbms_output_line('证件编号:'emp.zjbh||'错误!')
end if;
end loop;
end;
eg2.1使用字符串为键值的索引表
declare
type pro is table of number(8) index by varchar2(20);
v_pro pro;
begin
v_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,变长数组
declare
type varr is  varray(10) of varchar2(10);//定义数组长度10
v_pro varr:=varr('1','2');//初始化了两个元素(最多可以初始化10个)
begin
v_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


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

oracle 三种复合类型变量分析

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

复合类型变量在Oracle中的使用

在Oracle中,复合类型变量通常是通过使用记录类型或对象类型来创建的。记录类型是一种包含多个字段的结构,类似于结构体或元组,而对象类型则是一种用户定义的数据类型,可以包含多个属性和方法。以下是在Oracle中使用复合类型变量的一些示例:
复合类型变量在Oracle中的使用
2024-08-24

PHP中标量类型、复合类型和特殊类型的示例分析

这篇文章主要介绍了PHP中标量类型、复合类型和特殊类型的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。在PHP中,支持8种原始数据类型,其中包括四种标量类型、两种复合
2023-06-20

shell的变量分类型有哪几种

在shell中,变量分为以下几种类型:1. 字符串类型(String):用于存储文本数据。可以使用单引号或双引号包围字符串。2. 整数类型(Integer):用于存储整数数据。可以直接赋值整数给变量,不需要引号。3. 数组类型(Array)
2023-08-08

php变量中的复合类型有哪些

这篇文章主要讲解了“php变量中的复合类型有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php变量中的复合类型有哪些”吧!1、数组(array)数组可以存储多个数据,可以是任何类型;事
2023-06-20

Python变量类型使用实例分析

今天小编给大家分享一下Python变量类型使用实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。前言:变量存储在内存中的
2023-06-29

C#类型和C#变量的示例分析

这篇文章主要介绍C#类型和C#变量的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!C#类型有两种:值类型(value type)和引用类型(reference type)。值类型变量直接包括它们的数据,而引用
2023-06-17

Python中的变量和数据类型实例分析

本篇内容介绍了“Python中的变量和数据类型实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!python是一门弱数据类型的语言,变量
2023-06-29

ES6变量赋值和基本数据类型实例分析

本篇内容介绍了“ES6变量赋值和基本数据类型实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!let和constlet和const不存在
2023-07-02

JAVA,Mybatis,Oracle变量类型与字段类型不一致、分区表全扫的优化示例

这篇文章主要介绍JAVA,Mybatis,Oracle变量类型与字段类型不一致、分区表全扫的优化示例,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!开发反应[增量库存]功能慢,并反馈查询有指定分区条件,量较小;1)通过
2023-06-03

如何分析Python的数据类型、变量、字符串和格式化

这篇文章主要为大家分析了如何分析Python的数据类型、变量、字符串和格式化的相关知识点,内容详细易懂,操作细节合理,具有一定参考价值。如果感兴趣的话,不妨跟着跟随小编一起来看看,下面跟着小编一起深入学习“如何分析Python的数据类型、变
2023-06-29

云服务器的三种类型有哪些特点和优势和劣势分析

云服务器(CloudServer)是一种虚拟化技术,它将计算资源(如服务器、存储设备、软件和网络带宽)从一台物理服务器上转移到另一台,从而使用户无需自己管理和维护这些资源。云服务器主要分为以下三种类型:公有云:公有云是指由多个提供商或组织提供的云服务,这些供应商或组织在其网站、应用程序和数据中心中提供云服务。它们通常具有弹性、可靠性、可扩展性和经济性等特点,但由于数据安全等考虑,公有云不提供
2023-10-26

编程热搜

目录