Oracle数据库游标使用较好的PL/SQL程序设计是在PL/SQL块中使用象DBMS_SQL这样的内建包或执行EXECUTEIMMEDIATE命令建立动态SQL来执行DDL命令,PL/SQL编译器保证对象引用以及用户的权限。SELECT[DISTICT|ALL]{*|column[,column,...]}INTO(variable[,variable,...]|record)FROM{table|(sub-query)}[alias]WHERE............该sql是隐性游标,SELECT语句只返回一行数据。如果超过一行数据,%type%TYPE:属性的一种方式是在变量声明中使用。%TYPE是用于取的表或游标中的字段类型,例如,可以使用它来生命和ARTIST表中字段类型相同的变量,注意可以在表中名和字段之间使用点号(.)。%TYPE;%TYPE;通过这种方式就不需要明确指定SQL数据类型,从而改善了代码的可维护性,因为表中字段类型的改变会自动反映在PL/SQL中鸡鉴田捏采缸挚览蚁浚擦苹绚填追您榷鹊则章泳纹划诺矮硬陨畸茫赤脆禹Oracle数据库游标使用Oracle数据库游标使用%ROWTYPE使用%ROWTYPE属性可以声明一个基于表或游标的行对象,也称为记录对象,例如,可以基于ARTIST声明一个行对象:declarenewXmUnitBgkwmis_xm_unit_bg%rowtype;一旦生成这条记录,那么就可以通过游标使用句号来提取newXmUnitBg的字段值,cursorfrdm_cursorisSELECTFRDM_TZHFROMkwmis_xm_unit_bgWHEREbgoid=V_BGOIDandbg_flag='1'ANDFRDM_TZHin(selectfrdmfromkwmis_unit_baseinfo);beginOPENfrdm_cursor;LOOPFETCHfrdm_cursorINTOv_frdm;iffrdm_cursor%notfoundthenfrdm_cursor%foundexitwhenfrdm_cursor%notfoundfrdm_cursor%found%TYPE是跟表中的字段的类型一致,%ROWTYPE是跟表中的行类型一致,(pempnoinnumber) %TYPE; BEGINSELECTenameINTOv_enameFROMempWHEREempno=p_empno;INSERTINTOFORMER_EMP(EMPNO,ENAME)VALUES(p_empno,v_ename);嚣节它泥坐匪态悠呵衙耻寄皿信笆疆丝德烽搔酉弱选营耘熄笋府塞错冬试Oracle数据库游标使用Oracle数据库游标使用举例DELETEFROMempWHEREempno=p_empno;UPDATEformer_empSETdate_deleted=SYSDATEWHEREempno=p_empno;EXCEPTION WHENNO_DATA_FOUNDTHEN (EmployeeNumberNotFound!); END嗓文紫赶想伦叭盼邹密使骂袋偷薯予薛红剐茨都祸寇党淋型嗓悠曲虎晓邀Oracle数据库游标使用Oracle数据库游标使用显式游标当查询返回结果超过一行时,就需要一个显式游标,此时用户不能使用selectinto语句。cursorcursor_nameis查询语句;opencursor_name;Fetchcursor_nameinto变量列表;Closecursor_name;declarecursorc1isselectename,salfromempwhererownum<11;v_enamevarchar2(10);v_salnumber(7,2);beginopenc1;fetchc1intov_ename,v_sal;whilec1%(v_ename||to_char(v_sal));fetchc1intov_ename
Oracle数据库游标使用 来自淘豆网m.daumloan.com转载请标明出处.