iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >Oracle中PL/SQL复合数据类型
  • 314
分享到

Oracle中PL/SQL复合数据类型

2024-04-02 19:04:59 314人浏览 独家记忆
摘要

一、PL/sql记录:一条记录 可简化单行多列的数据的处理。当使用pl/sql记录时,应用开发人员即可以自定义记录类型和记录变量,也可以使用%rowtype属性直接定义记录变量。 1

一、PL/sql记录:一条记录

可简化单行多列的数据的处理。当使用pl/sql记录时,应用开发人员即可以自定义记录类型和记录变量,也可以使用%rowtype属性直接定义记录变量。

1、当使用自定义的pl/sql记录时,需要分别定义pl/sql记录类型和记录变量。

declare 
type emp_record_type is record(
      name emp.ename%type,salary emp.sal%type
      );
            emp_record emp_record_type;
begin
select ename,sal into emp_record from emp where empno=&no;
dbms_output.put_line('雇员名:'||emp_record.name);
dbms_output.put_line('雇员工资:'||emp_record.salary);
end;

2、使用%rowtype 属性定义记录变量

declare 
emp_record emp%rowtype;
begin 
select * into emp_record from emp where empno=&no;
dbms_output.put_line('姓名: '||emp_record.ename);
dbms_output.put_line('工资: '||emp_record.sal);
end;

二、PL/SQL表:一列数据

用于处理单列多行数据。类似于一维数组。PL/SQL表的元素个数没有限制,且下表可为负数。

语法如下:

type 表类型  is table of  类型 
 index by binary_integer; 
表变量名  表类型;

index by binary_integer 子句代表以符号整数为索引,访问表类型变量中的数据方法就是“表变量名(索引符号整数)”。可以不按顺序赋值,但必须先赋值后使用。

1、使用PL/SQL表处理单列单行数据

declare 
type ename_table_type is table of emp.ename%type
index by binary_integer;
ename_table ename_table_type;
begin
select ename into ename_table(1) from emp where empno=&eno;
dbms_output.put_line('雇员名: '||ename_table(1));
end;

2、使用PL/SQL表处理单列多行数据

declare
type ename_table_type is table of emp.ename%type
index by binary_integer;
ename_table ename_table_type;
begin 
select ename bulk collect into ename_table from emp
where deptno=&dno;
for i in 1..ename_table.count loop
dbms_output.put_line('雇员名: '||ename_table(i));
end loop;
end;

三、PL/SQL记录表:多列多行表

用于处理多行多列数据。类似于多维数组。

定义记录表类型的语法如下:

TYPE table_name IS TABLE OF element_type [NOT NULL] 
INDEX BY [BINARY_INTEGER | PLS_INTEGER | VARRAY2];

记录表中的方法:

  • EXISTS(n):如果集合的第n个成员存在,则返回true
  • COUNT:返回已经分配了存储空间即赋值了的成员数量
  • FIRST:返回成员的最低下标值
  • LAST:返回成员的最高下标值
  • PRioR(n):返回下标为n的成员的前一个成员的下标。如果没有则返回NULL
  • NEXT(N):返回下标为n的成员的后一个成员的下标。如果没有则返回NULL
  • TRIM:删除末尾一个成员
  • TRIM(n) :删除末尾n个成员
  • DELETE:删除所有成员
  • DELETE(n) :删除第n个成员
  • DELETE(m, n) :删除从n到m的成员
  • EXTEND:添加一个null成员
  • EXTEND(n):添加n个null成员
  • EXTEND(n,i):添加n个成员,其值与第i个成员相同
  • LIMIT:返回在varray类型变量中出现的最高下标值

例1:

declare 
type emp_table_type is table of emp%rowtype
index by binary_integer;
emp_table emp_table_type;
begin
select * bulk collect into emp_table from emp where deptno=&dno;
for i in 1..emp_table.count loop
dbms_output.put_line('雇员名: '||emp_table(i).ename||',工资: '||emp_table(i).sal);
end loop;
end;

