欢迎来到天天文库
浏览记录
ID:34725123
大小:52.34 KB
页数:9页
时间:2019-03-10
《oracle的plsql编程之过程全部案例》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、--声明游标;CURSORcursor_nameISselect_statement--For循环游标--(1)定义游标--(2)定义游标变量--(3)使用for循环来使用这个游标declare--类型定义cursorc_jobisselectempno,ename,job,salfromempwherejob='MANAGER';--定义一个游标变量v_cinfoc_emp%ROWTYPE,该类型为游标c_emp中的一行数据类型c_rowc_job%rowtype;beginforc_rowinc_jobloo
2、pdbms_output.put_line(c_row.empno
3、
4、'-'
5、
6、c_row.ename
7、
8、'-'
9、
10、c_row.job
11、
12、'-'
13、
14、c_row.sal);endloop;end;--Fetch游标--使用的时候必须要明确的打开和关闭declare--类型定义cursorc_jobisselectempno,ename,job,salfromempwherejob='MANAGER';--定义一个游标变量c_rowc_job%rowtype;beginopenc_job;loop--提取一行数据到c
15、_rowfetchc_jobintoc_row;--判读是否提取到值,没取到值就退出--取到值c_job%notfound是false--取不到值c_job%notfound是trueexitwhenc_job%notfound;dbms_output.put_line(c_row.empno
16、
17、'-'
18、
19、c_row.ename
20、
21、'-'
22、
23、c_row.job
24、
25、'-'
26、
27、c_row.sal);endloop;--关闭游标closec_job;end;--1:任意执行一个update操作,用隐式游标sql的属性%
28、found,%notfound,%rowcount,%isopen观察update语句的执行情况。beginupdateempsetENAME='ALEARK'WHEREEMPNO=7469;ifsql%isopenthendbms_output.put_line('Openging');elsedbms_output.put_line('closing');endif;ifsql%foundthendbms_output.put_line('游标指向了有效行');--判断游标是否指向有效行elsedbms_ou
29、tput.put_line('Sorry');endif;ifsql%notfoundthendbms_output.put_line('AlsoSorry');elsedbms_output.put_line('Haha');endif;dbms_output.put_line(sql%rowcount);exceptionwhenno_data_foundthendbms_output.put_line('SorryNodata');whentoo_many_rowsthendbms_output.put_l
30、ine('TooManyrows');end;declareempNumberemp.EMPNO%TYPE;empNameemp.ENAME%TYPE;beginifsql%isopenthendbms_output.put_line('Cursorisopinging');elsedbms_output.put_line('CursorisClose');endif;ifsql%notfoundthendbms_output.put_line('NoValue');elsedbms_output.put_lin
31、e(empNumber);endif;dbms_output.put_line(sql%rowcount);dbms_output.put_line('-------------');selectEMPNO,ENAMEintoempNumber,empNamefromempwhereEMPNO=7499;dbms_output.put_line(sql%rowcount);ifsql%isopenthendbms_output.put_line('Cursorisopinging');elsedbms_outpu
32、t.put_line('CursorisClosing');endif;ifsql%notfoundthendbms_output.put_line('NoValue');elsedbms_output.put_line(empNumber);endif;exceptionwhenno_data_foundthendbms_output.put_line('NoValue
此文档下载收益归作者所有