PL/SQL 记录 Record 简介

本文详细介绍了SQL中使用记录类型(Rowtype)隐式或显式地操作数据库表数据的方法,包括如何通过记录类型定义变量并进行数据插入。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

记录类型是表中当行数据结构的一个镜像。每个记录只存储一行数据,记录包含的是字段,而不是列。
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;
/

 

转载于:https://www.cnblogs.com/qianwen/p/3770442.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值