按一维数组使用表:

DECLARE
--定义记录表数据类型
   TYPE reg_table_type IS TABLE OF varchar2(25)
   INDEX BY BINARY_INTEGER;
--声明记录表数据类型的变量
   v_reg_table REG_TABLE_TYPE;
    
BEGIN
   v_reg_table(1) := 'Europe';
   v_reg_table(2) := 'Americas';
   v_reg_table(3) := 'Asia';
   v_reg_table(4) := 'Middle East and Africa';
   v_reg_table(5) := 'NULL';
 
   DBMS_OUTPUT.PUT_LINE('地区名称:'||v_reg_table (1)||'、'       ||v_reg_table (2)||'、'      ||v_reg_table (3)||'、'      ||v_reg_table (4));
   DBMS_OUTPUT.PUT_LINE('第5个成员的值:'||v_reg_table(5));
END;

四、varry数据类型:数组

具有相同数据类型的一组成员的集合,每个成员都有一个唯一的下标。

定义VARRAY数据类型的语法如下:

TYPE VARRAY_NAME IS VARRAY(SIZE) OF ELEMENT_TYPE [NOT NULL];

VARRAY的使用举例:

DECLARE
--定义一个最多保存5个VARCHAR(25)数据类型成员的VARRAY数据类型
   TYPE reg_varray_type IS VARRAY(5) OF VARCHAR(25);
--声明一个该VARRAY数据类型的变量
   v_reg_varray REG_VARRAY_TYPE;

BEGIN
--用构造函数语法赋予初值
   v_reg_varray := reg_varray_type
         ('中国', '美国', '英国', '日本', '法国');

   DBMS_OUTPUT.PUT_LINE('地区名称:'||v_reg_varray(1)||'、'
                                    ||v_reg_varray(2)||'、'
                                    ||v_reg_varray(3)||'、'
                                    ||v_reg_varray(4));
   DBMS_OUTPUT.PUT_LINE('赋予初值NULL的第5个成员的值:'||v_reg_varray(5));
--用构造函数语法赋予初值后就可以这样对成员赋值
   v_reg_varray(5) := '法国';
   DBMS_OUTPUT.PUT_LINE('第5个成员的值:'||v_reg_varray(5));
END;

到此这篇关于oracle中PL/SQL复合数据类型的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: Oracle中PL/SQL复合数据类型

