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;
oracle学习之路(二)------数组类型/记录类型的使用的更多相关文章
- oracle学习之路(四) ---------PL/SQL 表,二维数组(TABLE)
LOB类型 ORACLE提供了LOB (Large OBject)类型.用于存储大的数据对象的类型.ORACLE眼下主要支持BFILE, BLOB, CLOB 及 NCLOB 类型. NCLOB 存储 ...
- Redis——学习之路二(初识redis服务器命令)
上一章我们已经知道了如果启动redis服务器,现在我们来学习一下,以及如何用客户端连接服务器.接下来我们来学习一下查看操作服务器的命令. 服务器命令: 1.info——当前redis服务器信息 s ...
- Oracle学习笔记十二 子程序(存储过程、自定函数)和程序包
子程序 子程序:命名的 PL/SQL 块,编译并存储在数据库中. 子程序的各个部分: 1.声明部分 2.可执行部分 3.异常处理部分(可选) 子程序的分类: 1.过程 - 执行某些操作 2.函数 ...
- python学习之路 二 :基本数据类型
本节重点 理解什么是变量? 掌握各种数据类型 理解可变类型和不可变类型 一.变量和常量 变量: 作用:存贮程序的中间结果在内存里,以备后边的程序调用 定义规范: 变量名只能是 字母.数字活下划线的任意 ...
- oracle学习笔记(二十一) 程序包
程序包 之前我们调用的dbms_output.put_line(''),dbms_output就是一个程序包 程序包创建语法 1. 声明程序包 --声明程序包中的过程,函数,自定义的类型 --程序包里 ...
- Lua 学习笔记(二)语法、类型、值
首先Lua执行的每一段代码都称之为“程序块”,一个程序块也就是一连串的语句或命令,例如一个源码文件或一行代码.Lua语句之间并不需要分隔符,如代码中的换行就不起任何作用,当然为了养成编码习惯当两条或者 ...
- Oracle 学习之路开始
今年刚毕业,从毕业到现在工作正式工作四个多月了(实习的几个月就不算了).工作之中遇到的困难不少,学到的东西也不少:但是感觉学到的东西还是不够,毕竟java水很深啊. 现在工作中并不是每天都能学到新的东 ...
- oracle学习笔记(二)表的查询
--oracle表的管理 --创建表 )); --删除表 drop table users; --创建表 ),xm ),sex ),birthday date,sal ,)); ),cnmae )); ...
- C++学习日记(二)————初始字符串类型
使用频率高,但操作复杂的数据有哪些? 做下总结: int; double;float;char;bool这些类型用的比较频繁,但并不复杂.但对于字符串来说(char数组)用的频繁但操作又复杂,只能用一 ...
随机推荐
- jasperreport 追加新报表(2)
用ireport做好模版后,如果要新加一个打印页,如果是新手,直接修改模版应该是理想情况, 可是什么数据源 feild,parameter,var,subreport ,还有路径, 真的可以让一个人疯 ...
- mescroll报错
1.Cannot read property 'insertBefore' of null:说明你的容器id未找到,应确认你的容器id名与你NEW的容器名一致:
- 学习参考《TensorFlow深度学习》高清中文版PDF+英文版PDF+源代码
我们知道,TensorFlow是比较流行的深度学习框架,除了看手册文档外,推荐大家看看<Tensorflow深度学习>,共分5方面内容:基础知识.关键模块.算法模型.内核揭秘.生态发展.前 ...
- Chrome OS 70 发布:这是安卓的私生子吗?
谷歌于28日正式宣布推出Chrome OS 70.这个最新的Chrome OS系统在一些设计上具备了更多安卓风味,为配备了触摸屏的Chromebook.平板电脑和二合一设备带来了操作界面改善. 据9t ...
- XML解析——DOM解析
XML:可扩展性标记语言,主要用来传输和存储数据,相对于HTML的各种标签规范,XML的标签可以让用户根据语义自己进行定义,适用于web传输. JSON和XML的区别: (1).XML定义 扩展标记语 ...
- 洛谷 P3913 车的攻击
P3913 车的攻击 题目描述 N \times NN×N 的国际象棋棋盘上有KK 个车,第ii个车位于第R_iRi行,第C_iCi 列.求至少被一个车攻击的格子数量. 车可以攻击所有同一行或者同 ...
- localtime死锁——多线程下fork子进程
近期測试我们自己改进的redis,发如今做rdb时,子进程会一直hang住.gdb attach上.堆栈例如以下: (gdb) bt #0 0x0000003f6d4f805e in __lll_lo ...
- jQuery07源码 (3803 , 4299) attr() prop() val() addClass()等 : 对元素属性的操作
var nodeHook, boolHook, rclass = /[\t\r\n\f]/g, rreturn = /\r/g, rfocusable = /^(?:input|select|text ...
- C++ 补课(二)
1,如果遇到派生类成员和基类成员的名称冲突的情况,程序会采用派生类成员执行相应的操作.如果需要使用基类中的同名成员,则必须在程序中使用全局分辨符“::” 虚基类 —— 派生类在继承基类时加入“virt ...
- 体验域名注册解析与SSL证书