oracle 编写记录

记录类型是把逻辑相关的数据作为一个单元存储起来,它必须包括至少一个标量型或RECORD 数据类型的成员,称作PL/SQL RECORD 的域(FIELD),其作用是存放互不相同但逻辑相关的信息。

 

定义记录类型语法如下:

 

TYPE record_type IS RECORD(

   Field1 type1  [NOT NULL]  [:= exp1 ],

   Field2 type2  [NOT NULL]  [:= exp2 ],

   . . .   . . .

   Fieldn typen  [NOT NULL]  [:= expn ] ) ;

 

4

 

DECLARE

   TYPE test_rec IS RECORD(

         Code VARCHAR2(10),

         Name VARCHAR2(30) NOT NULL :=’a book’);

   V_book test_rec;

BEGIN

   V_book.code :=’123’;

   V_book.name :=’C++ Programming’;

   DBMS_OUTPUT.PUT_LINE(v_book.code||v_book.name);

END;

 

    可以用 SELECT语句对记录变量进行赋值,只要保证记录字段与查询结果列表中的字段相配即可。

 

 使用%TYPE

定义一个变量,其数据类型与已经定义的某个数据变量的类型相同,或者与数据库表的某个列的数据类型相同,这时可以使用%TYPE

使用%TYPE特性的优点在于:

l         所引用的数据库列的数据类型可以不必知道;

l         所引用的数据库列的数据类型可以实时改变。

 

5

DECLARE

   -- %TYPE 类型定义与表相配的字段

   TYPE t_Record IS RECORD(

          T_no emp.empno%TYPE,

          T_name emp.ename%TYPE,

          T_sal emp.sal%TYPE );

   -- 声明接收数据的变量

   v_emp t_Record;

BEGIN

   SELECT empno, ename, sal INTO v_emp FROM emp WHERE empno=7788;

   DBMS_OUTPUT.PUT_LINE

(TO_CHAR(v_emp.t_no)||v_emp.t_name||TO_CHAR(v_emp.t_sal));

END;

 

6

DECLARE

   v_empno emp.empno%TYPE :=&no;

   Type r_record is record (

        v_name   emp.ename%TYPE,

        v_sal     emp.sal%TYPE,

        v_date    emp.hiredate%TYPE);

   Rec r_record;

BEGIN

   SELECT ename, sal, hiredate INTO Rec FROM emp WHERE empno=v_empno;

   DBMS_OUTPUT.PUT_LINE(Rec.v_name||'---'||Rec.v_sal||'--'||Rec.v_date);

END;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值