oracle学习之路(二)------数组类型/记录类型的使用

Oracle记录类型介绍

RECORD:用户自定义数据类型,由单行多列的标量构成的复合数据类型,它将一个或多个标量封装成一个对象进行操作记录不可以总体拿来比较也不可以整体判断为空,可以整体拿来赋值,组成类似于多维数组,

将一个或多个标量封装成一个对象进行操作。是一种临时复合对象类型。

记录的创建和赋值

  • 定义记录类型语法如下:
TYPE record_name IS RECORD(
   v1 data_type1  [NOT NULL]  [:= default_value ],
   v2 data_type2  [NOT NULL]  [:= default_value ],
   ......
   vn data_typen  [NOT NULL]  [:= default_value ] );
  • 一个记录类型的例子
 declare
 TYPE T_Employee_rec is RECORD --定义记录的类型
(
c_FNumber T_Employee.FNumber%TYPE, --使用%TYPE获取此列的数据类型
c_FName VARCHAR(20),
c_FAge int,
c_FSalary NUMERIC(10,2)
);

T_Employee_rec1  T_Employee_rec;--声明记录类型变量
begin
       ---给记录类型变量赋值
 select FNumber,FName,FAge,FSalary into T_Employee_rec1
 from T_Employee
 where FNumber=‘SALES002‘;
 dbms_output.put_line(‘FNumber=‘||T_Employee_rec1.c_FNumber);
 dbms_output.put_line(‘FName=‘||T_Employee_rec1.c_FName);
 dbms_output.put_line(‘FAge=‘|| to_char(T_Employee_rec1.c_FAge));
 dbms_output.put_line(‘FSalary=‘||to_char(T_Employee_rec1.c_FSalary));
end;

注意:一个记录类型的变量只能保存从数据库中查询出的一行记录,若查询出了多行记录,就会出现错误。

oracle数组类型简介

数据是具有相同数据类型的一组成员的集合。每个成员都有一个唯一的下标,它取决于成员在数组中的位置。在PL/SQL中,数组数据类型是VARRAY。

  • 定义VARRY数据类型语法如下
TYPE varray_name IS VARRAY(size) OF element_type [NOT NULL];

