Oracle DBA培训网-中国Oracle培训领航专家

您当前的位置:优技培训(CUUG) > oracle培训 > Oracle培训教程 >

PL/SQL教程:属性类型有哪些

来源:优技培训(CUUG)

PL/SQL教程:属性类型有哪些?当声明一个变量的值是数据库中的一行或者是数据库中某列时,可以直接使用属性类型来声明。Oracle中存在两种属性类型:%TYPE和%ROWTYPE。

ROWTYPE

引用数据库表中的一行作为数据类型,即RECORD类型(记录类型),是PL/SQL附加的数据类型。表示一条记录,就相当于C#中的一个对象。可以使用“.”来访问记录中的属性。

代码演示:

SQL> DECLARE

  2       myemp EMP%ROWTYPE;  

  3  BEGIN

  4       SELECT * INTO myemp FROM emp WHERE empno=7934;  

  5       dbms_output.put_line(myemp.ename);  

  6  END;

  7  /

MILLER

PL/SQL procedure successfully completed

代码解析:

① 声明一个myemp对象,该对象表示EMP表中的一行。

② 从EMP表中查询一条记录放入myemp对象中。

③ 访问该对象的属性可以使用“.”。

`%TYPE

引用某个变量或者数据库的列的类型作为某变量的数据类型。

代码演示:%TYPE应用

SQL> DECLARE

  2       sal emp.sal%TYPE;  

  3       mysal number(4):=3000;

  4       totalsal mysal%TYPE;  

  5  BEGIN

  6       SELECT SAL INTO sal FROM emp WHERE empno=7934;

  7       totalsal:=sal+mysal;

  8       dbms_output.put_line(totalsal);

 9  END;

 10  /

4300

PL/SQL procedure successfully completed

代码解析:

① 定义变量sal为emp表中sal列的类型。

② 定义totalsal是变量mysal的类型。

%TYPE可以引用表中的某列作的类型为变量的数据类型,也可以引用某变量的类型作为新变量的数据类型。

精华阅读