%type与%rowtype区别 * 博客分类: oracle SQL Sql代码 收藏代码 1. %TYPE:属性的一种方式是在变量声
%type与%rowtype区别
* 博客分类: oracle
SQL
Sql代码 收藏代码
1. %TYPE:属性的一种方式是在变量声明中使用。%ROWTYPE是用于取得表或游标中的字段类型,
2. 例如,可以使用它来声明 ARTIST表中字段类型相同的变量,注意可以在表中名和字段之间使用点号(.)。
3. DEALARE
4. V_UNIT_NAME kwmis_xm_unit_bg.UNIT_NAME%TYPE;
5. V_BGOID kwmis_xm_unit_bg.BGOID%TYPE;
6. 通过这种方式就不需要明确指定SQL数据类型,从而改善了代码的可维护性,因为表中字段类型的改变会自动反映在PL/SQL中;
7.
8. %ROWTYPE
9. 使用%ROWTYPE属性可以声明一个基于表或游标的行对象,也称为记录对象,例如,可以基于ARTIST声明一个行对象:
10. declare
11. newXmUnitBg kwmis_xm_unit_bg%rowtype;
12. 一旦生成这条记录,那么就可以通过游标使用句号来提取newXmUnitBg的字段值,例如newXmUnitBg.UNIT_NAME 单位名称, newXmUnitBg.BGOID 变更申请号
13.
14. cursor frdm_cursor is SELECT FRDM_TZH FROM kwmis_xm_unit_bg WHERE bgoid=V_BGOID and bg_flag='1'
15. AND FRDM_TZH in(select frdm from kwmis_unit_baseinfo);
16.
17. begin
18. OPEN frdm_cursor;
19. LOOP
20. FETCH frdm_cursor INTO v_frdm;
21.
22. if frdm_cursor%notfound then frdm_cursor%found
23.
24. exit when frdm_cursor%notfound frdm_cursor%found
25.
26. %TYPE 是跟表中的字段的类型一致,是变量类型.而%ROWTYPE是跟表中的行类型一致,是record类型.
27.
28. 该文来自于 <span><span class="string">http://www.cnblogs.com/cuihongyu3503319/</span>
29.
30. </span>