8.1.2定义记录类型
来源:互联网 发布:雨伞哪个牌子好 知乎 编辑:程序博客网 时间:2024/06/16 21:28
记录只是一个用来组织其他标量类型的容器,本身是没有值的,它里面的每一个变量拥有自己的值。为了定义记录类型,必须要定义一个记录所包含的标量类型变量的类型,然后声明这种类型的变量,声明记录类型比标量类型多了一个步骤。
TYPE type_name IS RECORD
(
field_declaration
);
声明记录类型并赋初始值
为记录赋值并读取记录内容
DECLARE
TYPE emp_rec IS RECORD(
empname VARCHAR2(12) := '李斯特',
empno NUMBER NOT NULL DEFAULT 7369,
hiredate DATE DEFAULT SYSDATE,
sal NUMBER(7,2)
);
--声明emp_rec类型的变量
empinfo emp_rec;
BEGIN
--下面的语句为empinfo记录赋值
empinfo.empname := '史密斯';
empinfo.empno := 7010;
empinfo.hiredate:=TO_DATE('1982-01-01','YYYY-MM-DD');
empinfo.sal :=5000;
--下面的语句输出empinfo记录值
DBMS_OUTPUT.put_line('员工名称:'||empinfo.empname);
DBMS_OUTPUT.put_line('员工编号:'||empinfo.empno);
END;
除了通过为单个记录逐个地赋值之外,还可以为整个记录进行一次性赋值,最常见的方式是将一个记录类型赋予
另一个记录类型的值,
DECLARE
--定义记录类型
TYPE emp_rec IS RECORD(
empno NUMBER,
ename VARCHAR2(20)
);
--定义与emp_rec具有相同成员的记录类型
TYPE emp_rec_dept IS RECORD(
empno NUMBER,
ename VARCHAR2(20)
);
--声明记录类型的变量
emp_info1 emp_rec;
emp_info2 emp_rec;
emp_info3 emp_rec_dept;
--定义一个内嵌过程用来输出记录信息
PROCEDURE printrec(empinfo emp_rec)
AS
BEGIN
DBMS_OUTPUT.PUT_LINE('员工编号:'||empinfo.empno);
DBMS_OUTPUT.PUT_LINE('员工名称:'||empinfo.ename);
END;
BEGIN
emp_info1.empno := 7890;
emp_info1.ename := '张大千';
DBMS_OUTPUT.PUT_LINE('emp_info1的信息如下:');
printrec(emp_info1);
emp_info2 := emp_info1;
DBMS_OUTPUT.PUT_LINE('emp_info2的信息如下:');
printrec(emp_info2);
END
%ROWTYPE定义的记录赋给标准记录类型
DECLARE
--定义一个与dept表具有相同的记录
TYPE dept_rec IS RECORD(
deptno NUMBER(10),
dname VARCHAR2(30),
loc VARCHAR2(30)
);
--定义基于dept表的记录类型
dep_rec_db dept%ROWTYPE;
dept_info dept_rec;
BEGIN
--使用SELECT语句为记录类型赋值
SELECT *
INTO dept_rec_db
FROM dept
WHERE deptno = 20;
--将%ROWTYPE定义的记录赋给标准记录变量
dept_info := dept_rec_db;
END;
使用SELECT语句为记录赋值
DECLARE
TYPE emp_rec IS RECORD(
empno NUMBER(10),
ename VARCHAR2(30),
job VARCHAR2(30)
);
--声明记录类型的变量
emp_info emp_rec;
BEGIN
--为记录类型赋值
SELECT empno,
ename,
job
INTO emp_info
FROM emp
WHERE empno = 7369;
--输出记录类型的值
DBMS_OUTPUT.PUT_LINE('员工编号:'
|| emp_info.empno
|| CHR(13)
|| '员工名称:'
|| emp_info.ename
)
END;
- 8.1.2定义记录类型
- 声明一个记录类型,定义记录类型变量,保存员工信息
- PL/SQL:记录类型 (定义,使用,注意点)
- 2 强类型定义语言和弱类型定义语言
- 类型定义
- 记录类型
- 类模块中定义的变量能否同自定义类型那样作为文件记录存取?
- 《Effective java》读书记录-第19条-接口只用于定义类型
- DayDayUP_Python自学记录[2]_Python变量类型
- Linux常见定义记录
- 【PLSQL】 定义record记录
- 一些定义的记录
- Block定义,记录一下
- 类型的定义
- windows中类型定义
- 用typedef定义类型
- 文档类型定义DTD
- 网页类型定义DOCTYPE
- Java HTTP协议
- 超简单搭建功能全面易用的svn服务端 VisualSVN Server+ApachePasswd程序包
- SQL Server表分区操作详解
- css中em px 区别你真的了解吗
- Primer Plus c++ #ifndef说明
- 8.1.2定义记录类型
- 扫描识别控件Dynamic .NET TWAIN扫描和保存图像
- 1.如果你用一个五公升和一个三公升的碗去量水。你怎样量出准确的四公升水?
- 套接字socket 的地址族和类型、工作原理、创建过程
- 06-windowsPhone常用控件----按钮累加器和超链接按钮
- 链表的实现
- oracle proc
- myeclipse 8.5 破解
- ORA-01102的解决