ImageVerifierCode 换一换
格式:DOCX , 页数:9 ,大小:17.99KB ,
资源ID:23897691      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/23897691.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(type与rowtype区别.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

type与rowtype区别.docx

1、type与rowtype区别%TYPE:属性的一种方式是在变量声明中使用。%TYPE是用于取的表或游标中的字段类型,例如,可以使用它来声明和ARTIST表中字段类型相同的变量,注意可以在表中名和字段之间使用点号(.)。DEALAREV_UNIT_NAMEkwmis_xm_unit_bg.UNIT_NAME%TYPE;V_BGOIDkwmis_xm_unit_bg.BGOID%TYPE;通过这种方式就不需要明确指定SQL数据类型,从而改善了代码的可维护性,因为表中字段类型的改变会自动反映在PL/SQL中;%ROWTYPE使用%ROWTYPE属性可以声明一个基于表或游标的行对象,也称为记录对象,例

2、如,可以基于ARTIST声明一个行对象:declare想a一旦生成这条记录,那么就可以通过游标使用句号来提取newXmUnitBg的字段值,例如newXmUnitBg.UNIT_NAME单位名称,newXmUnitBg.BGOID变更申请号cursorfrdm_cursorisSELECTFRDM_TZHFROMkwmis_xm_unit_bgWHEREbgoid=V_BGOIDandbg_flag=1ANDFRDM_TZHin(selectfrdmfromkwmis_unit_baseinfo);beginOPENfrdm_cursor;LOOPFETCHfrdm_cursorINTOv_f

3、rdm;iffrdm_cursor%notfoundthenfrdm_cursor%foundexitwhenfrdm_cursor%notfoundfrdm_cursor%found%TYPE是跟表中的字段的类型一致,是变量类型.而%ROWTYPE是跟表中的行类型一致,是record类型.我是搞Java的,看到DBA的存储过程这样写,不知是什么意思,请Oracle朋友讲解一下. create or replace procedure sp_update_customer is v_c_rowvalue t_customer_info%rowtype; v_p_rorvalue t_produ

4、ct_info%rowtype; v_customer_id t_customer_info.customer_id%type; = %rowtype是指什么意思呀,我知道t_customer_info是一个table来的. %ROWTYPE 提供了一个对应特定表的一整行的复合类型v_c_rowvalue t_customer_info%rowtype; 表示,v_c_rowvalue 将具有 跟 表t_customer_info 相同的行结构,可以存放以行数据。 使用时 v_c_rowvalue.colname即可。使用%ROWTYPE属性 /*使用%ROWTYPE属性*/ /*用%ROWT

5、YPE属性声明的记录变量自动具有和引用表的列名一致的字段名*/ DECLARE selPart tb_phone_no%ROWTYPE; BEGIN SELECT phone_no,city_code,city_name,state,type INTO selPart FROM tb_phone_no WHERE phone_no=1333241; DBMS_OUTPUT.PUT_LINE(phone_no: | selPart.phone_no | city_code: | selPart.city_code | city_name: | selPart.city_name | state:

6、 | selPart.state | type: | selPart.type); END; - SQL desc tb_phone_no; 名称 是否为空?类型 - - - PHONE_NO NOT NULL VARCHAR2(7) CITY_CODE NOT NULL VARCHAR2(4) CITY_NAME NOT NULL VARCHAR2(8) STATE NOT NULL VARCHAR2(6) TYPE NOT NULL VARCHAR2(6) Oracle PL/SQL中如何使用%TYPE和%ROWTYPEOracle PL/SQL中如何使用%TYPE和%ROWTYPE 1.

7、 使用%TYPE 在许多情况下,PL/SQL变量可以用来存储在数据库表中的数据。在这种情况下,变量应该拥有与表列相同的类型。例如,students表的first_name列的类型为VARCHAR2(20),我们可以按照下述方式声明一个变量: DECLARE v_FirstName VARCHAR2(20); 但是如果first_name列的定义改变了会发生什么(比如说表改变了,first_name现在的类型变为VARCHAR2(25))?那就会导致所有使用这个列的PL/SQL代码都必须进行修改。如果你有很多的PL/SQL代码,这种处理可能是十分耗时和容易出错的。 这时,你可以使用”%TYPE”

8、属性而不是将变量类型硬性编码。 例如: DECLARE v_FirstName students.first_name%TYPE; 通过使用%TYPE,v_FirstName变量将同students表的first_name列的类型相同(可以理解为将两者邦定起来)。 每次匿名块或命名块运行该语句块以及编译存储对象(过程、函数、包、对象类和触发器)时,就会确定该类型。 使用%TYPE是非常好的编程风格,因为它使得PL/SQL更加灵活,更加适应于对数据库定义的更新。 2. 使用%ROWTYPE 2.1 PL/SQL记录 PL/SQL记录类型类似于C语言中的结构,是一种复合类型,是用户自定义的。 记录

9、提供了一种处理独立的但又作为一个整体单元相关的变量的机制。请看: DECLARE v_StudentID NUMBER(5); v_FirstName VARCHAR2(20); v_LastName VARCHAR2(20); 这3个变量在逻辑上是相互关联的,因为他们指向students表中不同的字段。如果为这些变量声明一个记录类型,那么他们之间的关系就十分明显,可作为一个单元进行处理。/FONTDECLARE /*Define a record type to hold common student informationi*/ TYPE t_StudentRecord IS RECORD

10、( StudentID NUMBER(5), FirstName VARCHAR2(20), LastName VARCHAR2(20); /*Declare a variable of this type.*/ v_StudentInfo t_StudentRecord; 2.2 记录赋值 可以用SELECT语句向记录赋值,这将会从数据库中检索数据并将该数据存储到记录中。注意的是,记录中字段应该和查询结果列表中的字段相匹配。 SELECT studentID,firstName,lastName into v_StudentInfo from students where studentID

11、=32; 2.3 使用%ROWTYPE 在PL/SQL中将一个记录声明为具有相同类型的数据库行的作法是很常见的。PL/SQL提供了%ROWTYPE运算符,使得这样的操作更为方便。 例如: DECLARE v_RoomRecord rooms%ROWTYPE; 将定义一个记录,该记录中的字段将与rooms表中的列相对应。create or replace procedure insert_studentisi number:=0; begin while i=20; end loop;end;set serveroutput on;declarei number:=0;begin for i i

12、n 1.10 loop dbms_output.put_line(i); end loop;end;set serveroutput on;begin for i in 1.10 loop dbms_output.put_line(i); end loop;end;%type 和 %rowtype有什么不同比如:表tb1(col1 number ,col2 varchar2(10) )t_col tb1.col1;/声明为number 型的t_col tb1%rowtype/可以存放一行,包括col1 number ,col2 varchar2(10)sorry,漏了%type;t_col t

13、b1.col1%type;/等价于声明t_col为number 型的%type保证内部变量保持与给该变量提供值的数据库字段有相等的数据类型(有相同的格式类型和长度),其语法要求:在%type前面有表名及字段名,用一个圆点将表名和字段名隔开;%rowtype有类似的功能,不同的是:它在内存中为相应表的每一个字段都建立一个内部变量,其语法要求:在%rowtype前加表名。其区别为:%type仅仅是一个变量而%rowtype是一组变量的集合,例如:假设有一块表emp有两个字段department_name和salary,则declare dept emp.department_name%type; -定义一个变量 emp_row emp%rowtype; -定义一组(2个)变量begin .end;很简单,如果你关心的只是表的某个字段,那用%type,如果你关心的是表属性,那么用%rowtype,此外在PLSQL中,这是个好习惯

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1