千家信息网

PL/SQL复合变量

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,复合变量可以将不同数据类型的多个值存储在一个单元中。由于复合类型可以由用户自己根据需要定义其结构,所以复合数据类型也称为自定义数据类型。在PL/SQL中,使用%TYPE声明的变量类型与数据表中字段的数
千家信息网最后更新 2026年11月02日PL/SQL复合变量

复合变量可以将不同数据类型的多个值存储在一个单元中。由于复合类型可以由用户自己根据需要定义其结构,所以复合数据类型也称为自定义数据类型。


在PL/SQL中,使用%TYPE声明的变量类型与数据表中字段的数据类型相同,当数据表中字段数据类型修改后,PL/SQL程序中相应变量的类型也自动随之改变。

如EMP表中有一个ENAME字段,其数据类型为VARCHAR2(30),声明变量v_name用来存放ENAME字段的数据,声明如下:

v_name emp.ename%TYPE;

则变量v_name的数据类型始终与ENAME字段的类型保持一致,即VARCHAR2(30),当ENAME字段的数据类型改为VARCHAR2(50)时,v_name变量的数据类型也自动修改为VARCHAR2(50)。

DECLARE

v_name emp.ename%TYPE;

BEGIN

SELECT ename INTO v_name FROM emp

WHERE empno=7788;

DBMS_OUTPUT.PUT_LINE(v_name);

END;

/


PL/SQL提供了%ROWTYPE来存储一行数据。例如,要定义DEPT表中的一行记录,并且数据类型和每列类型一致可以使用%ROWTYPE,声明如下:

dept_record dept%ROWTYPE;

下面使用%ROWTYPE类型的变量存储DEPT表中的一行数据,示例如下:

DECLARE

v_dept dept%ROWTYPE;

BEGIN

SELECT * INTO v_dept FROM dept

WHERE deptno=30;

DBMS_OUTPUT.PUT_LINE(v_dept.deptno);

DBMS_OUTPUT.PUT_LINE(v_dept.dname);

DBMS_OUTPUT.PUT_LINE(v_dept.loc);

END;

/


记录类型与数据库中的行结构非常类似,使用记录类型定义的变量可以存储由多个列值组成的一行数据。当使用记录类型的变量时,首先需要定义记录的结构,然后定义记录类型的变量。定义记录类型时必须使用TYPE语句指出将在记录中包含的字段及其数据类型,语法如下:

DECLARE

TYPE emp_record_type IS RECORD(

name emp.ename%TYPE,

salary emp.sal%TYPE,

dno emp.deptno%TYPE); --自定义变量类型emp_record_type

emp_record emp_record_type; --定义emp_record_type类型的变量emp_record

BEGIN

SELECT ename,sal,deptno INTO emp_record

FROM emp WHERE empno=7788; --查询ename,sal,deptno赋值给变量emp_record

DBMS_OUTPUT.PUT_LINE(emp_record.name);

END;

/

--------------------------------------------------

DECLARE

TYPE emp_record_type IS RECORD(

name emp.ename%TYPE,

salary emp.sal%TYPE,

dno emp.deptno%TYPE); --自定义变量类型emp_record_type

emp_record emp_record_type; --定义emp_record_type类型的变量emp_record

BEGIN

SELECT ename,sal INTO emp_record.name,epm_record.salary

FROM emp WHERE empno=7788; --查询ename,sal,deptno赋值给变量emp_record

DBMS_OUTPUT.PUT_LINE(emp_record.name);

END;

/


类型 数据 变量 字段 一行 存储 结构 一致 多个 数据表 查询 不同 相同 单元 数据库 用户 示例 程序 语句 语法 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技图片 盈实互联网科技 互联网络科技有限公司 平安科技 互联网 互联网金融科技平台 大白互联网科技 蓝色互联网科技 玖二柒互联网科技公司待遇 隆华科技工业互联网 宜昌元轩互联网科技有限公司 链环科技传统企业怎么转型互联网 青海科技产业互联网发展 群盈汇互联网科技有限公司 图游互联网科技 上海同邻互联网科技有限公司规模 世界互联网科技成果奖 兰石爱特工业互联网科技分公司 好易买互联网科技 河南商务圈互联网科技有限公司 中国主要互联网科技公司 美国互联网科技 玖二柒互联网科技公司待遇 上海宁丞科技互联网 互联网科技公司营业执照怎么办理 国大互联网教育科技有限公司薪资 互联网风格科技公司名称 新氧科技和美国互联网有关系吗 宁波跨境商互联网科技有限公司 广西科技产业互联网是什么 北京瑞云互联网科技有限公司
0