oracle 复合变量 记录

/**********************************************
	复合变量:记录
	记录是由几个相关值构成的复合变量,常用于支持SELECT语句的返回值。
	使用记录可以将一行数据看成一个单元进行处理,而不必将每一列单独处理。
	
	记录的声明
	TYPE type_name IS RECORD
	(
		variable_name datatype,
		...
	);
	
	Real_name type_name
	
	
	
**********************************************/

DECLARE
	TYPE myrecord IS RECORD
	(
		id varchar2(10),
		name varchar2(10)
	);
	
	real_record myrecord;
	
	BEGIN
		SELECT EID,ENAME INTO real_record FROM e WHERE eid='001';
		
		DBMS_OUTPUT.PUT_LINE(real_record.id||','||real_record.name);
	END;
	/


/********************************************************
	创建 emp 表
********************************************************/
CREATE TABLE emp
(
	EID varchar2(10),
	ENAME varchar2(10),
	SEX varchar2(10),
	ID varchar2(10)
);

/********************************************************
	完全匹配表的字段的类型与长度
********************************************************/
DECLARE
	TYPE myrecord IS RECORD
	(
		id varchar2(10),
		name e.ENAME%TYPE -- 完全匹配表的字段的类型与长度
	);
	
	real_record myrecord;
	
	BEGIN
		SELECT EID,ENAME INTO real_record FROM e WHERE eid='001';
		
		DBMS_OUTPUT.PUT_LINE(real_record.id||','||real_record.name);
	END;
	/

/********************************************************
	建立一个与表完全匹配的RECORD
********************************************************/
DECLARE
	
	real_record e%ROWTYPE; -- 建立
	
	
	BEGIN
		SELECT * INTO real_record FROM e WHERE eid='001';
		
		DBMS_OUTPUT.PUT_LINE(real_record.eid||','||real_record.ename);
	END;
	/



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值