PL/SQL 记录 Record 简介
记录类型是表中当行数据结构的一个镜像。每个记录只存储一行数据,记录包含的是字段,而不是列。
1.用%rowtype属性隐式定义记录类型
declare
individual individuals%rowtype --记录变量individual与individuals表的结构构成镜像,拥有表的所有字段
begin
individual.individual_id:=1; --对变量的各个字段初始化
individual_id.first_name:='Jone';
individual_id.last_name:='Steve'; insert
into individuals --将字段插入到individuals表中
vaules
(individual.individual_id,
individual_id.first_name,
individual_id.last_name); commit;
end;
/
2.显式的将记录定义为PL/SQL记录类型
declare
type individual_record is record --显shi的定义记录类型 individual_record
(individual_id integer,
first_name varchar(30 char),
last_name varchar(30 char)
);
begin
individual individual_record; --定义 individual_record的一个变量 individual
individual.individual_id:=1; --对变量的各个字段初始化
individual_id.first_name:='Jone';
individual_id.last_name:='Steve'; insert into
individuals --将字段插入到individuals表中
vaules
(individual.individual_id,
individual_id.first_name,
individual_id.last_name);
commit
end;
/
3.显式的将记录类型定义为对象类型
--create a database object type
create or replace type individual_record as object --对象类型头
(
individual_id interger,
first_name varchar(30 char),
last_name varchar(30 char), constructor function individual_record
(
individual_id interger,
first_name varchar,
last_name varchar
)
return self as result
)
instantiable not final;
/ --crate a database object body --对象主体
create or replace type body individual_record as
constructor function individual_record
(
individual_id interger,
first_name varchar,
last_name varchar
)
return self as result is --构造函数实现
begin
self.individual_id:=individual_id;
self.first_name:=first_name;
selg.last_name:=last_name;
return;
end;
end;
/ declare
individual individual_record; --用对象类型定义individual记录变量
begin
individual:=
individual(1,'Jone','Steve'); --调用构造函数初始化记录变量 insert into
individuals --将字段插入到individuals表中
vaules
(individual.individual_id,
individual_id.first_name,
individual_id.last_name); commit;
end;
/
PL/SQL 记录 Record 简介的更多相关文章
- Oracle pl/sql 记录、表类型
一.PL/SQL记录 定义: TYPE <类型名> IS RECORD <列名1 类型1,列名2 类型2,...列名n 类型n,> [NOT NULL] <列的类型> ...
- PL/SQL 记录集合IS TABLE OF的使用
在PL/SQL代码块中使用select into 赋值的话,有可能返回的是一个结果集.此时,如果使用基本类型或自定义的记录类型,将会报错. 因此,需要定义一个变量,是某种类型的集合.下面以一个基于表的 ...
- PL/SQL 基础知识简介
1.PL/SQL代码块 PL/SQL 代码块是指令的集合,支持所有的DML,NDS,DBMS_SQL,DDL. :DML 是数据操纵语言(Data Manipulation Language)包括,I ...
- 20181017 PL/SQL 记录
1. 配置DB 链接文件,帮助中找到tnsnames.ora文件路径,进行注册数据库信息,登陆即可. 这只是个客户端,具体服务器段数据库情况不清楚. 2.写法区别PL/SQL 和SQL 变量定义 赋值 ...
- pl/sql中record和%rowtype整理
1. 创建stu表,如下: create table stu(s1 number, s2 number); 2. 定义多维数组, 能用来接受多条返回数据 方式一: type type_name i ...
- Oracle PL/SQL随堂笔记总结
1.pl/sql编程 2.存储过程 3.函数 4.触发器 5.包 6.pl/sql基础 -定义并使用变量 7.pl/sql的进阶 8.oracle的视图 1.pl/sql编程 1.理解oracle的p ...
- Oracle PL/SQL编程之变量
注: 以下测试案例所用的表均来自与scott方案,使用前,请确保该用户解锁. 1.简介 和大多数编程语言一样,在编写PL/SQL程序时,可以定义常量和变量,在pl/sql程序中包括有: a.标量类型( ...
- 每周一书《Oracle 12 c PL(SQL)程序设计终极指南》
本周为大家送出的书是<Oracle 12 c PL(SQL)程序设计终极指南>,此书由机械工业出版社出版, 孙风栋,王澜,郭晓惠 著. 内容简介: <Oracle 12c PL/SQ ...
- Oracle之PL/SQL学习笔记
自己在学习Oracle是做的笔记及实验代码记录,内容挺全的,也挺详细,发篇博文分享给需要的朋友,共有1w多字的学习笔记吧.是以前做的,一直在压箱底,今天拿出来整理了一下,给大家分享,有不足之处还望大家 ...
随机推荐
- 解决Bug:Size of a request header field exceeds server limit
用了cms 发现这玩意真不好,老是有各种奇芭的问题跳出来 有时浏览网页时会出现 Bad Request Your browser sent a request that this server cou ...
- iOS-MD5加密、SHA1加密
1.MD5加密 ///MD5加密************************************** + (NSString *)md5:(NSString *)inputString{ co ...
- Kafka Producer Consumer
Producer API org.apache.kafka.clients.producer.KafkaProducer props.put("bootstrap.servers" ...
- dubbo中Listener的实现
这里继续dubbo的源码旅程,在过程中学习它的设计和技巧,看优秀的代码,我想对我们日程编码必然有帮助的.而那些开源的代码正是千锤百炼的东西,希望和各位共勉. 拿ProtocolListenerWrap ...
- Java对正则表达式的支持(二)
正则表达式的主要用途: a.在目标字符串中找出匹配正则表达式的部分 b.校验目标字符串是否符合正则表达式,例如校验邮箱地址 c.在目标字符串中替换符合正则表达式的部分为其他的字符串 Scanner类是 ...
- 使用Scanner获取键盘输入
使用Scanner类可以很方便地便获取用户的键盘输入,Scanner是一个基于正则表达式的文本扫描器,它可以从文件.输入流 .字符串中解析出基本类型值和字符串值.Scanner类提供了多个构造器,不同 ...
- win8 -telnet安装
控制面板->程序-> 启动或关闭windows功能->选择telnet服务器和telnet客户端->确定 为了安全起见,我们可以设置为手动器用telnet,右键计算机-> ...
- WPF项目学习.二
WPF用MVVM的解决记录 版权声明:本文为博主初学经验,未经博主允许不得转载. 一.前言 记录在学习与制作WPF过程中遇到的解决方案. 焦点的控制,键盘事件触发,输入框的数字限制,异步处理,隐藏状 ...
- linux下利用shell脚本实现添加crontab任务
本来直接用crontab -e 就可以打开vim,输入要执行的任务保存退出就可以添加任务直接启动运行了.但是今天组长说能不能写个shell不用打开vi就能添加到crontab的. 最先想到的是怎么在s ...
- CentOS利用Nginx+Docker部署.netcore应用
安装docker 官方文档https://docs.docker.com/engine/installation/linux/docker-ce/centos/ [root@sn ~]# yum re ...