本文链接: https://www.lsjlt.com/news/147976.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • Oracle中PL/SQL复合数据类型
    一、PL/SQL记录:一条记录 可简化单行多列的数据的处理。当使用pl/sql记录时,应用开发人员即可以自定义记录类型和记录变量,也可以使用%rowtype属性直接定义记录变量。 1...
    99+
    2022-11-13
  • oracle中的复合数据类型
    1)显示定义记录类型;  declare  --显示定义一个record类型myrec     type myrec is RECORD ...
    99+
    2022-10-18
  • Oracle之PL/SQL编程_数据类型与定义变量和常量
    -----------------------------------基本数据类型-----------------------------------1.数值类型NUMBER(P,S)参数 P 表示精度,...
    99+
    2022-10-18
  • Java中的复合数据类型
    目录1、Java字符串2、Java中的包装类3、Java容器ArrayListHashSetHashMap4、工具类StackQueue1、Java字符串 在 Java 中字符串被作...
    99+
    2022-11-12
  • Java中复合数据类型怎么用
    这篇文章主要为大家展示了“Java中复合数据类型怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java中复合数据类型怎么用”这篇文章吧。1、Java字符串在 Java 中字符串被作为 St...
    99+
    2023-06-25
  • java复合数据类型有哪些
    java中的复合数据类型有:1.Array,数组;2.Object,所有类的父类;java中的复合数据类型有以下两种Arrayjava中Array是指数组,数组元素必须具有相同的数据类型,且数组元素的类型是唯一的,一个数组只能存储一种数据类...
    99+
    2022-10-12
  • javascript复合数据类型有哪些
    javascript中的复合数据类型有:1.Object,对象;2.Array,数组;3.Function,函数;javascript中的复合数据类型有以下几种Objectjavascript中Object是指对象,对象由花括号分隔,且对象...
    99+
    2022-10-07
  • 10.PL_SQL——PL_SQL中的复合数据类型之RECORDS
    一、记录和集合概述         目前为止所介绍的变量的数据类型都属于scalar,即标量,如×××,字符串,日期等等。任何...
    99+
    2022-10-18
  • PHP中array复合数据类型如何使用
    PHP中array复合数据类型如何使用,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。(1), array(数组) :PHP 中的数组实际上是把一个优化过的有序图类型当成数组来使...
    99+
    2023-06-17
  • 【数据类型】C#和Sql Server、Mysql、Oracle等常见数据库的数据类型对应关系
    🏆🏆这是小5写的第二篇城市领跑者文章,一起为所在城市领跑助力吧! 🏆🏆在实际项目中,不管是用C#后端编程语言也好,还是Java后端编...
    99+
    2023-09-01
    数据库 c# mssql mysql oracle
  • javascript的复合数据类型有哪些呢
    本篇文章给大家分享的是有关javascript的复合数据类型有哪些呢,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。javascript复合数据...
    99+
    2022-10-19
  • 你需要知道的 Go 数据类型:从基本类型到复合类型
    Go 语言是一门静态类型语言,与其他语言相比,它的类型系统非常简洁和直观。在本文中,我们将介绍 Go 语言中的数据类型,包括基本类型和复合类型,并提供相应的演示代码。 一、基本类型 Go 语言中的基本类型包括 bool、string、int...
    99+
    2023-09-03
    数据类型 npm ide
  • SQL Server中的数据类型详解
    目录哪些对象需要数据类型一、 整数数据类型1、bit2、tinyint3、smallint4、int (integer)5、bigint二、 浮点数据类型1、real: 近似数值型2...
    99+
    2022-11-13
  • Apache Cassandra 中的集合数据类型
    Apache Cassandra 中的集合数据类型包括:1. 列表(List):有序的元素集合,可以包含重复的元素。2. 集合(Se...
    99+
    2023-10-12
    Apache
  • SQL Server中的数据类型有哪些
    这篇文章主要介绍了SQL Server中的数据类型有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SQL Server中的数据类型有哪些文章都会有所收获,下面我们一起来看看吧。T-SQL...
    99+
    2023-06-30
  • SQL Server中的XML数据类型详解
    目录一、创建测试数据,指定字段数据类型为XML1、创建表2、插入测试数据3、插入XML文件数据4、创建索引二、查询XML数据1、query(XPath条件):返回xml 类型的节点内...
    99+
    2022-11-13
  • oracle中的数据类型和java中的数据类型的对应关系
    oracle中的数据类型和java中的数据类型的对应关系 oracle 中Number 分为两种 1.Number 2.Number(10,2)第一种对应的是java中的整形 int l...
    99+
    2023-09-11
    java oracle 数据库
  • oracle中哪些基本数据类型
    本篇文章给大家分享的是有关oracle中哪些基本数据类型,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Char:定长字符串,如果字符没有定义的...
    99+
    2022-10-18
  • SQL Server中如何实现T-SQL数据类型转换
    这篇文章主要为大家展示了“SQL Server中如何实现T-SQL数据类型转换”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“SQL Server中如何实现T-S...
    99+
    2022-10-18
  • 如何实现PL/SQL中编写Oracle数据库分页的存储过程
    这篇文章主要为大家展示了“如何实现PL/SQL中编写Oracle数据库分页的存储过程”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何实现PL/SQL中编写Or...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作