暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

PL/SQL中的%ROWTYPE和%TYPE的区别是什么?

DB宝 2018-11-27
684


Q
题目 


PL/SQL中的%ROWTYPE%TYPE的区别是什么?



     

A
答案



%TYPE是定义一个变量,其数据类型与已经定义的某个数据变量的类型相同,或者与数据库表的某个列的数据类型相同,其使用示例如下所示:

DECLARE

    V_SAL NUMBER(7) ;

    V_ENAME EMP.ENAME%TYPE;

    V_HIREDATE EMP.HIREDATE%TYPE;

    

BEGIN

    SELECT SAL,ENAME,HIREDATE INTO V_SAL,V_ENAME,V_HIREDATE FROM EMP WHERE EMPNO = 7369;

    INSERT INTO EMP(EMPNO,ENAME) VALUES(1111,'LHR');

    UPDATE EMP SET SAL = 2000 WHERE EMPNO= 1010;

    DELETE EMP WHERE EMPNO = 1012;

    COMMIT;

    DBMS_OUTPUT.PUT_LINE(V_SAL || ',' || V_ENAME || ',' || V_HIREDATE);

END;

关于%ROWTYPE,需要了解以下内容:

① %ROWTYPE返回的是一个记录类型,其数据类型和数据库表的数据结构一致。

② 声明的变量对应于数据库表或视图中列的集合。

③ %ROWTYPE之前加上数据库表名。

④ 记录内字段名和数据类型与参照表或视图中的列相同。

具体而言,%ROWTYPE有如下优点:

① 可以不必知道数据库中列的数量和类型。

② 在运行期间,数据库中列的数量和类型可能发生变化,但是却不用修改代码。

③ SELECT语句中使用该属性可以有效地检索表中的行。

%ROWTYPE使用示例如下所示:

DECLARE

    V_EMP EMP%ROWTYPE;

BEGIN

    SELECT * INTO V_EMP FROM EMP WHERE EMPNO = 7521;

    DBMS_OUTPUT.PUT_LINE(V_EMP.EMPNO || ',' || V_EMP.ENAME);

END;



--------现有课程-------

 详细内容可以添加麦老师微信或QQ私聊。



About Me:小麦苗

 本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用

● 作者博客地址:http://blog.itpub.net/26736162/abstract/1/

 本系列题目来源于作者的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解

 版权所有,欢迎分享本文,转载请保留出处

 QQ:646634621  QQ群:618766405

● 题目解答若有不当之处,还望各位朋友批评指正,共同进步

长按下图识别二维码或微信扫描下图二维码来关注小麦苗的微信公众号:xiaomaimiaolhr,学习最实用的数据库技术。


最后修改时间:2020-01-10 20:39:43
文章转载自DB宝,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论