varray_name是VARRAY数据类型的名称,size是下整数,表示可容纳的成员的最大数量,每个成员的数据类型是element_type。默认成员可以取空值,否则需要使用NOT NULL加以限制。对于VARRAY数据类型来说,必须经过三个步骤,分别是:定义、声明、初始化

  • 数组类型的小例子
 -- Created on 2015/6/11 by LYH
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(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(‘赋值为null的第5个成员的值:‘||v_reg_varray(5));
end;
时间: 2024-07-29 19:00:22

oracle学习之路(二)------数组类型/记录类型的使用的相关文章

【我的Oracle学习笔记(二)】----- select语句补充

一.多表查询 多表查询是指从多个有关联的表中查询数据,其语法与单表查询类似.一般来说,多表查询的表要用连接联系起来,如果没连接,则查询结果是这多个查询表的笛卡尔积(注释1). 模拟查询雇员姓名和所在部门名称: select [雇员姓名],[部门名称] from [雇员表] a,scott,[部门表] b where a.[部门编号]=b.[部门编号]; 上例中,为每一个查询表指定了别名,便于SQL语句的书写. 模拟查询在”sales“部门工作的雇员其雇员姓名 select [雇员姓名] from

java痛苦学习之路[二] ---JSONObject使用

一.Strut2必须引入的包 要使程序可以运行必须引入JSON-lib包,JSON-lib包同时依赖于以下的JAR包: 1.commons-lang.jar 2.commons-beanutils.jar 3.commons-collections.jar 4.commons-logging.jar 5.ezmorph.jar 6.json-lib-2.2.2-jdk15.jar 当然除了这些包,strut2基础包也得引入 struts2-core-2.1.6.jar freemarker-2.

oracle学习笔记(二)

设置归档模式(mount状态) ALTER database ARCHIVELOG; //关闭数据库 shutdown immediate //启动数据库到mount状态 startup mount alter database archivelog; //查看归档状态 archive log list; SQL> archive log list; 数据库日志模式 存档模式 自动存档 启用 存档终点 USE_DB_RECOVERY_FILE_DEST 最早的联机日志序列 1 下一个存档日志序列

Oracle学习笔记十二 子程序(存储过程、自定函数)和程序包

子程序 子程序:命名的 PL/SQL 块,编译并存储在数据库中. 子程序的各个部分: 1.声明部分 2.可执行部分 3.异常处理部分(可选) 子程序的分类: 1.过程 - 执行某些操作 2.函数 - 执行操作并返回值 子程序的优点: 模块化 将程序分解为逻辑模块 可重用性 可以被任意数目的程序调用 可维护性 简化维护操作 安全性 通过设置权限,使数据更安全 存储过程 过程是用于完成特定任务的子程序. 例如: 一个购票过程可以分为很多个子过程,分别完成. 创建存储过程 创建过程的语法: CREAT

PL/SQL基本结构---PLSQL复合类型---记录类型record

记录类型record  record类型最常用,声明的时候可以加not null,但必须给初始值,如果record类型一致可以相互赋值,如果类型不同,里面的字段恰好相同,不能互相赋值.引用记录型变量的方法是“记录变量名.基本类型变量名”.    ―――――――――――――――――――――――――――――――――――――    declare         type t_first is record(              id number(3),              name v

学习之路二:关于集合和数组内在联系的深入了解

前一阵子有幸看到了abatei大牛的泛型系列文章,学习了两周左右,大概学会了50%左右,说实话挺难的,有兴趣的朋友可以去看看! http://www.cnblogs.com/abatei/archive/2008/02/20/1075760.html ,讲的真不错,很赞的文章! 在此记录下我的学习感受,欢迎拍砖! 文章主要讲的是关于List<T>和数组之间的联系! 1.集合和数组 数组:大家都知道数组必须指定大小,而且大小一但指定就不能更改了,也就是说数组不能动态的增加容量,那么对于一些需要动

IOS学习之路——Swift语言(2)——基本类型与函数

一.可选型 为什么会有可选型?当一个变量被希望表示为某一个指定的类型值,同时也被希望在某种情况下表示为空.那么就需要一个可选型.Optional 可选型的语法是在Swift的基本类型后面添加 ? 符号,如 Int? String?  可选型如果取值为空,那么表示为 nil 如果想定义一个可选型的变量,那么需要显示的声明为可选型.可选型变量打印时显示Optional 可选型变量需要进行解包(unwrap)才能与其他的变量进行运算. 解包: 1. 强制解包,使用 ! 关键字,强制解包是具有风险的,当

Lua 学习笔记(二)语法、类型、值

首先Lua执行的每一段代码都称之为“程序块”,一个程序块也就是一连串的语句或命令,例如一个源码文件或一行代码.Lua语句之间并不需要分隔符,如代码中的换行就不起任何作用,当然为了养成编码习惯当两条或者多条语句并列时最好使用分隔符进行分隔,如以下的四种都是合法的. x = 1; y = 2 x = 1 y = 2 x = 1; y = 2; x = 1 y = 2 一.标识符规范 Lua中的标识符可以是由任意字母.数字.下划线组成的字符串,但不能以数字开头.还有,应避免使用以一个下划线并跟着一个或

IOS学习之路——Swift语言(1)——基本类型、运算符与逻辑控制语句

一.变量 变量标识符必须以字符包括Unicode编码字符.美元字符$.下划线_开头,不能以数字开头,不能包含空格.更不能使用关键字命名. swift中变量的声明使用var关键字,常量的声明使用let关键字. 1 var name="Swift"; 2 var version=2.2; 3 let company:String="Apple"; 变量的声明: 1. 可以使用,逗号分割变量来同时声明多个变量 2. 可以使用:类型来同时指明多个变量的类型 在Mac中可以使