﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-orsen成长录-随笔分类-Oracle</title><link>http://www.blogjava.net/orsen/category/41818.html</link><description /><language>zh-cn</language><lastBuildDate>Thu, 24 Sep 2009 17:42:47 GMT</lastBuildDate><pubDate>Thu, 24 Sep 2009 17:42:47 GMT</pubDate><ttl>60</ttl><item><title>oracle 游标的使用</title><link>http://www.blogjava.net/orsen/archive/2009/09/24/296273.html</link><dc:creator>Orsen</dc:creator><author>Orsen</author><pubDate>Thu, 24 Sep 2009 04:58:00 GMT</pubDate><guid>http://www.blogjava.net/orsen/archive/2009/09/24/296273.html</guid><wfw:comment>http://www.blogjava.net/orsen/comments/296273.html</wfw:comment><comments>http://www.blogjava.net/orsen/archive/2009/09/24/296273.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/orsen/comments/commentRss/296273.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/orsen/services/trackbacks/296273.html</trackback:ping><description><![CDATA[<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #008080">--</span><span style="color: #008080">通过使用隐式游标和记录为mydept表添加内容</span><span style="color: #008080"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">Declare</span><span style="color: #000000">&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />Type&nbsp;&nbsp;dept_rec&nbsp;</span><span style="color: #0000ff">Is</span><span style="color: #000000">&nbsp;Record<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />(<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r_deptno&nbsp;&nbsp;dept.deptno</span><span style="color: #808080">%</span><span style="color: #000000">Type,<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r_dname&nbsp;&nbsp;&nbsp;dept.dname</span><span style="color: #808080">%</span><span style="color: #000000">Type,<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r_loc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dept.loc</span><span style="color: #808080">%</span><span style="color: #000000">Type<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />v_deptrec&nbsp;&nbsp;&nbsp;dept_rec;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">Begin</span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">Select</span><span style="color: #000000">&nbsp;deptno,dname,loc&nbsp;</span><span style="color: #0000ff">Into</span><span style="color: #000000">&nbsp;v_deptrec&nbsp;</span><span style="color: #0000ff">From</span><span style="color: #000000">&nbsp;dept<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">Where</span><span style="color: #000000">&nbsp;deptno</span><span style="color: #808080">=&amp;</span><span style="color: #000000">dno;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">Insert</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">Into</span><span style="color: #000000">&nbsp;mydept&nbsp;</span><span style="color: #0000ff">Values</span><span style="color: #000000">&nbsp;v_deptrec;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dbms_output.put_line(</span><span style="color: #ff0000">'</span><span style="color: #ff0000">插值成功</span><span style="color: #ff0000">'</span><span style="color: #000000">);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exception&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">When</span><span style="color: #000000">&nbsp;NO_DATA_FOUND&nbsp;</span><span style="color: #0000ff">Then</span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dbms_output.put_line(</span><span style="color: #ff0000">'</span><span style="color: #ff0000">该部门不存在<img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span style="color: #ff0000">'</span><span style="color: #000000">);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">When</span><span style="color: #000000">&nbsp;Others&nbsp;</span><span style="color: #0000ff">Then</span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dbms_output.put_line(</span><span style="color: #ff0000">'</span><span style="color: #ff0000">发生异常，插值失败</span><span style="color: #ff0000">'</span><span style="color: #000000">);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">End</span><span style="color: #000000">&nbsp;;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #008080">--</span><span style="color: #008080">结合游标从DEPT表中查询数据，将相应的数据插入到MYDEPT表中</span><span style="color: #008080"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">Declare</span><span style="color: #000000">&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />Type&nbsp;&nbsp;dept_rec&nbsp;</span><span style="color: #0000ff">Is</span><span style="color: #000000">&nbsp;Record<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />(<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r_deptno&nbsp;&nbsp;dept.deptno</span><span style="color: #808080">%</span><span style="color: #000000">Type,<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r_dname&nbsp;&nbsp;&nbsp;dept.dname</span><span style="color: #808080">%</span><span style="color: #000000">Type,<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r_loc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dept.loc</span><span style="color: #808080">%</span><span style="color: #000000">Type<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">Cursor</span><span style="color: #000000">&nbsp;dept_cursor&nbsp;</span><span style="color: #0000ff">Is</span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">Select</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">*</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">From</span><span style="color: #000000">&nbsp;dept&nbsp;</span><span style="color: #0000ff">Order</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">By</span><span style="color: #000000">&nbsp;deptno&nbsp;</span><span style="color: #0000ff">Asc</span><span style="color: #000000">;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />v_deptrec&nbsp;&nbsp;&nbsp;dept_rec;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">Begin</span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080">--</span><span style="color: #008080">打开游标</span><span style="color: #008080"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">Open</span><span style="color: #000000">&nbsp;dept_cursor;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080">--</span><span style="color: #008080">从游标中取值</span><span style="color: #008080"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">Fetch</span><span style="color: #000000">&nbsp;dept_cursor&nbsp;</span><span style="color: #0000ff">Into</span><span style="color: #000000">&nbsp;v_deptrec;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">While</span><span style="color: #000000">(dept_cursor</span><span style="color: #808080">%</span><span style="color: #000000">Found)&nbsp;Loop<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">Insert</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">Into</span><span style="color: #000000">&nbsp;mydept&nbsp;</span><span style="color: #0000ff">Values</span><span style="color: #000000">&nbsp;v_deptrec;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dbms_output.put_line(</span><span style="color: #ff0000">'</span><span style="color: #ff0000">插值成功</span><span style="color: #ff0000">'</span><span style="color: #000000">);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">Fetch</span><span style="color: #000000">&nbsp;dept_cursor&nbsp;</span><span style="color: #0000ff">Into</span><span style="color: #000000">&nbsp;v_deptrec;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">End</span><span style="color: #000000">&nbsp;Loop;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">Close</span><span style="color: #000000">&nbsp;dept_cursor;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exception&nbsp;</span><span style="color: #0000ff">When</span><span style="color: #000000">&nbsp;Others&nbsp;</span><span style="color: #0000ff">Then</span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dbms_output.put_line(</span><span style="color: #ff0000">'</span><span style="color: #ff0000">发生异常，插值失败</span><span style="color: #ff0000">'</span><span style="color: #000000">);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">End</span><span style="color: #000000">&nbsp;;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #008080">--</span><span style="color: #008080">使用面向游标的记录</span><span style="color: #008080"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />--</span><span style="color: #008080">通过面向游标的记录显示部门信息</span><span style="color: #008080"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">Declare</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">Cursor</span><span style="color: #000000">&nbsp;dept_cursor<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">Is</span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">Select</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">*</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">From</span><span style="color: #000000">&nbsp;mydept&nbsp;</span><span style="color: #0000ff">Order</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">By</span><span style="color: #000000">&nbsp;deptno&nbsp;</span><span style="color: #0000ff">Asc</span><span style="color: #000000">;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #008080">--</span><span style="color: #008080">定义一个面向游标的记录</span><span style="color: #008080"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">v_deptrec&nbsp;dept_cursor</span><span style="color: #808080">%</span><span style="color: #000000">Rowtype;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">Begin</span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">Open</span><span style="color: #000000">&nbsp;dept_cursor;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Loop&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">Fetch</span><span style="color: #000000">&nbsp;&nbsp;dept_cursor&nbsp;</span><span style="color: #0000ff">Into</span><span style="color: #000000">&nbsp;v_deptrec;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">Delete</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">From</span><span style="color: #000000">&nbsp;mydept&nbsp;</span><span style="color: #0000ff">Where</span><span style="color: #000000">&nbsp;deptno</span><span style="color: #808080">=</span><span style="color: #000000">v_deptrec.deptno;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dbms_output.put_line(v_deptrec.deptno</span><span style="color: #808080">||</span><span style="color: #ff0000">'</span><span style="color: #ff0000">&nbsp;信息删除成功<img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span style="color: #ff0000">'</span><span style="color: #000000">);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">Exit</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">When</span><span style="color: #000000">&nbsp;dept_cursor</span><span style="color: #808080">%</span><span style="color: #000000">Notfound&nbsp;;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">End</span><span style="color: #000000">&nbsp;Loop;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">Close</span><span style="color: #000000">&nbsp;dept_cursor;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exception&nbsp;</span><span style="color: #0000ff">When</span><span style="color: #000000">&nbsp;Others&nbsp;</span><span style="color: #0000ff">Then</span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dbms_output.put_line(</span><span style="color: #ff0000">'</span><span style="color: #ff0000">发生异常，删除失败</span><span style="color: #ff0000">'</span><span style="color: #000000">);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">End</span><span style="color: #000000">;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span></div>
 <img src ="http://www.blogjava.net/orsen/aggbug/296273.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/orsen/" target="_blank">Orsen</a> 2009-09-24 12:58 <a href="http://www.blogjava.net/orsen/archive/2009/09/24/296273.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>