﻿<?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-天行健-随笔分类-DataBase</title><link>http://www.blogjava.net/bnlovebn/category/19919.html</link><description>《周易》曰：&lt;br&gt;
天行健，君子以自强不息(乾卦)&lt;br&gt;
地势坤，君子以厚德载物(坤卦)
</description><language>zh-cn</language><lastBuildDate>Tue, 14 Jun 2011 19:06:49 GMT</lastBuildDate><pubDate>Tue, 14 Jun 2011 19:06:49 GMT</pubDate><ttl>60</ttl><item><title>APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending tasks</title><link>http://www.blogjava.net/bnlovebn/archive/2011/06/12/352125.html</link><dc:creator>重归本垒（Bing）</dc:creator><author>重归本垒（Bing）</author><pubDate>Sun, 12 Jun 2011 05:51:00 GMT</pubDate><guid>http://www.blogjava.net/bnlovebn/archive/2011/06/12/352125.html</guid><wfw:comment>http://www.blogjava.net/bnlovebn/comments/352125.html</wfw:comment><comments>http://www.blogjava.net/bnlovebn/archive/2011/06/12/352125.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/bnlovebn/comments/commentRss/352125.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/bnlovebn/services/trackbacks/352125.html</trackback:ping><description><![CDATA[<div>最近orcale数据只有一台可以服务，导致hibernate 连接数据库每个13分钟就会报&#8220;APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending tasks&#8221;的错误.<br />原因是 hibernate 使用c3p0连接orcale数据后不会释放 ， c3p0的最大连接数为100，但显然c3p0有Bug，导致数据库连接池不够用，导致进程锁死。<br />后换Proxool后，观察正常。<br /><br />下面转引其它网友文章说明c3p0 、 Proxool、 <span class="hilite1" style="background-color: #ffffff">dbcp</span>&nbsp; 的区别 
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080">1</span><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #008000">&lt;!--</span><span style="color: #008000">&nbsp;JDBC驱动程序&nbsp;</span><span style="color: #008000">--&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080">2</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="connection.driver_class"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">com.mysql.jdbc.Driver</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">property</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="connection.url"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">jdbc:mysql://localhost:3306/struts?useUnicode=true</span><span style="color: #ff0000">&amp;characterEncoding</span><span style="color: #000000">=GBK</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">property</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">&lt;!--</span><span style="color: #008000">&nbsp;数据库用户名&nbsp;</span><span style="color: #008000">--&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080">3</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="connection.username"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">root</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">property</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">&lt;!--</span><span style="color: #008000">&nbsp;数据库密码&nbsp;</span><span style="color: #008000">--&gt;</span></div><br />上面的一段配置，在<span class="hilite2" style="background-color: #ffffff">c3p0</span>和<span class="hilite1" style="background-color: #ffffff">dbcp</span>中，都是必需的，因为hibernate会根据上述的配置来生成connections，再交给<span class="hilite2" style="background-color: #ffffff">c3p0</span>或<span class="hilite1" style="background-color: #ffffff">dbcp</span>管理.<br /><br />1 <span class="hilite2" style="background-color: #ffffff">C3P0</span> <br /><br />只需在hibernate.cfg.xml中加入 <br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080">1</span><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="c3p0.min_size"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">5</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">property</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080">2</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="c3p0.max_size"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">30</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">property</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080">3</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="c3p0.time_out"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">1800</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">property</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080">4</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="c3p0.max_statement"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">50</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">property</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080">5</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div><br />还有在classespath中加入<span class="hilite2" style="background-color: #ffffff">c3p0</span>-0.8.4.5.jar <br /><br /><br />2 <span class="hilite1" style="background-color: #ffffff">dbcp</span> <br /><br />在hibernate.cfg.xml中加入 <br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080">&nbsp;1</span><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="dbcp.maxActive"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">100</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">property</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080">&nbsp;2</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="dbcp.whenExhaustedAction"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">1</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">property</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080">&nbsp;3</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="dbcp.maxWait"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">60000</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">property</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080">&nbsp;4</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="dbcp.maxIdle"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">10</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">property</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080">&nbsp;5</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080">&nbsp;6</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="dbcp.ps.maxActive"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">100</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">property</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080">&nbsp;7</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="dbcp.ps.whenExhaustedAction"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">1</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">property</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080">&nbsp;8</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="dbcp.ps.maxWait"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">60000</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">property</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080">&nbsp;9</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="dbcp.ps.maxIdle"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">10</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">property</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;<br /></span><span style="color: #008080">10</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div><br />还有在classespath中加入commons-pool-1.2.jar 和commons-<span class="hilite1" style="background-color: #ffffff">dbcp</span>-1.2.1.jar. <br /><br />3 proxool <br /><br />由于数据库connection在较长时间没有访问下会自动断开连接，导致浏览出错，增加proxool作为数据库pool。它有自动连接功能。<br />1)、从<a href="http://proxool.sourceforge.net/" target="_blank"><span style="color: #006600; background-color: #ffffff">http://proxool.sourceforge...</span></a><span style="background-color: #ffffff">下载proxool，释放proxool.jar到WEB-INF/lib<br /><br />2)、在hibernate.cfg.xml中增加：<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080">1</span><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="hibernate.proxool.pool_alias"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">dbpool</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">property</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080">2</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="hibernate.proxool.xml"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">proxool.xml</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">property</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080">3</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="connection.provider_class"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">org.hibernate.connection.ProxoolConnectionProvider</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">property</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;<br /></span><span style="color: #008080">4</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div></span><br />3)、在与hibernate.cfg.xml同级目录（src根目录下）增加proxool.xml文件：<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080">&nbsp;1</span><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">&lt;?</span><span style="color: #ff00ff">xml&nbsp;version="1.0"&nbsp;encoding="utf-8"</span><span style="color: #0000ff">?&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080">&nbsp;2</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #008000">&lt;!--</span><span style="color: #008000">&nbsp;the&nbsp;proxool&nbsp;configuration&nbsp;can&nbsp;be&nbsp;embedded&nbsp;within&nbsp;your&nbsp;own&nbsp;application's.&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080">&nbsp;3</span><span style="color: #008000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;Anything&nbsp;outside&nbsp;the&nbsp;"proxool"&nbsp;tag&nbsp;is&nbsp;ignored.&nbsp;</span><span style="color: #008000">--&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080">&nbsp;4</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">something-else-entirely</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080">&nbsp;5</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">proxool</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080">&nbsp;6</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">alias</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">dbpool</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">alias</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080">&nbsp;7</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">&lt;!--</span><span style="color: #008000">proxool只能管理由自己产生的连接</span><span style="color: #008000">--&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080">&nbsp;8</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">driver-url</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080">&nbsp;9</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jdbc:mysql://127.0.0.1:3306/wlsh?characterEncoding=GBK</span><span style="color: #ff0000">&amp;useUnicode</span><span style="color: #000000">=true</span><span style="color: #ff0000">&amp;autoReconnect</span><span style="color: #000000">=true&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">driver-url</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080">10</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">driver-class</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">com.mysql.jdbc.Driver</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">driver-class</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080">11</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">driver-properties</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080">12</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="user"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="root"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080">13</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="password"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="123456"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080">14</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">driver-properties</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080">15</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">&lt;!--</span><span style="color: #008000">&nbsp;proxool自动侦察各个连接状态的时间间隔(毫秒),侦察到空闲的连接就马上回收,超时的销毁</span><span style="color: #008000">--&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080">16</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">house-keeping-sleep-time</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">90000</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">house-keeping-sleep-time</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080">17</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">&lt;!--</span><span style="color: #008000">&nbsp;最少保持的空闲连接数</span><span style="color: #008000">--&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080">18</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">prototype-count</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">5</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">prototype-count</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080">19</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">&lt;!--</span><span style="color: #008000">&nbsp;允许最大连接数,超过了这个连接，再有请求时，就排在队列中等候，最大的等待请求数由maximum-new-connections决定</span><span style="color: #008000">--&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080">20</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">maximum-connection-count</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">100</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">maximum-connection-count</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080">21</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">&lt;!--</span><span style="color: #008000">&nbsp;最小连接数</span><span style="color: #008000">--&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080">22</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">minimum-connection-count</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">10</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">minimum-connection-count</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080">23</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">proxool</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080">24</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">something-else-entirely</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;<br /></span><span style="color: #008080">25</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div><br />于在hibernate3.0中，已经不再支持dbcp了，hibernate的作者在hibernate.org中，明确指出在实践中发现dbcp有 BUG,在某些种情会产生很多空连接不能释放，所以抛弃了对dbcp的支持。至于c3p0，有评论说它的算法不是最优的，因为网上查资料得知：有网友做了一个实验，在同一项目中分别用了几个常用的连接池，然后测试其性能，发现c3p0占用资源比较大，效率也不高。所以，基于上述原因，proxool不少行家推荐使用，而且暂时来说，是负面评价是最少的一个。在三星中也有项目是用proxool的。从性能和出错率来说，proxool稍微比前两种好些。C3P0，稳定性似乎不错，在这方面似乎有很好的口碑。至于性能，应该不是最好的，算是中规中矩的类型。 <br />　　Proxool的口碑似乎很好，不大见到负面的评价，从官方资料上来看，有许多有用的特性和特点，也是许多人推荐的。<br /></div><img src ="http://www.blogjava.net/bnlovebn/aggbug/352125.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/bnlovebn/" target="_blank">重归本垒（Bing）</a> 2011-06-12 13:51 <a href="http://www.blogjava.net/bnlovebn/archive/2011/06/12/352125.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>mysql中文问题终极解决方案</title><link>http://www.blogjava.net/bnlovebn/archive/2008/05/26/202978.html</link><dc:creator>重归本垒（Bing）</dc:creator><author>重归本垒（Bing）</author><pubDate>Mon, 26 May 2008 09:06:00 GMT</pubDate><guid>http://www.blogjava.net/bnlovebn/archive/2008/05/26/202978.html</guid><wfw:comment>http://www.blogjava.net/bnlovebn/comments/202978.html</wfw:comment><comments>http://www.blogjava.net/bnlovebn/archive/2008/05/26/202978.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/bnlovebn/comments/commentRss/202978.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/bnlovebn/services/trackbacks/202978.html</trackback:ping><description><![CDATA[<p>取出字符中文没有乱码，而写入确是乱码，<br />
在java,jsp,数据库，表格都统一为、utf8或GBK等后，<br />
最后要在，my.ini或my.cnf中加入编码<br />
如：<br />
[mysqld]<br />
default-character-set=utf8<br />
default-storage-engine=INNODB<br />
</p>
<p>[client]</p>
<p>port=3306</p>
<p>[mysql]</p>
<p>default-character-set=utf8<br />
</p>
<p><br />
&nbsp;</p>
<img src ="http://www.blogjava.net/bnlovebn/aggbug/202978.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/bnlovebn/" target="_blank">重归本垒（Bing）</a> 2008-05-26 17:06 <a href="http://www.blogjava.net/bnlovebn/archive/2008/05/26/202978.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux下mysql(rpm)安装使用手册[转]</title><link>http://www.blogjava.net/bnlovebn/archive/2008/05/26/202974.html</link><dc:creator>重归本垒（Bing）</dc:creator><author>重归本垒（Bing）</author><pubDate>Mon, 26 May 2008 08:59:00 GMT</pubDate><guid>http://www.blogjava.net/bnlovebn/archive/2008/05/26/202974.html</guid><wfw:comment>http://www.blogjava.net/bnlovebn/comments/202974.html</wfw:comment><comments>http://www.blogjava.net/bnlovebn/archive/2008/05/26/202974.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/bnlovebn/comments/commentRss/202974.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/bnlovebn/services/trackbacks/202974.html</trackback:ping><description><![CDATA[<font size="2"><font size="+0"><span style="color: #0b1150">下载地址为：http://dev.mysql.com/downloads/mysql/5.1.html，打开此网页，下拉网页找到&#8220;</span>Linux x86 generic RPM (statically linked against glibc 2.2.5) downloads<span style="color: #0b1150">&#8221;</span></font></font><span style="color: #0b1150"><font size="2">项，找到&#8220;Server&#8221;和&#8220;Client programs&#8221;项，下载需要的上述两个rpm文件。</font><font size="2"> <br />
2、安装</font><font size="2">MySQL <br />
　　 rpm文件是Red Hat公司开发的软件安装包，rpm可让Linux在安装软件包时免除许多复杂的手续。该命令在安装时常用的参数是 &#8211;ivh ,其中i表示将安装指定的rmp软件包，V表示安装时的详细信息，h表示在安装期间出现&#8220;#&#8221;符号来显示目前的安装过程。这个符号将持续到安装完成后才停止。</font><font size="2"> <br />
　　 1）安装服务器端</font><font size="2"> <br />
　　 在有两个rmp文件的目录下运行如下命令：</font><font size="2"> <br />
　　 [root@test1 local]# rpm -ivh </font></span><font size="2">MySQL-server-5.1.7-0.i386.rpm MySQL-client-5.1.7-0.i386.rpm<span style="font-size: 10.5pt; color: #0b1150"><font size="+0">　　</font></span></font>
<div><font size="2"><font size="+0"><span style="font-size: 10.5pt; color: #0b1150">显示如下信息。 <br />
warning: </span>MySQL-server-5.1.7-0.i386.rpm</font></font><span style="font-size: 10.5pt; color: #0b1150"><br />
<font size="2">signature: NOKEY, key ID 5072e1f5 <br />
</font></span><font size="2"><font size="+0"><span style="font-size: 10.5pt; color: #0b1150">　　 Preparing...　　　　　　　########################################### [100%] <br />
　　 1:MySQL-server　　　　　########################################### [100%] <br />
　　　 。。。。。。（省略显示） <br />
　　 /usr/bin/mysqladmin -u root password 'new-password' <br />
　　 /usr/bin/mysqladmin -u root -h test1 password 'new-password' <br />
　　　 。。。。。。（省略显示） <br />
　　 Starting mysqld daemon with databases from /var/lib/mysql <br />
　　 如出现如上信息，服务端安装完毕。测试是否成功可运行netstat看Mysql端口是否打开，如打开表示服务已经启动，安装成功。Mysql默认的端口是3306。 <br />
　　 [root@test1 local]# netstat -nat <br />
　　 Active Internet connections (servers and established) <br />
　　 Proto Recv-Q Send-Q Local Address　　　　　 Foreign Address　　　　 State　　　 <br />
　　 tcp　　0　　0 0.0.0.0:3306　　　　 0.0.0.0:*　　　　　 LISTEN　　　 <br />
　　 上面显示可以看出MySQL服务已经启动。 <br />
　　 2）安装客户端 <br />
　　 运行如下命令： <br />
　　 [root@test1 local]# rpm -ivh </span>MySQL-client-5.1.7-0.i386.rpm</font></font><span style="font-size: 10.5pt; color: #0b1150"><br />
</span><font size="+0"><span style="font-size: 10.5pt; color: #0b1150"><font size="2">　　 warning: </font></span><font size="2">MySQL-client-5.1.7-0.i386.rpm</font></font><span style="font-size: 10.5pt; color: #0b1150"><font size="2">: V3 DSA signature: NOKEY, key ID 5072e1f5 <br />
</font></span><span style="font-size: 10.5pt; color: #0b1150"><font size="2">　　 Preparing...　　　　########################################### [100%] <br />
　　 1:MySQL-client　 ########################################### [100%] <br />
　　 显示安装完毕。 <br />
　　 用下面的命令连接mysql,测试是否成功。 <br />
　 三、登录MySQL <br />
<br />
　　 登录MySQL的命令是mysql， mysql 的使用语法如下： <br />
　　 mysql [-u username] [-h host] [-p[password]] [dbname] <br />
　　 username 与 password 分别是 MySQL 的用户名与密码，mysql的初始管理帐号是root，没有密码，注意：这个root用户不是Linux的系统用户。MySQL默认用户是root，由于初始没有密码，第一次进时只需键入mysql即可。 <br />
　　 [root@test1 local]# mysql <br />
　　 Welcome to the MySQL monitor.　Commands end with ; or \g. <br />
　　 Your MySQL connection id is 1 to server version: 4.0.16-standard <br />
　　 Type 'help;' or '\h' for help. Type '\c' to clear the buffer. <br />
　　 mysql&gt; <br />
　　 出现了&#8220;mysql&gt;&#8221;提示符，恭喜你，安装成功！ <br />
　　 增加了密码后的登录格式如下： <br />
　　 mysql -u root -p <br />
　　 Enter password: (输入密码) <br />
　　 其中-u后跟的是用户名，-p要求输入密码，回车后在输入密码处输入密码。 <br />
<br />
　　 注意：这个mysql文件在/usr/bin目录下，与后面讲的启动文件/etc/init.d/mysql不是一个文件。 <br />
<br />
　　 四、MySQL的几个重要目录 <br />
<br />
　　 MySQL安装完成后不象SQL Server默认安装在一个目录，它的数据库文件、配置文件和命令文件分别在不同的目录，了解这些目录非常重要，尤其对于Linux的初学者，因为 Linux本身的目录结构就比较复杂，如果搞不清楚MySQL的安装目录那就无从谈起深入学习。 <br />
<br />
　　 下面就介绍一下这几个目录。 <br />
<br />
　　 1、数据库目录 <br />
　　 /var/lib/mysql/ <br />
<br />
　　 2、配置文件 <br />
　　 /usr/share/mysql（mysql.server命令及配置文件） <br />
<br />
　　 3、相关命令 <br />
　　 /usr/bin(mysqladmin mysqldump等命令) <br />
<br />
　　 4、启动脚本 <br />
　　 /etc/rc.d/init.d/（启动脚本文件mysql的目录） <br />
　 五、修改登录密码 <br />
<br />
　　 MySQL默认没有密码，安装完毕增加密码的重要性是不言而喻的。 <br />
<br />
　　 1、命令 <br />
　　 usr/bin/mysqladmin -u root password 'new-password' <br />
　　 格式：mysqladmin -u用户名 -p旧密码 password 新密码 <br />
<br />
　　 2、例子 <br />
　　 例1：给root加个密码123456。 <br />
　　 键入以下命令 ： <br />
　　 [root@test1 local]# /usr/bin/mysqladmin -u root password 123456 <br />
　　 注：因为开始时root没有密码，所以-p旧密码一项就可以省略了。 <br />
<br />
　　 3、测试是否修改成功 <br />
　　 1）不用密码登录 <br />
　　 [root@test1 local]# mysql <br />
　　 ERROR 1045: Access denied for user: 'root@localhost' (Using password: NO) <br />
　　 显示错误，说明密码已经修改。 <br />
　　 2）用修改后的密码登录 <br />
　　 [root@test1 local]# mysql -u root -p <br />
　　 Enter password: (输入修改后的密码123456) <br />
　　 Welcome to the MySQL monitor.　Commands end with ; or \g. <br />
　　 Your MySQL connection id is 4 to server version: 4.0.16-standard <br />
　　 Type 'help;' or '\h' for help. Type '\c' to clear the buffer. <br />
　　 mysql&gt; <br />
　　 成功！ <br />
　　 这是通过mysqladmin命令修改口令，也可通过修改库来更改口令。 <br />
<br />
　　 六、启动与停止 <br />
<br />
　　 1、启动 <br />
　　 MySQL安装完成后启动文件mysql在/etc/init.d目录下，在需要启动时运行下面命令即可。 <br />
　　 [root@test1 init.d]# /etc/init.d/mysql start <br />
<br />
　　 2、停止 <br />
　　 /usr/bin/mysqladmin -u root -p shutdown <br />
<br />
　　 3、自动启动 <br />
　　 1）察看mysql是否在自动启动列表中 <br />
　　 [root@test1 local]#　/sbin/chkconfig --list <br />
　　 2）把MySQL添加到你系统的启动服务组里面去 <br />
　　 [root@test1 local]#　/sbin/chkconfig　&#8211;- add　mysql <br />
　　 3）把MySQL从启动服务组里面删除。 <br />
　　 [root@test1 local]#　/sbin/chkconfig　&#8211;-del　mysql <br />
七、更改MySQL目录 <br />
<br />
　　 MySQL默认的数据文件存储目录为/var/lib/mysql。假如要把目录移到/home/data下需要进行下面几步： <br />
<br />
　　 1、home目录下建立data目录 <br />
　　 cd /home <br />
　　 mkdir data <br />
<br />
　　 2、把MySQL服务进程停掉： <br />
　　 mysqladmin -u root -p shutdown <br />
<br />
　　 3、把/var/lib/mysql整个目录移到/home/data <br />
　　 mv /var/lib/mysql　/home/data/ <br />
　　 这样就把MySQL的数据文件移动到了/home/data/mysql下 <br />
<br />
　　 4、找到my.cnf配置文件 <br />
　　 如果/etc/目录下没有my.cnf配置文件，请到/usr/share/mysql/下找到*.cnf文件，拷贝其中一个到/etc/并改名为my.cnf)中。命令如下： <br />
　　 [root@test1 mysql]# cp /usr/share/mysql/my-medium.cnf　/etc/my.cnf <br />
<br />
　　 5、编辑MySQL的配置文件/etc/my.cnf <br />
　　 为保证MySQL能够正常工作，需要指明mysql.sock文件的产生位置。修改socket=/var/lib/mysql/mysql.sock一行中等号右边的值为：/home/mysql/mysql.sock 。操作如下： <br />
　　 vi　 my.cnf　　　 (用vi工具编辑my.cnf文件，找到下列数据修改之) <br />
　　 # The MySQL server <br />
　　　 [mysqld] <br />
　　　 port　　　= 3306 <br />
　　　 #socket　 = /var/lib/mysql/mysql.sock（原内容，为了更稳妥用&#8220;#&#8221;注释此行） <br />
　　　 socket　 = /home/data/mysql/mysql.sock　　　（加上此行） <br />
<br />
　　 6、修改MySQL启动脚本/etc/rc.d/init.d/mysql <br />
　　 最后，需要修改MySQL启动脚本/etc/rc.d/init.d/mysql，把其中datadir=/var/lib/mysql一行中，等号右边的路径改成你现在的实际存放路径：home/data/mysql。 <br />
　　 [root@test1 etc]# vi　/etc/rc.d/init.d/mysql <br />
　　 #datadir=/var/lib/mysql　　　　（注释此行） <br />
　　 datadir=/home/data/mysql　　 （加上此行） <br />
<br />
　　 7、重新启动MySQL服务 <br />
　　 /etc/rc.d/init.d/mysql　start <br />
　　 或用reboot命令重启Linux <br />
　　 如果工作正常移动就成功了，否则对照前面的7步再检查一下。 <br />
<br />
　　 八、MySQL的常用操作 <br />
<br />
　　 注意：MySQL中每个命令后都要以分号；结尾。 <br />
<br />
　　 1、显示数据库 <br />
　　 mysql&gt; show databases; <br />
　　 +----------+ <br />
　　 | Database | <br />
　　 +----------+ <br />
　　 | mysql　　| <br />
　　 | test　　 | <br />
　　 +----------+ <br />
　　 2 rows in set (0.04 sec) <br />
　　 Mysql刚安装完有两个数据库：mysql和test。mysql库非常重要，它里面有MySQL的系统信息，我们改密码和新增用户，实际上就是用这个库中的相关表进行操作。 <br />
<br />
　　 2、显示数据库中的表 <br />
　　 mysql&gt; use mysql; （打开库，对每个库进行操作就要打开此库，类似于foxpro ） <br />
　　 Database changed <br />
<br />
　　 mysql&gt; show tables; <br />
　　 +-----------------+ <br />
　　 | Tables_in_mysql | <br />
　　 +-----------------+ <br />
　　 | columns_priv　　| <br />
　　 | db　　　　　　　| <br />
　　 | func　　　　　　| <br />
　　 | host　　　　　　| <br />
　　 | tables_priv　　 | <br />
　　 | user　　　　　　| <br />
　　 +-----------------+ <br />
　　 6 rows in set (0.01 sec) <br />
<br />
　　 3、显示数据表的结构： <br />
　　 describe 表名; <br />
<br />
　　 4、显示表中的记录： <br />
　　 select * from 表名; <br />
　　 例如：显示mysql库中user表中的纪录。所有能对MySQL用户操作的用户都在此表中。 <br />
　　 Select * from user; <br />
<br />
　　 5、建库： <br />
　　 create database 库名; <br />
　　 例如：创建一个名字位aaa的库 <br />
　　 mysql&gt; create databases aaa; <br />
6、建表： <br />
　　 use 库名； <br />
　　 create table 表名 (字段设定列表)； <br />
　　 例如：在刚创建的aaa库中建立表name,表中有id(序号，自动增长)，xm（姓名）,xb（性别）,csny（出身年月）四个字段 <br />
　　 use aaa; <br />
　　 mysql&gt; create table name (id int(3) auto_increment not null primary key, xm char(8),xb char(2),csny date); <br />
　　 可以用describe命令察看刚建立的表结构。 <br />
　　 mysql&gt; describe name; <br />
<br />
　　 +-------+---------+------+-----+---------+----------------+ <br />
　　 | Field | Type　　| Null | Key | Default | Extra　　　　　| <br />
　　 +-------+---------+------+-----+---------+----------------+ <br />
　　 | id　　| int(3)　|　　　| PRI | NULL　　| auto_increment | <br />
　　 | xm　　| char(8) | YES　|　　 | NULL　　|　　　　　　　　| <br />
　　 | xb　　| char(2) | YES　|　　 | NULL　　|　　　　　　　　| <br />
　　 | csny　| date　　| YES　|　　 | NULL　　|　　　　　　　　| <br />
　　 +-------+---------+------+-----+---------+----------------+ <br />
<br />
　　 7、增加记录 <br />
　　 例如：增加几条相关纪录。 <br />
　　 mysql&gt; insert into name values('','张三','男','1971-10-01'); <br />
　　 mysql&gt; insert into name values('','白云','女','1972-05-20'); <br />
　　 可用select命令来验证结果。 <br />
　　 mysql&gt; select * from name; <br />
　　 +----+------+------+------------+ <br />
　　 | id | xm　 | xb　 | csny　　　 | <br />
　　 +----+------+------+------------+ <br />
　　 |　1 | 张三 | 男　 | 1971-10-01 | <br />
　　 |　2 | 白云 | 女　 | 1972-05-20 | <br />
　　 +----+------+------+------------+ <br />
<br />
　　 8、修改纪录 <br />
　　 例如：将张三的出生年月改为1971-01-10 <br />
　　 mysql&gt; update name set csny='1971-01-10' where xm='张三'; <br />
<br />
　　 9、删除纪录 <br />
　　 例如：删除张三的纪录。 <br />
　　 mysql&gt; delete from name where xm='张三'; <br />
<br />
　　 10、删库和删表 <br />
　　 drop database 库名; <br />
　　 drop table 表名； <br />
<br />
　　 九、增加MySQL用户 <br />
<br />
　　 格式：grant select on 数据库.* to 用户名@登录主机 identified by "密码" <br />
例1、增加一个用户user_1密码为123，让他可以在任何主机上登录，并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入MySQL，然后键入以下命令： <br />
<br />
　　 mysql&gt; grant select,insert,update,delete on *.* to user_1@"%" Identified by "123"; <br />
例1增加的用户是十分危险的，如果知道了user_1的密码，那么他就可以在网上的任何一台电脑上登录你的MySQL数据库并对你的数据为所欲为了，解决办法见例2。 <br />
<br />
　　例2、增加一个用户user_2密码为123,让此用户只可以在localhost上登录，并可以对数据库aaa进行查询、插入、修改、删除的操作（localhost指本地主机，即MySQL数据库所在的那台主机），这样用户即使用知道user_2的密码，他也无法从网上直接访问数据库，只能通过 MYSQL主机来操作aaa库。 <br />
<br />
　　 mysql&gt;grant select,insert,update,delete on aaa.* to user_2@localhost identified by "123"; <br />
<br />
　　 用新增的用户如果登录不了MySQL，在登录时用如下命令： <br />
<br />
　　 mysql -u user_1 -p　-h 192.168.113.50　（-h后跟的是要登录主机的ip地址） <br />
<br />
　　 十、备份与恢复 <br />
<br />
　　 1、备份 <br />
<br />
　　 例如：将上例创建的aaa库备份到文件back_aaa中 <br />
<br />
　　 [root@test1 root]# cd　/home/data/mysql　(进入到库目录，本例库已由val/lib/mysql转到/home/data/mysql，见上述第七部分内容) <br />
　　 [root@test1 mysql]# mysqldump -u root -p --opt aaa &gt; back_aaa <br />
<br />
　　 2、恢复 <br />
<br />
　　 [root@test mysql]# mysql -u root -p ccc &lt; back_aaa </font></span></div>
<img src ="http://www.blogjava.net/bnlovebn/aggbug/202974.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/bnlovebn/" target="_blank">重归本垒（Bing）</a> 2008-05-26 16:59 <a href="http://www.blogjava.net/bnlovebn/archive/2008/05/26/202974.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SQL Server数据的批量导入外部数据</title><link>http://www.blogjava.net/bnlovebn/archive/2008/05/14/200348.html</link><dc:creator>重归本垒（Bing）</dc:creator><author>重归本垒（Bing）</author><pubDate>Wed, 14 May 2008 02:00:00 GMT</pubDate><guid>http://www.blogjava.net/bnlovebn/archive/2008/05/14/200348.html</guid><wfw:comment>http://www.blogjava.net/bnlovebn/comments/200348.html</wfw:comment><comments>http://www.blogjava.net/bnlovebn/archive/2008/05/14/200348.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/bnlovebn/comments/commentRss/200348.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/bnlovebn/services/trackbacks/200348.html</trackback:ping><description><![CDATA[<p>如果你从事与数据库相关的工作，有可能会涉及到将数据从外部数据文件插入倒SQL Server的操作。本文将为大家演示如何利用BULK INSERT命令来导入数据，并讲解怎样通过改变该命令的一些选项以便更方便且更有效地插入数据。 </p>
<div>
<div class="guanggao"><span><br />
</span></div>
<p>　　如果你从事与数据库相关的工作，有可能会涉及到将数据从外部数据文件插入倒<strong>SQL Server</strong>的操作。本文将为大家演示如何利用<strong>BULK INSERT</strong>命令来导入数据，并讲解怎样通过改变该命令的一些选项以便更方便且更有效地插入数据。</p>
<p>　　<strong>BULK INSERT</strong></p>
<p>　　在SQL Server中，BULK INSERT是用来将外部文件以一种特定的格式加载到数据库表的<a href="http://whatis.ctocio.com.cn/searchwhatis/452/6028452.shtml" target="_bank"><font color="#16387c">T-SQL</font></a>命令。该命令使开发人员能够直接将数据加载到数据库表中，而不需要使用类似于Integration Services这样的外部程序。虽然BULK INSERT不允许包含任何复杂的逻辑或转换，但能够提供与格式化相关的选项，并告诉我们导入是如何实现的。BULK INSERT有一个使用限制，就是只能将数据导入SQL Server。</p>
<p>　　<strong>插入数据</strong></p>
<p>　　下面的例子能让我们更好的理解如何使用BULK INSERT命令。首先，我们来创建一个名为Sales的表，我们将要把来自文本文件的数据插入到这个表中。</p>
<p>
<table class="FCK__ShowTableBorders" style="border-right: #cccccc 1px dotted; table-layout: fixed; border-top: #cccccc 1px dotted; border-left: #cccccc 1px dotted; border-bottom: #cccccc 1px dotted" cellspacing="0" cellpadding="6" width="95%" align="center" border="0">
    <tbody>
        <tr>
            <td style="word-wrap: break-word" bgcolor="#f3f3f3">　　CREATE TABLE [dbo].[Sales] <br />
            　　( <br />
            　　[SaleID] [int], <br />
            　　[Product] [varchar](10) NULL, <br />
            　　[SaleDate] [datetime] NULL, <br />
            　　[SalePrice] [money] NULL <br />
            　　)</td>
        </tr>
    </tbody>
</table>
</p>
<p>　　当我们使用BULK INSERT命令来插入数据时，不要启动目标表中的触发器，因为触发器会减缓数据导入的进程。</p>
<p>　　在下一个例子中，我们将在Sales表上创建触发器，用来打印插入到表中的记录的数量。</p>
<p>
<table class="FCK__ShowTableBorders" style="border-right: #cccccc 1px dotted; table-layout: fixed; border-top: #cccccc 1px dotted; border-left: #cccccc 1px dotted; border-bottom: #cccccc 1px dotted" cellspacing="0" cellpadding="6" width="95%" align="center" border="0">
    <tbody>
        <tr>
            <td style="word-wrap: break-word" bgcolor="#f3f3f3">　　CREATE TRIGGER tr_Sales <br />
            　　ON Sales <br />
            　　FOR INSERT <br />
            　　AS <br />
            　　BEGIN <br />
            　　PRINT CAST(@@ROWCOUNT AS VARCHAR(5)) + ' rows Inserted.' <br />
            　　END</td>
        </tr>
    </tbody>
</table>
</p>
<p>　　这里我们选择文本文件作为源数据文件，文本文件中的值通过逗号分割开。该文件包含1000条记录，而且其字段和Sales表的字段直接关联。由于该文本文件中的值是由逗号分割开的，我们只需要指定FIELDTERMINATOR即可。注意，当下面这条语句运行时，我们刚刚创建的触发器并没有启动：</p>
<p>　　BULK INSERT Sales FROM 'c:SalesText.txt' WITH (FIELDTERMINATOR = ',')</p>
<p>　　当我们要的数据量非常大时，有时候就需要启动触发器。下面的脚本使用了FIRE_TRIGGERS选项来指明在目标表上的任何触发器都应当启动：</p>
<p>　　BULK INSERT Sales FROM 'c:SalesText.txt' WITH (FIELDTERMINATOR = ',', FIRE_TRIGGERS)</p>
<p>　　我们可以使用BATCHSIZE指令来设置在单个事务中可以插入到表中的记录的数量。在前一个例子中，所有的1000条记录都在同一个事务中被插入到目标表里。下面的例子，我们将BATCHSIZE参数设置为2，也就是说要对该表执行500次独立的插入事务。这也意味着启动500次触发器，所以将有500咯打印指令输出到屏幕上。</p>
<h5>　　如果你从事与数据库相关的工作，有可能会涉及到将数据从外部数据文件插入倒SQL Server的操作。本文将为大家演示如何利用BULK INSERT命令来导入数据，并讲解怎样通过改变该命令的一些选项以便更方便且更有效地插入数据。</h5>
<div>
<div class="guanggao"><span><br />
</span></div>
<p>&nbsp;</p>
<p>　　BULK INSERT Sales FROM 'c:SalesText.txt' WITH (FIELDTERMINATOR = ',', FIRE_TRIGGERS, BATCHSIZE = 2)</p>
<p>　　BULK INSERT不仅仅可以应用于SQL Server 2005的本地映射驱动器。下面的语句将告诉我们如何从名为FileServer的服务器的D盘中将SalesText文件的数据导入。</p>
<p>　　BULK INSERT Sales FROM 'FileServerD$SalesText.txt' WITH (FIELDTERMINATOR = ',')</p>
<p>　　有时候，我们在执行导入操作以前，最好能先查看一下将要输入的数据。下面的语句在使用BULK命令时，使用了OPENROWSET函数，以便从SalesText文本文件中读取源数据。该语句同时还需要使用一个格式文件(此处没有列出文件的具体内容)来表明该文本文件中的数据格式。</p>
<p>
<table class="FCK__ShowTableBorders" style="border-right: #cccccc 1px dotted; table-layout: fixed; border-top: #cccccc 1px dotted; border-left: #cccccc 1px dotted; border-bottom: #cccccc 1px dotted" cellspacing="0" cellpadding="6" width="95%" align="center" border="0">
    <tbody>
        <tr>
            <td style="word-wrap: break-word" bgcolor="#f3f3f3">　　SELECT * <br />
            　　FROM OPENROWSET(BULK 'c:SalesText.txt' , <br />
            　　FORMATFILE='C:SalesFormat.Xml' <br />
            　　) AS mytable; <br />
            　　GO</td>
        </tr>
    </tbody>
</table>
</p>
<p>&nbsp;</p>
</div>
</div>
<p><br />
&nbsp;</p>
<img src ="http://www.blogjava.net/bnlovebn/aggbug/200348.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/bnlovebn/" target="_blank">重归本垒（Bing）</a> 2008-05-14 10:00 <a href="http://www.blogjava.net/bnlovebn/archive/2008/05/14/200348.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ibatis动态查询条件 </title><link>http://www.blogjava.net/bnlovebn/archive/2008/04/17/193688.html</link><dc:creator>重归本垒（Bing）</dc:creator><author>重归本垒（Bing）</author><pubDate>Thu, 17 Apr 2008 03:30:00 GMT</pubDate><guid>http://www.blogjava.net/bnlovebn/archive/2008/04/17/193688.html</guid><wfw:comment>http://www.blogjava.net/bnlovebn/comments/193688.html</wfw:comment><comments>http://www.blogjava.net/bnlovebn/archive/2008/04/17/193688.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/bnlovebn/comments/commentRss/193688.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/bnlovebn/services/trackbacks/193688.html</trackback:ping><description><![CDATA[<p>&lt;select id="SelectEemployee" parameterClass="string" resultMap = "employee-result"&gt; </p>
<p align="left"><span style="font-size: 12pt; font-family: 宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; select * from employee </span></p>
<p align="left"><span style="font-size: 12pt; font-family: 宋体">//</span><span style="font-size: 12pt; font-family: 宋体">动态SQL语句</span></p>
<p align="left"><span style="font-size: 12pt; font-family: 宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<font color="#ff0000">&lt;dynamic prepend="WHERE"&gt;</font></span></p>
<p align="left"><span style="font-size: 12pt; font-family: 宋体"><font color="#ff0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;isParameterPresent&gt;</font></span></p>
<p align="left"><span style="font-size: 12pt; font-family: 宋体"><font color="#ff0000">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; emp_id = #value#</font></span></p>
<p align="left"><span style="font-size: 12pt; font-family: 宋体"><font color="#ff0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;/isParameterPresent&gt;</font></span></p>
<p align="left"><span style="font-size: 12pt; font-family: 宋体"><font color="#ff0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;/dynamic&gt;</font></span></p>
<p align="left"><span style="font-size: 12pt; font-family: 宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/select&gt;</span></p>
<p align="left"><span style="font-size: 12pt; font-family: 宋体">&nbsp;&nbsp;&nbsp; &lt;/statements&gt;</span></p>
<p><span style="font-size: 12pt; font-family: 宋体">&lt;/sqlMap&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>
<p><span style="font-size: 12pt; font-family: 宋体">/*</span><span style="font-size: 12pt; font-family: 宋体">动态SQL的写法：</span></p>
<p><span style="font-size: 12pt; font-family: 宋体">开始 &lt;dynamic </span></p>
<p><span style="font-size: 12pt; font-family: 宋体">条件成立时前面要加的字符串 prepend ="字符串"&gt;</span></p>
<p><span style="font-size: 12pt; font-family: 宋体">&lt;</span><span style="font-size: 12pt; font-family: 宋体">属性关键字&nbsp;(见下表)</span></p>
<p><span style="font-size: 12pt; font-family: 宋体">prepend="</span><span style="font-size: 12pt; font-family: 宋体">字符串"</span></p>
<p><span style="font-size: 12pt; font-family: 宋体">判断条件的对象属性名 property="字符串"</span></p>
<p><span style="font-size: 12pt; font-family: 宋体">如果是属性关键字是比较条件时,字符串存放要比较的值compareValue="字符串"&gt;</span></p>
<p><span style="font-size: 12pt; font-family: 宋体">要显示的条件名</span></p>
<p><span style="font-size: 12pt; font-family: 宋体">&lt;/</span><span style="font-size: 12pt; font-family: 宋体">属性关键字&gt;</span></p>
<p><span style="font-size: 12pt; font-family: 宋体">结束&lt;/dynamic&gt;</span></p>
<p><span style="font-size: 12pt; font-family: 宋体">*/</span></p>
<p><span style="font-size: 12pt; font-family: 宋体">/*</span><span style="font-size: 12pt; font-family: 宋体">动态SQL的参数有</span></p>
<p>
<table style="border-right: medium none; border-top: medium none; margin: auto auto auto 17.95pt; border-left: medium none; border-bottom: medium none; border-collapse: collapse" cellspacing="0" cellpadding="0" border="1">
    <tbody>
        <tr>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: windowtext 1pt solid; padding-left: 5.4pt; padding-bottom: 0cm; border-left: windowtext 1pt solid; width: 131.45pt; padding-top: 0cm; border-bottom: windowtext 1pt solid" valign="top">
            <p><span style="font-size: 12pt; font-family: 宋体">属性关键字</span></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: windowtext 1pt solid; padding-left: 5.4pt; border-left-color: #d4d0c8; padding-bottom: 0cm; width: 276.7pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; background-color: transparent" valign="top">
            <p><span style="font-size: 12pt; font-family: 宋体">含义</span></p>
            </td>
        </tr>
        <tr>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: windowtext 1pt solid; width: 131.45pt; border-top-color: #d4d0c8; padding-top: 0cm; border-bottom: windowtext 1pt solid">
            <p><font face="Times New Roman"><span style="color: #ff6600">&lt;isEqual&gt;</span></font></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #d4d0c8; padding-bottom: 0cm; width: 276.7pt; border-top-color: #d4d0c8; padding-top: 0cm; border-bottom: windowtext 1pt solid; background-color: transparent">
            <p><span style="font-size: 12pt; color: #ff6600; font-family: 宋体">如果参数相等于值</span><span style="font-size: 12pt; color: black; font-family: 宋体">则查询条件有效。</span></p>
            </td>
        </tr>
        <tr>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: windowtext 1pt solid; width: 131.45pt; border-top-color: #d4d0c8; padding-top: 0cm; border-bottom: windowtext 1pt solid">
            <p><font face="Times New Roman">&lt;isNotEqual&gt;</font></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #d4d0c8; padding-bottom: 0cm; width: 276.7pt; border-top-color: #d4d0c8; padding-top: 0cm; border-bottom: windowtext 1pt solid; background-color: transparent">
            <p><span style="font-size: 12pt; color: black; font-family: 宋体">如果参数不等于值则查询条件有效。</span></p>
            </td>
        </tr>
        <tr>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: windowtext 1pt solid; width: 131.45pt; border-top-color: #d4d0c8; padding-top: 0cm; border-bottom: windowtext 1pt solid">
            <p><font face="Times New Roman"><span style="color: #ff6600">&lt;isGreaterThan&gt;</span></font></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #d4d0c8; padding-bottom: 0cm; width: 276.7pt; border-top-color: #d4d0c8; padding-top: 0cm; border-bottom: windowtext 1pt solid; background-color: transparent">
            <p><span style="font-size: 12pt; color: black; font-family: 宋体">如果参数大于值则查询条件有效。</span></p>
            </td>
        </tr>
        <tr>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: windowtext 1pt solid; width: 131.45pt; border-top-color: #d4d0c8; padding-top: 0cm; border-bottom: windowtext 1pt solid">
            <p><font face="Times New Roman">&lt;isGreaterEqual&gt;</font></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #d4d0c8; padding-bottom: 0cm; width: 276.7pt; border-top-color: #d4d0c8; padding-top: 0cm; border-bottom: windowtext 1pt solid; background-color: transparent">
            <p><span style="font-size: 12pt; color: black; font-family: 宋体">如果参数等于值则查询条件有效。</span></p>
            </td>
        </tr>
        <tr>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: windowtext 1pt solid; width: 131.45pt; border-top-color: #d4d0c8; padding-top: 0cm; border-bottom: windowtext 1pt solid">
            <p><font face="Times New Roman">&lt;isLessEqual&gt;</font></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #d4d0c8; padding-bottom: 0cm; width: 276.7pt; border-top-color: #d4d0c8; padding-top: 0cm; border-bottom: windowtext 1pt solid; background-color: transparent">
            <p><span style="font-family: 宋体">如果参数小于值则查询条件有效。如下所示：</span></p>
            <p><font face="Times New Roman">&lt;isLessEqual prepend = &#8221;AND&#8221; property = &#8221;age&#8221; compareValue = &#8221;18&#8221; &gt;</font></p>
            <p><font face="Times New Roman">ADOLESCENT = &#8216;TRUE&#8217;</font></p>
            <p><font face="Times New Roman">&lt;/isLessEqual&gt;</font></p>
            </td>
        </tr>
        <tr>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: windowtext 1pt solid; width: 131.45pt; border-top-color: #d4d0c8; padding-top: 0cm; border-bottom: windowtext 1pt solid">
            <p><font face="Times New Roman">&lt;isPropertyAvailable&gt;</font></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #d4d0c8; padding-bottom: 0cm; width: 276.7pt; border-top-color: #d4d0c8; padding-top: 0cm; border-bottom: windowtext 1pt solid; background-color: transparent">
            <p><span style="font-size: 12pt; color: black; font-family: 宋体">如果参数有使用则查询条件有效。</span></p>
            </td>
        </tr>
        <tr>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: windowtext 1pt solid; width: 131.45pt; border-top-color: #d4d0c8; padding-top: 0cm; border-bottom: windowtext 1pt solid">
            <p><font face="Times New Roman">&lt;isNotPropertyAvailable&gt;</font></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #d4d0c8; padding-bottom: 0cm; width: 276.7pt; border-top-color: #d4d0c8; padding-top: 0cm; border-bottom: windowtext 1pt solid; background-color: transparent">
            <p><span style="font-size: 12pt; color: black; font-family: 宋体">如果参数没有使用则查询条件有效。</span></p>
            </td>
        </tr>
        <tr>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: windowtext 1pt solid; width: 131.45pt; border-top-color: #d4d0c8; padding-top: 0cm; border-bottom: windowtext 1pt solid">
            <p><font face="Times New Roman">&lt;isNull&gt;</font></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #d4d0c8; padding-bottom: 0cm; width: 276.7pt; border-top-color: #d4d0c8; padding-top: 0cm; border-bottom: windowtext 1pt solid; background-color: transparent">
            <p><span style="font-size: 12pt; color: black; font-family: 宋体">如果参数为NULL则查询条件有效。</span></p>
            </td>
        </tr>
        <tr>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: windowtext 1pt solid; width: 131.45pt; border-top-color: #d4d0c8; padding-top: 0cm; border-bottom: windowtext 1pt solid">
            <p><font face="Times New Roman">&lt;isNotNull&gt;</font></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #d4d0c8; padding-bottom: 0cm; width: 276.7pt; border-top-color: #d4d0c8; padding-top: 0cm; border-bottom: windowtext 1pt solid; background-color: transparent">
            <p><span style="font-size: 12pt; color: black; font-family: 宋体">如果参数不为NULL则查询条件有效。</span></p>
            </td>
        </tr>
        <tr>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: windowtext 1pt solid; width: 131.45pt; border-top-color: #d4d0c8; padding-top: 0cm; border-bottom: windowtext 1pt solid">
            <p><font face="Times New Roman">&lt;isEmpty&gt;</font></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #d4d0c8; padding-bottom: 0cm; width: 276.7pt; border-top-color: #d4d0c8; padding-top: 0cm; border-bottom: windowtext 1pt solid; background-color: transparent">
            <p><span style="font-size: 12pt; color: black; font-family: 宋体">如果参数为空则查询条件有效。</span></p>
            </td>
        </tr>
        <tr>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: windowtext 1pt solid; width: 131.45pt; border-top-color: #d4d0c8; padding-top: 0cm; border-bottom: windowtext 1pt solid">
            <p><span style="color: #ff6600"><font face="Times New Roman">&lt;isNotEmpty&gt;</font></span></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #d4d0c8; padding-bottom: 0cm; width: 276.7pt; border-top-color: #d4d0c8; padding-top: 0cm; border-bottom: windowtext 1pt solid; background-color: transparent">
            <p><span style="font-size: 12pt; color: #ff6600; font-family: 宋体">如果参数不为空则查询条件有效</span><span style="font-size: 12pt; color: black; font-family: 宋体">。参数的数据类型为</span><font face="Times New Roman">Collection</font><span style="font-family: 宋体">、</span><font face="Times New Roman">String </font><span style="font-family: 宋体">时参数不为</span><font face="Times New Roman">NULL</font><span style="font-family: 宋体">或&#8220;&#8221;。如下所示：</span></p>
            <p><font face="Times New Roman">&lt;isNotEmpty prepend=&#8221;AND&#8221; property=&#8221;firstName&#8221; &gt;</font></p>
            <p><font face="Times New Roman">FIRST_NAME=#firstName#</font></p>
            <p><font face="Times New Roman">&lt;/isNotEmpty&gt;</font></p>
            </td>
        </tr>
        <tr>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: windowtext 1pt solid; width: 131.45pt; border-top-color: #d4d0c8; padding-top: 0cm; border-bottom: windowtext 1pt solid">
            <p><font face="Times New Roman"><span style="color: #ff6600">&lt;isParameterPresent&gt;</span></font></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #d4d0c8; padding-bottom: 0cm; width: 276.7pt; border-top-color: #d4d0c8; padding-top: 0cm; border-bottom: windowtext 1pt solid; background-color: transparent">
            <p><span style="font-size: 12pt; color: #ff6600; font-family: 宋体">如果参数类不为NULL</span><span style="font-size: 12pt; color: black; font-family: 宋体">则查询条件有效。</span></p>
            </td>
        </tr>
        <tr>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: windowtext 1pt solid; width: 131.45pt; border-top-color: #d4d0c8; padding-top: 0cm; border-bottom: windowtext 1pt solid">
            <p><font face="Times New Roman">&lt;isNotParameterPresent&gt;</font></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #d4d0c8; padding-bottom: 0cm; width: 276.7pt; border-top-color: #d4d0c8; padding-top: 0cm; border-bottom: windowtext 1pt solid; background-color: transparent">
            <p><font face="Times New Roman">Checks to see if the parameter object is not present (null). Example Usage:</font></p>
            <p><font face="Times New Roman">&lt;isNotParameterPresent prepend=&#8221;AND&#8221;&gt;</font></p>
            <p><font face="Times New Roman">EMPLOYEE_TYPE = &#8216;DEFAULT&#8217;</font></p>
            <p><font face="Times New Roman">&lt;/isNotParameterPresent&gt;</font></p>
            </td>
        </tr>
    </tbody>
</table>
&nbsp;<br />
</p>
<img src ="http://www.blogjava.net/bnlovebn/aggbug/193688.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/bnlovebn/" target="_blank">重归本垒（Bing）</a> 2008-04-17 11:30 <a href="http://www.blogjava.net/bnlovebn/archive/2008/04/17/193688.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用 TRUNCATE TABLE 删除所有行</title><link>http://www.blogjava.net/bnlovebn/archive/2008/03/11/185452.html</link><dc:creator>重归本垒（Bing）</dc:creator><author>重归本垒（Bing）</author><pubDate>Tue, 11 Mar 2008 10:16:00 GMT</pubDate><guid>http://www.blogjava.net/bnlovebn/archive/2008/03/11/185452.html</guid><wfw:comment>http://www.blogjava.net/bnlovebn/comments/185452.html</wfw:comment><comments>http://www.blogjava.net/bnlovebn/archive/2008/03/11/185452.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/bnlovebn/comments/commentRss/185452.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/bnlovebn/services/trackbacks/185452.html</trackback:ping><description><![CDATA[<strong>Truncate是SQL中的一个删除数据表内容的语句，用法是：</strong><br />
<strong>TRUNCATE TABLE [Table Name]。</strong><br />
&nbsp; &nbsp;下面是对Truncate语句在MSSQLServer2000中用法和原理的说明：<br />
Truncate table 表名 速度快,而且效率高,因为: <br />
TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同：二者均删除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快，且使用的系统和事务日志资源少。 <br />
DELETE 语句每次删除一行，并在事务日志中为所删除的每行记录一项。TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据，并且只在事务日志中记录页的释放。 <br />
TRUNCATE TABLE 删除表中的所有行，但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。如果想保留标识计数值，请改用 DELETE。如果要删除表定义及其数据，请使用 DROP TABLE 语句。 <br />
对于由 FOREIGN KEY 约束引用的表，不能使用 TRUNCATE TABLE，而应使用不带 WHERE 子句的 DELETE 语句。由于 TRUNCATE TABLE 不记录在日志中，所以它不能激活触发器。 <br />
TRUNCATE TABLE 不能用于参与了索引视图的表。<br />
<img src ="http://www.blogjava.net/bnlovebn/aggbug/185452.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/bnlovebn/" target="_blank">重归本垒（Bing）</a> 2008-03-11 18:16 <a href="http://www.blogjava.net/bnlovebn/archive/2008/03/11/185452.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>LOAD DATA INFILE句法[转]</title><link>http://www.blogjava.net/bnlovebn/archive/2008/03/11/185450.html</link><dc:creator>重归本垒（Bing）</dc:creator><author>重归本垒（Bing）</author><pubDate>Tue, 11 Mar 2008 10:12:00 GMT</pubDate><guid>http://www.blogjava.net/bnlovebn/archive/2008/03/11/185450.html</guid><wfw:comment>http://www.blogjava.net/bnlovebn/comments/185450.html</wfw:comment><comments>http://www.blogjava.net/bnlovebn/archive/2008/03/11/185450.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/bnlovebn/comments/commentRss/185450.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/bnlovebn/services/trackbacks/185450.html</trackback:ping><description><![CDATA[LOAD DATA [LOW_PRIORITY] [LOCAL] INFILE 'file_name.txt' [REPLACE | IGNORE]<br />
&nbsp;&nbsp;&nbsp; INTO TABLE tbl_name<br />
&nbsp;&nbsp;&nbsp; [FIELDS<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [TERMINATED BY '\t']<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [OPTIONALLY] ENCLOSED BY '']<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [ESCAPED BY '\\' ]]<br />
&nbsp;&nbsp;&nbsp; [LINES TERMINATED BY '\n']<br />
&nbsp;&nbsp;&nbsp; [IGNORE number LINES]<br />
&nbsp;&nbsp;&nbsp; [(col_name,...)]
<p>LOAD DATA INFILE语句从一个文本文件中以很高的速度读入一个表中。如果指定LOCAL关键词，从客户主机读文件。如果LOCAL没指定，文件必须位于<a title="服务器" style="color: #000000" href="http://server.it168.com/" target="_blank">服务器</a>上。(LOCAL在MySQL3.22.6或以后版本中可用。）</p>
<p>为了<a title="安全" style="color: #000000" href="http://safe.it168.com/" target="_blank">安全</a>原因，当读取位于服务器上的文本文件时，文件必须处于数据库目录或可被所有人读取。另外，为了对服务器上文件使用LOAD DATA INFILE，在服务器主机上你必须有file的权限。见6.5 由MySQL提供的权限。 </p>
<p>如果你指定关键词LOW_PRIORITY，LOAD DATA语句的执行被推迟到没有其他客户读取表后。 </p>
<p>使用LOCAL将比让服务器直接存取文件慢些，因为文件的内容必须从客户主机传送到服务器主机。在另一方面，你不需要file权限装载本地文件。 </p>
<p>你也可以使用mysqlimport实用程序装载数据文件；它由发送一个LOAD DATA INFILE命令到服务器来运作。 --local选项使得mysqlimport从客户主机上读取数据。如果客户和服务器支持压缩协议，你能指定--compress在较慢的<a title="网络" style="color: #000000" href="http://net.it168.com/" target="_blank">网络</a>上获得更好的性能。 </p>
<p>当在服务器主机上寻找文件时，服务器使用下列规则： </p>
<p>如果给出一个绝对路径名，服务器使用该路径名。 <br />
如果给出一个有一个或多个前置部件的相对路径名，服务器相对服务器的数据目录搜索文件。 <br />
如果给出一个没有前置部件的一个文件名，服务器在当前数据库的数据库目录寻找文件。 <br />
注意这些规则意味着一个像&#8220;./myfile.txt&#8221;给出的文件是从服务器的数据目录读取，而作为&#8220;myfile.txt&#8221;给出的一个文件是从当前数据库的数据库目录下读取。也要注意，对于下列哪些语句，对db1文件从数据库目录读取，而不是db2： </p>
<p>mysql&gt; USE db1;<br />
mysql&gt; LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; </p>
<p>REPLACE和IGNORE关键词控制对现有的唯一键记录的重复的处理。如果你指定REPLACE，新行将代替有相同的唯一键值的现有行。如果你指定IGNORE，跳过有唯一键的现有行的重复行的输入。如果你不指定任何一个选项，当找到重复键键时，出现一个错误，并且文本文件的余下部分被忽略时。 </p>
<p>如果你使用LOCAL关键词从一个本地文件装载数据，服务器没有办法在操作的当中停止文件的传输，因此缺省的行为好像IGNORE被指定一样。 </p>
<p>LOAD DATA INFILE是SELECT ... INTO OUTFILE的逆操作，<br />
SELECT句法。为了将一个数据库的数据写入一个文件，使用SELECT ... INTO OUTFILE，为了将文件读回数据库，使用LOAD DATA INFILE。两个命令的FIELDS和LINES子句的语法是相同的。两个子句是可选的，但是如果指定两个，FIELDS必须在LINES之前。 </p>
<p>如果你指定一个FIELDS子句，它的每一个子句(TERMINATED BY, [OPTIONALLY] ENCLOSED BY和ESCAPED BY)也是可选的，除了你必须至少指定他们之一。 </p>
<p>如果你不指定一个FIELDS子句，缺省值与如果你这样写的相同： </p>
<p>FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'</p>
<p>如果你不指定一个LINES子句，缺省值与如果你这样写的相同： </p>
<p>LINES TERMINATED BY '\n' <br />
换句话说，缺省值导致读取输入时，LOAD DATA INFILE表现如下： </p>
<p>在换行符处寻找行边界 <br />
在定位符处将行分进字段 <br />
不要期望字段由任何引号字符封装 <br />
将由&#8220;\&#8221;开头的定位符、换行符或&#8220;\&#8221;解释是字段值的部分字面字符 <br />
相反，缺省值导致在写入输出时，SELECT ... INTO OUTFILE表现如下： </p>
<p>在字段之间写定位符 <br />
不用任何引号字符封装字段 <br />
使用&#8220;\&#8221;转义出现在字段中的定位符、换行符或&#8220;\&#8221;字符 <br />
在行尾处写换行符 <br />
注意，为了写入FIELDS ESCAPED BY '\\'，对作为一条单个的反斜线被读取的值，你必须指定2条反斜线值。 </p>
<p>IGNORE number LINES选项可被用来忽略在文件开始的一个列名字的头： </p>
<p>mysql&gt; LOAD DATA INFILE "/tmp/file_name" into table test IGNORE 1 LINES;</p>
<p>当你与LOAD DATA INFILE一起使用SELECT ... INTO OUTFILE将一个数据库的数据写进一个文件并且随后马上将文件读回数据库时，两个命令的字段和处理选项必须匹配，否则，LOAD DATA INFILE将不能正确解释文件的内容。假定你使用SELECT ... INTO OUTFILE将由逗号分隔的字段写入一个文件： </p>
<p>mysql&gt; SELECT * FROM table1 INTO OUTFILE 'data.txt'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FIELDS TERMINATED BY ','<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FROM ...</p>
<p>为了将由逗号分隔的文件读回来，正确的语句将是： </p>
<p>mysql&gt; LOAD DATA INFILE 'data.txt' INTO TABLE table2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FIELDS TERMINATED BY ',';</p>
<p>相反，如果你试图用下面显示的语句读取文件，它不会工作，因为它命令LOAD DATA INFILE在字段之间寻找定位符： </p>
<p>mysql&gt; LOAD DATA INFILE 'data.txt' INTO TABLE table2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FIELDS TERMINATED BY '\t';</p>
<p>可能的结果是每个输入行将被解释为单个的字段。</p>
<p>LOAD DATA INFILE能被用来读取从外部来源获得的文件。例如，以dBASE格式的文件将有由逗号分隔并用双引号包围的字段。如果文件中的行由换行符终止，下面显示的命令说明你将用来装载文件的字段和行处理选项： </p>
<p>mysql&gt; LOAD DATA INFILE 'data.txt' INTO TABLE tbl_name<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FIELDS TERMINATED BY ',' ENCLOSED BY '"'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LINES TERMINATED BY '\n';</p>
<p>任何字段或行处理选项可以指定一个空字符串('')。如果不是空，FIELDS [OPTIONALLY] ENCLOSED BY和FIELDS ESCAPED BY值必须是一个单个字符。FIELDS TERMINATED BY和LINES TERMINATED BY值可以是超过一个字符。例如，写入由回车换行符对（CR+LF）终止的行，或读取包含这样行的一个文件，指定一个LINES TERMINATED BY '\r\n'子句。 </p>
<p>FIELDS [OPTIONALLY] ENCLOSED BY控制字段的包围字符。对于输出(SELECT ... INTO OUTFILE)，如果你省略OPTIONALLY，所有的字段由ENCLOSED BY字符包围。对于这样的输出的一个例子(使用一个逗号作为字段分隔符)显示在下面： </p>
<p>"1","a string","100.20"<br />
"2","a string containing a , comma","102.20"<br />
"3","a string containing a \" quote","102.20"<br />
"4","a string containing a \", quote and comma","102.20"</p>
<p>如果你指定OPTIONALLY，ENCLOSED BY字符仅被用于包围CHAR和VARCHAR字段： </p>
<p>1,"a string",100.20<br />
2,"a string containing a , comma",102.20<br />
3,"a string containing a \" quote",102.20<br />
4,"a string containing a \", quote and comma",102.20</p>
<p>注意，一个字段值中的ENCLOSED BY字符的出现通过用ESCAPED BY字符作为其前缀来转义。也要注意，如果你指定一个空ESCAPED BY值，可能产生不能被LOAD DATA INFILE正确读出的输出。例如，如果转义字符为空，上面显示的输出显示如下。注意到在第四行的第二个字段包含跟随引号的一个逗号，它(错误地)好象要终止字段： </p>
<p>1,"a string",100.20<br />
2,"a string containing a , comma",102.20<br />
3,"a string containing a " quote",102.20<br />
4,"a string containing a ", quote and comma",102.20</p>
<p>对于输入，ENCLOSED BY字符如果存在，它从字段值的尾部被剥去。（不管是否指定OPTIONALLY都是这样；OPTIONALLY对于输入解释不起作用)由ENCLOSED BY字符领先的ESCAPED BY字符出现被解释为当前字段值的一部分。另外，出现在字段中重复的ENCLOSED BY被解释为单个ENCLOSED BY字符，如果字段本身以该字符开始。例如，如果ENCLOSED BY '"'被指定，引号如下处理： </p>
<p>"The ""BIG"" boss"&nbsp; -&gt; The "BIG" boss<br />
The "BIG" boss&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&gt; The "BIG" boss<br />
The ""BIG"" boss&nbsp;&nbsp;&nbsp; -&gt; The ""BIG"" boss</p>
<p>FIELDS ESCAPED BY控制如何写入或读出特殊字符。如果FIELDS ESCAPED BY字符不是空的，它被用于前缀在输出上的下列字符： </p>
<p>FIELDS ESCAPED BY字符 <br />
FIELDS [OPTIONALLY] ENCLOSED BY字符 <br />
FIELDS TERMINATED BY和LINES TERMINATED BY值的第一个字符 <br />
ASCII 0（实际上将后续转义字符写成 ASCII'0'，而不是一个零值字节） <br />
如果FIELDS ESCAPED BY字符是空的，没有字符被转义。指定一个空转义字符可能不是一个好主意，特别是如果在你数据中的字段值包含刚才给出的表中的任何字符。 </p>
<p>对于输入，如果FIELDS ESCAPED BY字符不是空的，该字符的出现被剥去并且后续字符在字面上作为字段值的一个部分。例外是一个转义的&#8220;0&#8221;或&#8220;N&#8221;（即，\0或\N，如果转义字符是&#8220;\&#8221;)。这些序列被解释为ASCII 0（一个零值字节）和NULL。见下面关于NULL处理的规则。 </p>
<p>对于更多关于&#8220;\&#8221;- 转义句法的信息，在某些情况下，字段和行处理选项相互作用： </p>
<p>如果LINES TERMINATED BY是一个空字符串并且FIELDS TERMINATED BY是非空的，行也用FIELDS TERMINATED BY终止。 <br />
如果FIELDS TERMINATED BY和FIELDS ENCLOSED BY值都是空的('')，一个固定行(非限定的)格式被使用。用固定行格式，在字段之间不使用分隔符。相反，列值只用列的&#8220;显示&#8221;宽度被写入和读出。例如，如果列被声明为INT(7)，列的值使用7个字符的字段被写入。对于输入，列值通过读取7个字符获得。固定行格式也影响NULL值的处理；见下面。注意如果你正在使用一个多字节字符集，固定长度格式将不工作。 <br />
NULL值的处理有多种，取决于你使用的FIELDS和LINES选项： </p>
<p>对于缺省FIELDS和LINES值，对输出，NULL被写成\N，对输入，\N被作为NULL读入(假定ESCAPED BY字符是&#8220;\&#8221;)。 <br />
如果FIELDS ENCLOSED BY不是空的，包含以文字词的NULL作为它的值的字段作为一个NULL值被读入(这不同于包围在FIELDS ENCLOSED BY字符中的字NULL，它作为字符串'NULL'读入)。 <br />
如果FIELDS ESCAPED BY是空的，NULL作为字NULL被写入。 <br />
用固定行格式(它发生在FIELDS TERMINATED BY和FIELDS ENCLOSED BY都是空的时候)，NULL作为一个空字符串被写入。注意，在写入文件时，这导致NULL和空字符串在表中不能区分，因为他们都作为空字符串被写入。如果在读回文件时需要能区分这两者，你应该不使用固定行格式。 <br />
一些不被LOAD DATA INFILE支持的情况： </p>
<p>固定长度的行(FIELDS TERMINATED BY和FIELDS ENCLOSED BY都为空)和BLOB或TEXT列。 <br />
如果你指定一个分隔符与另一个相同，或是另一个的前缀，LOAD DATA INFILE不能正确地解释输入。例如，下列FIELDS子句将导致问题： <br />
FIELDS TERMINATED BY '"' ENCLOSED BY '"'</p>
<p>如果FIELDS ESCAPED BY是空的，一个包含跟随FIELDS TERMINATED BY值之后的FIELDS ENCLOSED BY或LINES TERMINATED BY的字段值将使得LOAD DATA INFILE过早地终止读取一个字段或行。这是因为LOAD DATA INFILE不能正确地决定字段或行值在哪儿结束。 <br />
下列例子装载所有persondata表的行： </p>
<p>mysql&gt; LOAD DATA INFILE 'persondata.txt' INTO TABLE persondata;</p>
<p>没有指定字段表，所以LOAD DATA INFILE期望输入行对每个表列包含一个字段。使用缺省FIELDS和LINES值。 </p>
<p>如果你希望仅仅装载一张表的某些列，指定一个字段表： </p>
<p>mysql&gt; LOAD DATA INFILE 'persondata.txt'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; INTO TABLE persondata (col1,col2,...);</p>
<p>如果在输入文件中的字段顺序不同于表中列的顺序，你也必须指定一个字段表。否则，MySQL不能知道如何匹配输入字段和表中的列。 </p>
<p>如果一个行有很少的字段，对于不存在输入字段的列被设置为缺省值。</p>
<p>如果字段值缺省，空字段值有不同的解释： </p>
<p>对于字符串类型，列被设置为空字符串。 <br />
对于数字类型，列被设置为0。 <br />
对于日期和时间类型，列被设置为该类型的适当&#8220;零&#8221;值。 <br />
如果列有一个NULL，或(只对第一个TIMESTAMP列)在指定一个字段表时，如果TIMESTAMP列从字段表省掉，TIMESTAMP列只被设置为当前的日期和时间。 </p>
<p>如果输入行有太多的字段，多余的字段被忽略并且警告数字加1。 </p>
<p>LOAD DATA INFILE认为所有的输入是字符串，因此你不能像你能用INSERT语句的ENUM或SET列的方式使用数字值。所有的ENUM和SET值必须作为字符串被指定！ </p>
<p>如果你正在使用C API，当LOAD DATA INFILE查询完成时，你可通过调用API函数mysql_info()得到有关查询的信息。信息字符串的格式显示在下面： </p>
<p>Records: 1 Deleted: 0 Skipped: 0 Warnings: 0<br />
当值通过INSERT语句插入时，在某些情况下出现警告，除了在输入行中有太少或太多的字段时，LOAD DATA INFILE也产生警告。警告没被<a title="存储" style="color: #000000" href="http://storage.it168.com/" target="_blank">存储</a>在任何地方；警告数字仅能用于表明一切是否顺利。如果你得到警告并且想要确切知道你为什么得到他们，一个方法是使用SELECT ... INTO OUTFILE到另外一个文件并且把它与你的原版输入文件比较。</p>
<p>&nbsp;</p>
<img src ="http://www.blogjava.net/bnlovebn/aggbug/185450.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/bnlovebn/" target="_blank">重归本垒（Bing）</a> 2008-03-11 18:12 <a href="http://www.blogjava.net/bnlovebn/archive/2008/03/11/185450.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>未与信任SQL Server连接相关联的解决方法</title><link>http://www.blogjava.net/bnlovebn/archive/2007/06/25/126110.html</link><dc:creator>重归本垒（Bing）</dc:creator><author>重归本垒（Bing）</author><pubDate>Mon, 25 Jun 2007 07:06:00 GMT</pubDate><guid>http://www.blogjava.net/bnlovebn/archive/2007/06/25/126110.html</guid><wfw:comment>http://www.blogjava.net/bnlovebn/comments/126110.html</wfw:comment><comments>http://www.blogjava.net/bnlovebn/archive/2007/06/25/126110.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/bnlovebn/comments/commentRss/126110.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/bnlovebn/services/trackbacks/126110.html</trackback:ping><description><![CDATA[<p><br>建好SQL数据库，设置好了用户名与密码，连接也好了，却出现了上述问题， 原困是未设置SQL SERVER登录认证模式为混合认证模式，因为SQL SERVER默认安装后认证模式为WINDOWS认证模式，从而导致出错。</p>
<p>解决方法：<br>'www.knowsky.com<br>启动SQLSERVER企业管理器，选择要进行认证模式设置的服务器。右击该服务器，在弹出菜单中选择属性，SQL SERVER将弹出属性对话框 <br>&nbsp;</p>
<p>在属性对话框中选择安全性选项，在身份验证处选择&#8220;SQL Server和Windows&#8221;，然后确定。 <br></p>
<img src ="http://www.blogjava.net/bnlovebn/aggbug/126110.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/bnlovebn/" target="_blank">重归本垒（Bing）</a> 2007-06-25 15:06 <a href="http://www.blogjava.net/bnlovebn/archive/2007/06/25/126110.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>数字或值错误</title><link>http://www.blogjava.net/bnlovebn/archive/2007/05/21/118956.html</link><dc:creator>重归本垒（Bing）</dc:creator><author>重归本垒（Bing）</author><pubDate>Mon, 21 May 2007 10:21:00 GMT</pubDate><guid>http://www.blogjava.net/bnlovebn/archive/2007/05/21/118956.html</guid><wfw:comment>http://www.blogjava.net/bnlovebn/comments/118956.html</wfw:comment><comments>http://www.blogjava.net/bnlovebn/archive/2007/05/21/118956.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/bnlovebn/comments/commentRss/118956.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/bnlovebn/services/trackbacks/118956.html</trackback:ping><description><![CDATA[java.sql.SQLException: ORA-06502: PL/SQL: 数字或值错误 <br>ORA-06512: 在"SCOTT.PKG_JT_CUST_BOOKING", line 28<br>ORA-06512: 在line 1<br><br>经查，原来是PKG_JT_CUST_BOOKING中的变量定义的太小了！<br>以至溢出。<br>
<img src ="http://www.blogjava.net/bnlovebn/aggbug/118956.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/bnlovebn/" target="_blank">重归本垒（Bing）</a> 2007-05-21 18:21 <a href="http://www.blogjava.net/bnlovebn/archive/2007/05/21/118956.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>创建oracle,packpage 示例，排序，分页，查询</title><link>http://www.blogjava.net/bnlovebn/archive/2007/05/17/118092.html</link><dc:creator>重归本垒（Bing）</dc:creator><author>重归本垒（Bing）</author><pubDate>Thu, 17 May 2007 06:43:00 GMT</pubDate><guid>http://www.blogjava.net/bnlovebn/archive/2007/05/17/118092.html</guid><wfw:comment>http://www.blogjava.net/bnlovebn/comments/118092.html</wfw:comment><comments>http://www.blogjava.net/bnlovebn/archive/2007/05/17/118092.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/bnlovebn/comments/commentRss/118092.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/bnlovebn/services/trackbacks/118092.html</trackback:ping><description><![CDATA[<p><br><br>&nbsp;</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">CREATE</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #808080">OR</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #ff00ff">REPLACE</span><span style="COLOR: #000000">&nbsp;PACKAGE&nbsp;SCOTT.pkg_test&nbsp;</span><span style="COLOR: #0000ff">as</span><span style="COLOR: #000000"><br><img id=Codehighlighter1_44_110_Open_Image onclick="this.style.display='none'; Codehighlighter1_44_110_Open_Text.style.display='none'; Codehighlighter1_44_110_Closed_Image.style.display='inline'; Codehighlighter1_44_110_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_44_110_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_44_110_Closed_Text.style.display='none'; Codehighlighter1_44_110_Open_Image.style.display='inline'; Codehighlighter1_44_110_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_44_110_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/**/</span><span id=Codehighlighter1_44_110_Open_Text><span style="COLOR: #008080">/*</span><span style="COLOR: #008080">&nbsp;定义ref&nbsp;cursor类型<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>不加return类型，为弱类型，允许动态sql查询，<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>否则为强类型，无法使用动态sql查询;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top></span><span style="COLOR: #008080">*/</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>type&nbsp;myrctype&nbsp;</span><span style="COLOR: #0000ff">is</span><span style="COLOR: #000000">&nbsp;ref&nbsp;</span><span style="COLOR: #0000ff">cursor</span><span style="COLOR: #000000">;&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">函数申明</span><span style="COLOR: #008080"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">&nbsp;get(intID&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">&nbsp;,&nbsp;bbn&nbsp;out&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">)&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;myrctype;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">Procedure</span><span style="COLOR: #000000">&nbsp;getstudent(&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;intID&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">,<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return_list&nbsp;out&nbsp;myrctype&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">&nbsp;getforpage(&nbsp;&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;Pcount&nbsp;out&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">返回分页总数</span><span style="COLOR: #008080"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;Pindex&nbsp;</span><span style="COLOR: #808080">in</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">分页索引&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008080"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;Psize&nbsp;</span><span style="COLOR: #808080">in</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">页面大小</span><span style="COLOR: #008080"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;Pordby&nbsp;&nbsp;</span><span style="COLOR: #808080">in</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">varchar</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">排序字段</span><span style="COLOR: #008080"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">)&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;myrctype;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">Procedure</span><span style="COLOR: #000000">&nbsp;getforpagep(&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;Pcount&nbsp;out&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">返回分页总数</span><span style="COLOR: #008080"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;return_list&nbsp;out&nbsp;myrctype,<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;Pindex&nbsp;</span><span style="COLOR: #808080">in</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">分页索引&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008080"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;Psize&nbsp;</span><span style="COLOR: #808080">in</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">页面大小</span><span style="COLOR: #008080"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;Pordby&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #808080">in</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">varchar</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">排序字段</span><span style="COLOR: #008080"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">end</span><span style="COLOR: #000000">&nbsp;pkg_test;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span></div>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">CREATE</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #808080">OR</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #ff00ff">REPLACE</span><span style="COLOR: #000000">&nbsp;PACKAGE&nbsp;BODY&nbsp;SCOTT.pkg_test&nbsp;</span><span style="COLOR: #0000ff">as</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">函数体</span><span style="COLOR: #008080"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">&nbsp;get(intID&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">&nbsp;,bbn&nbsp;out&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">)&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;myrctype&nbsp;</span><span style="COLOR: #0000ff">is</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rc&nbsp;myrctype;&nbsp;</span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">定义ref&nbsp;cursor变量</span><span style="COLOR: #008080"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sqlstr&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">varchar2</span><span style="COLOR: #000000">(</span><span style="FONT-WEIGHT: bold; COLOR: #800000">500</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">begin</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;intID</span><span style="COLOR: #808080">=</span><span style="FONT-WEIGHT: bold; COLOR: #800000">0</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">then</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">静态测试，直接用select语句直接返回结果</span><span style="COLOR: #008080"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">open</span><span style="COLOR: #000000">&nbsp;rc&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">select</span><span style="COLOR: #000000">&nbsp;id,name,sex,address,postcode,birthday&nbsp;</span><span style="COLOR: #0000ff">from</span><span style="COLOR: #000000">&nbsp;student;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">动态sql赋值，用:w_id来申明该变量从外部获得</span><span style="COLOR: #008080"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sqlstr&nbsp;:</span><span style="COLOR: #808080">=</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">select&nbsp;id,name,sex,address,postcode,birthday&nbsp;from&nbsp;student&nbsp;where&nbsp;id=:w_id</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">动态测试，用sqlstr字符串返回结果，用using关键词传递参数</span><span style="COLOR: #008080"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">open</span><span style="COLOR: #000000">&nbsp;rc&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;sqlstr&nbsp;using&nbsp;intid;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">end</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bbn&nbsp;:</span><span style="COLOR: #808080">=</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #800000">0</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;rc;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">end</span><span style="COLOR: #000000">&nbsp;get;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">Procedure</span><span style="COLOR: #000000">&nbsp;getstudent(&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;intID&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">,<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return_list&nbsp;out&nbsp;myrctype&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;)</span><span style="COLOR: #0000ff">as</span><span style="COLOR: #000000">&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">begin</span><span style="COLOR: #000000">&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">open</span><span style="COLOR: #000000">&nbsp;return_list<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">select</span><span style="COLOR: #000000">&nbsp;id,name,sex,address,postcode,birthday&nbsp;</span><span style="COLOR: #0000ff">from</span><span style="COLOR: #000000">&nbsp;student;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">end</span><span style="COLOR: #000000">&nbsp;getstudent;&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">&nbsp;getforpage(&nbsp;&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;Pcount&nbsp;out&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">返回分页总数</span><span style="COLOR: #008080"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;Pindex&nbsp;</span><span style="COLOR: #808080">in</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">分页索引&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008080"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;Psize&nbsp;</span><span style="COLOR: #808080">in</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">页面大小</span><span style="COLOR: #008080"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;Pordby&nbsp;&nbsp;</span><span style="COLOR: #808080">in</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">varchar</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">排序字段</span><span style="COLOR: #008080"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">)&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;myrctype<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">is</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rc&nbsp;myrctype;&nbsp;</span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">定义ref&nbsp;cursor变量</span><span style="COLOR: #008080"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sqlstr&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">varchar2</span><span style="COLOR: #000000">(</span><span style="FONT-WEIGHT: bold; COLOR: #800000">500</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;v_sql&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">VARCHAR2</span><span style="COLOR: #000000">(</span><span style="FONT-WEIGHT: bold; COLOR: #800000">1000</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;v_count&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">;&nbsp;&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;v_Plow&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;v_Phei&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">begin</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sqlstr&nbsp;:</span><span style="COLOR: #808080">=</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">select&nbsp;id,name,sex,address,postcode,birthday&nbsp;from&nbsp;student</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">----------------------------------------------------------取分页总数</span><span style="COLOR: #008080"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;v_sql&nbsp;:</span><span style="COLOR: #808080">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">select&nbsp;count(*)&nbsp;from&nbsp;(</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #808080">||</span><span style="COLOR: #000000">&nbsp;sqlstr&nbsp;</span><span style="COLOR: #808080">||</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">)</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">execute</span><span style="COLOR: #000000">&nbsp;immediate&nbsp;v_sql&nbsp;</span><span style="COLOR: #0000ff">into</span><span style="COLOR: #000000">&nbsp;v_count;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Pcount&nbsp;:</span><span style="COLOR: #808080">=</span><span style="COLOR: #000000">&nbsp;ceil(v_count</span><span style="COLOR: #808080">/</span><span style="COLOR: #000000">Psize);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">----------------------------------------------------------显示任意页内容</span><span style="COLOR: #008080"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;v_Phei&nbsp;:</span><span style="COLOR: #808080">=</span><span style="COLOR: #000000">&nbsp;Pindex&nbsp;</span><span style="COLOR: #808080">*</span><span style="COLOR: #000000">&nbsp;Psize&nbsp;</span><span style="COLOR: #808080">+</span><span style="COLOR: #000000">&nbsp;Psize;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;v_Plow&nbsp;:</span><span style="COLOR: #808080">=</span><span style="COLOR: #000000">&nbsp;v_Phei&nbsp;</span><span style="COLOR: #808080">-</span><span style="COLOR: #000000">&nbsp;Psize&nbsp;</span><span style="COLOR: #808080">+</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #800000">1</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">Psql&nbsp;:=&nbsp;'select&nbsp;rownum&nbsp;rn,t.*&nbsp;from&nbsp;cd_ssxl&nbsp;t'&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--要求必须包含rownum字段</span><span style="COLOR: #008080"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">-select&nbsp;*&nbsp;from&nbsp;(select&nbsp;rownum&nbsp;rn&nbsp;,&nbsp;t.*&nbsp;from&nbsp;&nbsp;(select&nbsp;&nbsp;t.*&nbsp;from&nbsp;student&nbsp;t)&nbsp;t&nbsp;)where&nbsp;rn&nbsp;between&nbsp;'2'&nbsp;and&nbsp;'3'</span><span style="COLOR: #008080"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;v_sql&nbsp;:</span><span style="COLOR: #808080">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">select&nbsp;id,name,sex,address,postcode,birthday&nbsp;from&nbsp;(select&nbsp;rownum&nbsp;rn&nbsp;,&nbsp;t.*&nbsp;from&nbsp;&nbsp;(</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #808080">||</span><span style="COLOR: #000000">&nbsp;sqlstr&nbsp;</span><span style="COLOR: #808080">||</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">)&nbsp;t&nbsp;order&nbsp;by&nbsp;</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #808080">||</span><span style="COLOR: #000000">&nbsp;Pordby&nbsp;</span><span style="COLOR: #808080">||</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">)&nbsp;where&nbsp;rn&nbsp;between&nbsp;</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #808080">||</span><span style="COLOR: #000000">&nbsp;v_Plow&nbsp;</span><span style="COLOR: #808080">||</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">&nbsp;and&nbsp;</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #808080">||</span><span style="COLOR: #000000">&nbsp;v_Phei&nbsp;;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">open</span><span style="COLOR: #000000">&nbsp;rc&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;v_sql;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;rc;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">end</span><span style="COLOR: #000000">&nbsp;getforpage;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">Procedure</span><span style="COLOR: #000000">&nbsp;getforpagep(&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;Pcount&nbsp;out&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">返回分页总数</span><span style="COLOR: #008080"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;return_list&nbsp;out&nbsp;myrctype,<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;Pindex&nbsp;</span><span style="COLOR: #808080">in</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">分页索引&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008080"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;Psize&nbsp;</span><span style="COLOR: #808080">in</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">页面大小</span><span style="COLOR: #008080"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;Pordby&nbsp;&nbsp;</span><span style="COLOR: #808080">in</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">varchar</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">排序字段</span><span style="COLOR: #008080"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;)</span><span style="COLOR: #0000ff">as</span><span style="COLOR: #000000">&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rc&nbsp;myrctype;&nbsp;</span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">定义ref&nbsp;cursor变量</span><span style="COLOR: #008080"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sqlstr&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">varchar2</span><span style="COLOR: #000000">(</span><span style="FONT-WEIGHT: bold; COLOR: #800000">500</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;v_sql&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">VARCHAR2</span><span style="COLOR: #000000">(</span><span style="FONT-WEIGHT: bold; COLOR: #800000">1000</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;v_count&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">;&nbsp;&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;v_Plow&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;v_Phei&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">begin</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sqlstr&nbsp;:</span><span style="COLOR: #808080">=</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">select&nbsp;id,name,sex,address,postcode,birthday&nbsp;from&nbsp;student</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">----------------------------------------------------------取分页总数</span><span style="COLOR: #008080"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;v_sql&nbsp;:</span><span style="COLOR: #808080">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">select&nbsp;count(*)&nbsp;from&nbsp;(</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #808080">||</span><span style="COLOR: #000000">&nbsp;sqlstr&nbsp;</span><span style="COLOR: #808080">||</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">)</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">execute</span><span style="COLOR: #000000">&nbsp;immediate&nbsp;v_sql&nbsp;</span><span style="COLOR: #0000ff">into</span><span style="COLOR: #000000">&nbsp;v_count;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Pcount&nbsp;:</span><span style="COLOR: #808080">=</span><span style="COLOR: #000000">&nbsp;ceil(v_count</span><span style="COLOR: #808080">/</span><span style="COLOR: #000000">Psize);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">----------------------------------------------------------显示任意页内容</span><span style="COLOR: #008080"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;v_Phei&nbsp;:</span><span style="COLOR: #808080">=</span><span style="COLOR: #000000">&nbsp;Pindex&nbsp;</span><span style="COLOR: #808080">*</span><span style="COLOR: #000000">&nbsp;Psize&nbsp;</span><span style="COLOR: #808080">+</span><span style="COLOR: #000000">&nbsp;Psize;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;v_Plow&nbsp;:</span><span style="COLOR: #808080">=</span><span style="COLOR: #000000">&nbsp;v_Phei&nbsp;</span><span style="COLOR: #808080">-</span><span style="COLOR: #000000">&nbsp;Psize&nbsp;</span><span style="COLOR: #808080">+</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #800000">1</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">Psql&nbsp;:=&nbsp;'select&nbsp;rownum&nbsp;rn,t.*&nbsp;from&nbsp;cd_ssxl&nbsp;t'&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--要求必须包含rownum字段</span><span style="COLOR: #008080"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;v_sql&nbsp;:</span><span style="COLOR: #808080">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">select&nbsp;id,name,sex,address,postcode,birthday&nbsp;from&nbsp;(select&nbsp;rownum&nbsp;rn&nbsp;,&nbsp;t.*&nbsp;from&nbsp;&nbsp;(</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #808080">||</span><span style="COLOR: #000000">&nbsp;sqlstr&nbsp;</span><span style="COLOR: #808080">||</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">)&nbsp;t&nbsp;order&nbsp;by&nbsp;</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #808080">||</span><span style="COLOR: #000000">&nbsp;Pordby&nbsp;</span><span style="COLOR: #808080">||</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">&nbsp;)&nbsp;where&nbsp;rn&nbsp;between&nbsp;</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #808080">||</span><span style="COLOR: #000000">&nbsp;v_Plow&nbsp;</span><span style="COLOR: #808080">||</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">&nbsp;and&nbsp;</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #808080">||</span><span style="COLOR: #000000">&nbsp;v_Phei&nbsp;;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">open</span><span style="COLOR: #000000">&nbsp;return_list&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;v_sql;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">end</span><span style="COLOR: #000000">&nbsp;getforpagep;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">end</span><span style="COLOR: #000000">&nbsp;pkg_test;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #808080">/</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span></div>
<img src ="http://www.blogjava.net/bnlovebn/aggbug/118092.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/bnlovebn/" target="_blank">重归本垒（Bing）</a> 2007-05-17 14:43 <a href="http://www.blogjava.net/bnlovebn/archive/2007/05/17/118092.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>分页的通用存储过程</title><link>http://www.blogjava.net/bnlovebn/archive/2007/05/17/118042.html</link><dc:creator>重归本垒（Bing）</dc:creator><author>重归本垒（Bing）</author><pubDate>Thu, 17 May 2007 03:58:00 GMT</pubDate><guid>http://www.blogjava.net/bnlovebn/archive/2007/05/17/118042.html</guid><wfw:comment>http://www.blogjava.net/bnlovebn/comments/118042.html</wfw:comment><comments>http://www.blogjava.net/bnlovebn/archive/2007/05/17/118042.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/bnlovebn/comments/commentRss/118042.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/bnlovebn/services/trackbacks/118042.html</trackback:ping><description><![CDATA[<p>&nbsp;</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">create</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #808080">or</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #ff00ff">replace</span><span style="COLOR: #000000">&nbsp;package&nbsp;DotNet&nbsp;</span><span style="COLOR: #0000ff">is</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">&nbsp;Author&nbsp;&nbsp;:&nbsp;good_hy</span><span style="COLOR: #008080"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;</span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">&nbsp;Created&nbsp;:&nbsp;2004-12-13&nbsp;13:30:30</span><span style="COLOR: #008080"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;</span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">&nbsp;Purpose&nbsp;:&nbsp;</span><span style="COLOR: #008080"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;TYPE&nbsp;type_cur&nbsp;</span><span style="COLOR: #0000ff">IS</span><span style="COLOR: #000000">&nbsp;REF&nbsp;</span><span style="COLOR: #0000ff">CURSOR</span><span style="COLOR: #000000">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">定义游标变量用于返回记录集</span><span style="COLOR: #008080"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">PROCEDURE</span><span style="COLOR: #000000">&nbsp;DotNetPagination(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;Pindex&nbsp;</span><span style="COLOR: #808080">in</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">分页索引&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008080"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;Psql&nbsp;</span><span style="COLOR: #808080">in</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">varchar2</span><span style="COLOR: #000000">,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">产生dataset的sql语句</span><span style="COLOR: #008080"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;Psize&nbsp;</span><span style="COLOR: #808080">in</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">页面大小</span><span style="COLOR: #008080"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;Pcount&nbsp;out&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">返回分页总数</span><span style="COLOR: #008080"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;v_cur&nbsp;out&nbsp;type_cur&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">返回当前页数据记录</span><span style="COLOR: #008080"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;);&nbsp;&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">procedure</span><span style="COLOR: #000000">&nbsp;DotNetPageRecordsCount(<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;Psqlcount&nbsp;</span><span style="COLOR: #808080">in</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">varchar2</span><span style="COLOR: #000000">,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">产生dataset的sql语句&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008080"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;Prcount&nbsp;&nbsp;&nbsp;out&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">返回记录总数</span><span style="COLOR: #008080"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">end</span><span style="COLOR: #000000">&nbsp;DotNot;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">------------------------------------------------------------------------------------------------------------------------------------------------------------------</span><span style="COLOR: #008080"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">create</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #808080">or</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #ff00ff">replace</span><span style="COLOR: #000000">&nbsp;package&nbsp;body&nbsp;DotNet&nbsp;</span><span style="COLOR: #0000ff">is</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">***************************************************************************************</span><span style="COLOR: #008080"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">PROCEDURE</span><span style="COLOR: #000000">&nbsp;DotNetPagination(<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;Pindex&nbsp;</span><span style="COLOR: #808080">in</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">,<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;Psql&nbsp;</span><span style="COLOR: #808080">in</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">varchar2</span><span style="COLOR: #000000">,&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;Psize&nbsp;</span><span style="COLOR: #808080">in</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">,&nbsp;&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;Pcount&nbsp;out&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">,<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;v_cur&nbsp;out&nbsp;type_cur<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>)<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">AS</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;v_sql&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">VARCHAR2</span><span style="COLOR: #000000">(</span><span style="FONT-WEIGHT: bold; COLOR: #800000">1000</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;v_count&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">;&nbsp;&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;v_Plow&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;v_Phei&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">Begin</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">----------------------------------------------------------取分页总数</span><span style="COLOR: #008080"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;v_sql&nbsp;:</span><span style="COLOR: #808080">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">select&nbsp;count(*)&nbsp;from&nbsp;(</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #808080">||</span><span style="COLOR: #000000">&nbsp;Psql&nbsp;</span><span style="COLOR: #808080">||</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">)</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">execute</span><span style="COLOR: #000000">&nbsp;immediate&nbsp;v_sql&nbsp;</span><span style="COLOR: #0000ff">into</span><span style="COLOR: #000000">&nbsp;v_count;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;Pcount&nbsp;:</span><span style="COLOR: #808080">=</span><span style="COLOR: #000000">&nbsp;ceil(v_count</span><span style="COLOR: #808080">/</span><span style="COLOR: #000000">Psize);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">----------------------------------------------------------显示任意页内容</span><span style="COLOR: #008080"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;v_Phei&nbsp;:</span><span style="COLOR: #808080">=</span><span style="COLOR: #000000">&nbsp;Pindex&nbsp;</span><span style="COLOR: #808080">*</span><span style="COLOR: #000000">&nbsp;Psize&nbsp;</span><span style="COLOR: #808080">+</span><span style="COLOR: #000000">&nbsp;Psize;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;v_Plow&nbsp;:</span><span style="COLOR: #808080">=</span><span style="COLOR: #000000">&nbsp;v_Phei&nbsp;</span><span style="COLOR: #808080">-</span><span style="COLOR: #000000">&nbsp;Psize&nbsp;</span><span style="COLOR: #808080">+</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #800000">1</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">Psql&nbsp;:=&nbsp;'select&nbsp;rownum&nbsp;rn,t.*&nbsp;from&nbsp;cd_ssxl&nbsp;t'&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--要求必须包含rownum字段</span><span style="COLOR: #008080"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;<span style="COLOR: #808080">&nbsp;--v_sql := 'select&nbsp; *&nbsp; from (select rownum rn , t.* from&nbsp; (' || sqlstr || ') t) where rn between ' || v_Plow || ' and ' || v_Phei ;</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;v_sql&nbsp;:</span><span style="COLOR: #808080">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">select&nbsp;*&nbsp;from&nbsp;(</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #808080">||</span><span style="COLOR: #000000">&nbsp;Psql&nbsp;</span><span style="COLOR: #808080">||</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">)&nbsp;where&nbsp;rn&nbsp;between&nbsp;</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #808080">||</span><span style="COLOR: #000000">&nbsp;v_Plow&nbsp;</span><span style="COLOR: #808080">||</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">&nbsp;and&nbsp;</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #808080">||</span><span style="COLOR: #000000">&nbsp;v_Phei&nbsp;;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">open</span><span style="COLOR: #000000">&nbsp;v_cur&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;v_sql;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">End</span><span style="COLOR: #000000">&nbsp;DotNetPagination;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">**************************************************************************************</span><span style="COLOR: #008080"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">procedure</span><span style="COLOR: #000000">&nbsp;DotNetPageRecordsCount(<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;Psqlcount&nbsp;</span><span style="COLOR: #808080">in</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">varchar2</span><span style="COLOR: #000000">,<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;Prcount&nbsp;&nbsp;&nbsp;out&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;)<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">as</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;v_sql&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">varchar2</span><span style="COLOR: #000000">(</span><span style="FONT-WEIGHT: bold; COLOR: #800000">1000</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;v_prcount&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">begin</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;v_sql&nbsp;:</span><span style="COLOR: #808080">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">select&nbsp;count(*)&nbsp;from&nbsp;(</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #808080">||</span><span style="COLOR: #000000">&nbsp;Psqlcount&nbsp;</span><span style="COLOR: #808080">||</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">)</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">execute</span><span style="COLOR: #000000">&nbsp;immediate&nbsp;v_sql&nbsp;</span><span style="COLOR: #0000ff">into</span><span style="COLOR: #000000">&nbsp;v_prcount;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;Prcount&nbsp;:</span><span style="COLOR: #808080">=</span><span style="COLOR: #000000">&nbsp;v_prcount;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">返回记录总数&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008080"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">end</span><span style="COLOR: #000000">&nbsp;DotNetPageRecordsCount;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">**************************************************************************************</span><span style="COLOR: #008080"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">end</span><span style="COLOR: #000000">&nbsp;DotNot;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span></div>
<img src ="http://www.blogjava.net/bnlovebn/aggbug/118042.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/bnlovebn/" target="_blank">重归本垒（Bing）</a> 2007-05-17 11:58 <a href="http://www.blogjava.net/bnlovebn/archive/2007/05/17/118042.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java调用oracle Package 的Function&amp;Procedure</title><link>http://www.blogjava.net/bnlovebn/archive/2007/05/17/118035.html</link><dc:creator>重归本垒（Bing）</dc:creator><author>重归本垒（Bing）</author><pubDate>Thu, 17 May 2007 03:48:00 GMT</pubDate><guid>http://www.blogjava.net/bnlovebn/archive/2007/05/17/118035.html</guid><wfw:comment>http://www.blogjava.net/bnlovebn/comments/118035.html</wfw:comment><comments>http://www.blogjava.net/bnlovebn/archive/2007/05/17/118035.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/bnlovebn/comments/commentRss/118035.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/bnlovebn/services/trackbacks/118035.html</trackback:ping><description><![CDATA[<p>&nbsp;</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">CREATE</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #808080">OR</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #ff00ff">REPLACE</span><span style="COLOR: #000000">&nbsp;PACKAGE&nbsp;SCOTT.pkg_test&nbsp;</span><span style="COLOR: #0000ff">as</span><span style="COLOR: #000000"><br><img id=Codehighlighter1_44_110_Open_Image onclick="this.style.display='none'; Codehighlighter1_44_110_Open_Text.style.display='none'; Codehighlighter1_44_110_Closed_Image.style.display='inline'; Codehighlighter1_44_110_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_44_110_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_44_110_Closed_Text.style.display='none'; Codehighlighter1_44_110_Open_Image.style.display='inline'; Codehighlighter1_44_110_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_44_110_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/**/</span><span id=Codehighlighter1_44_110_Open_Text><span style="COLOR: #008080">/*</span><span style="COLOR: #008080">&nbsp;定义ref&nbsp;cursor类型<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>不加return类型，为弱类型，允许动态sql查询，<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>否则为强类型，无法使用动态sql查询;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top></span><span style="COLOR: #008080">*/</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>type&nbsp;myrctype&nbsp;</span><span style="COLOR: #0000ff">is</span><span style="COLOR: #000000">&nbsp;ref&nbsp;</span><span style="COLOR: #0000ff">cursor</span><span style="COLOR: #000000">;&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">函数申明</span><span style="COLOR: #008080"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">&nbsp;get(intID&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">)&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;myrctype;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">Procedure</span><span style="COLOR: #000000">&nbsp;getstudent(&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;intID&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">,<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return_list&nbsp;out&nbsp;myrctype&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">end</span><span style="COLOR: #000000">&nbsp;pkg_test;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #808080">==============================================</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">CREATE</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #808080">OR</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #ff00ff">REPLACE</span><span style="COLOR: #000000">&nbsp;PACKAGE&nbsp;BODY&nbsp;SCOTT.pkg_test&nbsp;</span><span style="COLOR: #0000ff">as</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">函数体</span><span style="COLOR: #008080"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">&nbsp;get(intID&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">)&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;myrctype&nbsp;</span><span style="COLOR: #0000ff">is</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rc&nbsp;myrctype;&nbsp;</span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">定义ref&nbsp;cursor变量</span><span style="COLOR: #008080"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sqlstr&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">varchar2</span><span style="COLOR: #000000">(</span><span style="FONT-WEIGHT: bold; COLOR: #800000">500</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">begin</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;intID</span><span style="COLOR: #808080">=</span><span style="FONT-WEIGHT: bold; COLOR: #800000">0</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">then</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">静态测试，直接用select语句直接返回结果</span><span style="COLOR: #008080"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">open</span><span style="COLOR: #000000">&nbsp;rc&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">select</span><span style="COLOR: #000000">&nbsp;id,name,sex,address,postcode,birthday&nbsp;</span><span style="COLOR: #0000ff">from</span><span style="COLOR: #000000">&nbsp;student;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">动态sql赋值，用:w_id来申明该变量从外部获得</span><span style="COLOR: #008080"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sqlstr&nbsp;:</span><span style="COLOR: #808080">=</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">select&nbsp;id,name,sex,address,postcode,birthday&nbsp;from&nbsp;student&nbsp;where&nbsp;id=:w_id</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">动态测试，用sqlstr字符串返回结果，用using关键词传递参数</span><span style="COLOR: #008080"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">open</span><span style="COLOR: #000000">&nbsp;rc&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;sqlstr&nbsp;using&nbsp;intid;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">end</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;rc;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">end</span><span style="COLOR: #000000">&nbsp;get;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">Procedure</span><span style="COLOR: #000000">&nbsp;getstudent(&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;intID&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">,<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return_list&nbsp;out&nbsp;myrctype&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;)</span><span style="COLOR: #0000ff">as</span><span style="COLOR: #000000">&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">begin</span><span style="COLOR: #000000">&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">open</span><span style="COLOR: #000000">&nbsp;return_list<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">select</span><span style="COLOR: #000000">&nbsp;id,name,sex,address,postcode,birthday&nbsp;</span><span style="COLOR: #0000ff">from</span><span style="COLOR: #000000">&nbsp;student;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">end</span><span style="COLOR: #000000">&nbsp;getstudent;&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">end</span><span style="COLOR: #000000">&nbsp;pkg_test;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #808080">/</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span></div>
<p><br>&nbsp;</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img id=Codehighlighter1_6_340_Open_Image onclick="this.style.display='none'; Codehighlighter1_6_340_Open_Text.style.display='none'; Codehighlighter1_6_340_Closed_Image.style.display='inline'; Codehighlighter1_6_340_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_6_340_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_6_340_Closed_Text.style.display='none'; Codehighlighter1_6_340_Open_Image.style.display='inline'; Codehighlighter1_6_340_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">try</span><span style="COLOR: #000000">&nbsp;</span><span id=Codehighlighter1_6_340_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_6_340_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;conn.setAutoCommit(</span><span style="COLOR: #0000ff">false</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CallableStatement&nbsp;proc&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;conn<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.prepareCall(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">{call&nbsp;&nbsp;pkg_test.getstudent(?,?)}</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proc.setInt(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proc.registerOutParameter(</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">,&nbsp;OracleTypes.CURSOR);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proc.execute();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ResultSet&nbsp;rs&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;(ResultSet)&nbsp;proc.getObject(</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">);<br><img id=Codehighlighter1_290_336_Open_Image onclick="this.style.display='none'; Codehighlighter1_290_336_Open_Text.style.display='none'; Codehighlighter1_290_336_Closed_Image.style.display='inline'; Codehighlighter1_290_336_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_290_336_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_290_336_Closed_Text.style.display='none'; Codehighlighter1_290_336_Open_Image.style.display='inline'; Codehighlighter1_290_336_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">&nbsp;(rs.next())&nbsp;</span><span id=Codehighlighter1_290_336_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_290_336_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(rs.getString(</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">));<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img id=Codehighlighter1_365_417_Open_Image onclick="this.style.display='none'; Codehighlighter1_365_417_Open_Text.style.display='none'; Codehighlighter1_365_417_Closed_Image.style.display='inline'; Codehighlighter1_365_417_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_365_417_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_365_417_Closed_Text.style.display='none'; Codehighlighter1_365_417_Open_Image.style.display='inline'; Codehighlighter1_365_417_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000">&nbsp;(SQLException&nbsp;e)&nbsp;</span><span id=Codehighlighter1_365_417_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_365_417_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;TODO&nbsp;自动生成&nbsp;catch&nbsp;块</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img id=Codehighlighter1_425_754_Open_Image onclick="this.style.display='none'; Codehighlighter1_425_754_Open_Text.style.display='none'; Codehighlighter1_425_754_Closed_Image.style.display='inline'; Codehighlighter1_425_754_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_425_754_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_425_754_Closed_Text.style.display='none'; Codehighlighter1_425_754_Open_Image.style.display='inline'; Codehighlighter1_425_754_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">try</span><span style="COLOR: #000000">&nbsp;</span><span id=Codehighlighter1_425_754_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_425_754_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;conn.setAutoCommit(</span><span style="COLOR: #0000ff">false</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CallableStatement&nbsp;proc&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;conn<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.prepareCall(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">{call&nbsp;?&nbsp;:=&nbsp;pkg_test.get(?)}</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proc.setInt(</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proc.registerOutParameter(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,&nbsp;OracleTypes.CURSOR);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proc.execute();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ResultSet&nbsp;rs&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;(ResultSet)&nbsp;proc.getObject(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">);<br><img id=Codehighlighter1_704_750_Open_Image onclick="this.style.display='none'; Codehighlighter1_704_750_Open_Text.style.display='none'; Codehighlighter1_704_750_Closed_Image.style.display='inline'; Codehighlighter1_704_750_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_704_750_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_704_750_Closed_Text.style.display='none'; Codehighlighter1_704_750_Open_Image.style.display='inline'; Codehighlighter1_704_750_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">&nbsp;(rs.next())&nbsp;</span><span id=Codehighlighter1_704_750_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_704_750_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(rs.getString(</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">));<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img id=Codehighlighter1_779_831_Open_Image onclick="this.style.display='none'; Codehighlighter1_779_831_Open_Text.style.display='none'; Codehighlighter1_779_831_Closed_Image.style.display='inline'; Codehighlighter1_779_831_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_779_831_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_779_831_Closed_Text.style.display='none'; Codehighlighter1_779_831_Open_Image.style.display='inline'; Codehighlighter1_779_831_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000">&nbsp;(SQLException&nbsp;e)&nbsp;</span><span id=Codehighlighter1_779_831_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_779_831_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;TODO&nbsp;自动生成&nbsp;catch&nbsp;块</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span></div>
<p><br>&nbsp;</p>
<img src ="http://www.blogjava.net/bnlovebn/aggbug/118035.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/bnlovebn/" target="_blank">重归本垒（Bing）</a> 2007-05-17 11:48 <a href="http://www.blogjava.net/bnlovebn/archive/2007/05/17/118035.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于oracle中用存储过程返回动态记录集的学习</title><link>http://www.blogjava.net/bnlovebn/archive/2007/05/17/117980.html</link><dc:creator>重归本垒（Bing）</dc:creator><author>重归本垒（Bing）</author><pubDate>Thu, 17 May 2007 01:42:00 GMT</pubDate><guid>http://www.blogjava.net/bnlovebn/archive/2007/05/17/117980.html</guid><wfw:comment>http://www.blogjava.net/bnlovebn/comments/117980.html</wfw:comment><comments>http://www.blogjava.net/bnlovebn/archive/2007/05/17/117980.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/bnlovebn/comments/commentRss/117980.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/bnlovebn/services/trackbacks/117980.html</trackback:ping><description><![CDATA[<font style="FONT-FAMILY: Tahoma" face=Verdana>测试过程：<br>1、建立测试表<br>CREATE TABLE student<br>(<br>id NUMBER,<br>name VARCHAR2(30),<br>sex VARCHAR2(10),<br>address VARCHAR2(100),<br>postcode VARCHAR2(10),<br>birthday DATE,<br>photo LONG RAW<br>)<br>/<br><br>2、建立带ref cursor定义的包和包体及函数：<br>CREATE OR REPLACE<br>package pkg_test as<br>/* 定义ref cursor类型<br>不加return类型，为弱类型，允许动态sql查询，<br>否则为强类型，无法使用动态sql查询;<br>*/<br>type myrctype is ref cursor; <br><br>--函数申明<br>function get(intID number) return myrctype;<br>end pkg_test;<br>/<br><br>CREATE OR REPLACE<br>package body pkg_test as<br>--函数体<br>function get(intID number) return myrctype is<br>rc myrctype; --定义ref cursor变量<br>sqlstr varchar2(500);<br>begin<br>if intID=0 then<br>--静态测试，直接用select语句直接返回结果<br>open rc for select id,name,sex,address,postcode,birthday from student;<br>else<br>--动态sql赋值，用:w_id来申明该变量从外部获得<br>sqlstr :='select id,name,sex,address,postcode,birthday from student where id=:w_id';<br>--动态测试，用sqlstr字符串返回结果，用using关键词传递参数<br>open rc for sqlstr using intid;<br>end if;<br><br>return rc;<br>end get;<br><br>end pkg_test;<br>/<br><br>3、用pl/sql块进行测试：<br>declare<br>w_rc pkg_test.myrctype; --定义ref cursor型变量<br><br>--定义临时变量，用于显示结果<br>w_id student.id%type;<br>w_name student.name%type;<br>w_sex student.sex%type;<br>w_address student.address%type;<br>w_postcode student.postcode%type;<br>w_birthday student.birthday%type;<br><br>begin<br>--调用函数，获得记录集<br>w_rc := pkg_test.get(1);<br><br>--fetch结果并显示<br>fetch w_rc into w_id,w_name,w_sex,w_address,w_postcode,w_birthday;<br>dbms_output.put_line(w_name);/*此处的put_line表示输出一行在屏幕上显示，假如想输出姓名和性别等，可以这样写dbms.output.putline(w_name||w_sex||w_address),而这样写dbms.output.putline(w_name||chr(10)||w_sex)则表示可以换行。*/<br>end;<br><br>4、测试结果：<br>通过。<br><br>在上述的online document中有相当多的内容，包括怎样在pro*c传递动态参数给存储过程、ref cusor的使用限制、open cursor for的4中不同方法等等。</font><br><span style="FONT-SIZE: 8pt">转：</span><a href="http://hetingonion.spaces.live.com/blog/cns!DA3BAE0FAC0FE44F!115.entry"><span style="FONT-SIZE: 8pt">http://hetingonion.spaces.live.com/blog/cns!DA3BAE0FAC0FE44F!115.entry</span></a> <br><br>
<img src ="http://www.blogjava.net/bnlovebn/aggbug/117980.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/bnlovebn/" target="_blank">重归本垒（Bing）</a> 2007-05-17 09:42 <a href="http://www.blogjava.net/bnlovebn/archive/2007/05/17/117980.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>orcale数据分页提取数</title><link>http://www.blogjava.net/bnlovebn/archive/2006/12/20/88983.html</link><dc:creator>重归本垒（Bing）</dc:creator><author>重归本垒（Bing）</author><pubDate>Wed, 20 Dec 2006 02:29:00 GMT</pubDate><guid>http://www.blogjava.net/bnlovebn/archive/2006/12/20/88983.html</guid><wfw:comment>http://www.blogjava.net/bnlovebn/comments/88983.html</wfw:comment><comments>http://www.blogjava.net/bnlovebn/archive/2006/12/20/88983.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/bnlovebn/comments/commentRss/88983.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/bnlovebn/services/trackbacks/88983.html</trackback:ping><description><![CDATA[
		<strong>
				<font color="#ff0000">方法一:</font>
		</strong>
		<p>select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段</p>
		<p>10 = 每页记录数</p>
		<p>20 = (当前页 + 1) * 每页记录数</p>
		<p>以上语句即可以实现分页，但是最后取出的结果排序是升序，如果需要结果集为降序（例如时间），则有两种方法可以处理</p>
		<p>1.使用以下语句，但效率可能要降低一些</p>
		<p>select * from 表名 b, (select top 10 主键字段,排序字段 from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a order by 排序字段 ) c where b.主键字段 = c.主键字段 order by c.排序字段 desc </p>
		<p>2.在ado里处理,将记录集游标移到最后，然后前移 </p>
		<p>''以下为asp范例 </p>
		<p>set rsTemp = Server.CreateObject("adodb.recordset") </p>
		<p>rsTemp.Open 语句,conn,1,1 </p>
		<p>rsTemp.MoveLast </p>
		<p>for i = 1 to rsTemp.RecordCount</p>
		<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
				<p> '取值.... </p>
				<p>rsTemp.MovePrevious </p>
		</blockquote>
		<p>next </p>
		<p> </p>
		<p>经测试，以上分页方法比使用临时表分页速度还要快，并且简单易用.</p>
		<p>
				<font color="#ff0000">
						<strong>方法二：</strong>
				</font>
		</p>
		<p>
				<font face="宋体">大数据量下的分页</font>
		</p>
		<p>
				<font face="宋体">    对于非常大的数据模型而言，分页检索时，每次都加载整个数据源非常浪费。通常的选择是检索页面大小的块区的数据，而非检索所有的数据，然后单步执行当前行。</font>
		</p>
		<p>
				<font face="宋体">
						<font face="宋体">    本文演示ASP.net的DataGrid和Sql Server 实现大数据量下的分页，为了便于实现演示，数据表采用了Northwind数据库的Orders表（830条记录）。</font>
				</font>
		</p>
		<p>
				<font face="宋体">    如果数据表中有唯一的自增索引，并且这个字段没有出现断号现象。检索页面大小的块区数据就非常简单了。通过简单的Sql语句就可以实现这个功能：</font>
		</p>
		<p>
		</p>
		<style type="text/css"><![CDATA[td.code { padding:0,10,0,10; border-style:solid; border-width:1; border-bottom:0; border-top:0; border-right:0; border-color:cccccc; background-color:ffffee }  ]]&gt;</style>
		<table id="Table1" cellspacing="0" cellpadding="0" width="95%">
				<tbody>
						<tr>
								<td class="code" colspan="4">
										<pre class="code">    select * from orders where orderid between 10248 and 10253</pre>
								</td>
						</tr>
				</tbody>
		</table>
		<p>
				<font face="宋体">    其中，开始编号为：<font face="宋体">(CurrentPageIndex - 1) * PageSize  结束编号为：<font face="宋体">CurrentPageIndex * PageSize</font></font></font>
		</p>
		<p>
				<font face="宋体">    当然，如果这个字段断号不是很严重，而且允许不是很严格的按照每页条数分页，这样的方法也是可以用的。</font>
		</p>
		<p>
				<font face="宋体">    如果这个字段断号，或者需要按照其他条件排序分页，就要复杂些了。首先要获得这个页面需要显示的编号，然后再按照这个编号获得需要的块区数据。根据编号获得块区数据很简单。不过用下面方式获得数据排序并不是按照指定的id列表顺序，这时候还要附加order by 命令。 </font>
		</p>
		<p>
		</p>
		<table id="Table2" cellspacing="0" cellpadding="0" width="95%">
				<tbody>
						<tr>
								<td class="code" colspan="4">
										<pre class="code">select * from orders where orderid in (10248,10249,10250,10251,10252,10253) order by orderid desc</pre>
								</td>
						</tr>
				</tbody>
		</table>
		<p>
				<font face="宋体">    获得这个页面需要显示的编号列表就复杂多了，而且有多种方案：</font>
		</p>
		<p>
				<font face="宋体">方案一：维护一个表，这个表记录需要显示的这些编号排序顺序。（这个表可以是临时表，也可以是物理表）。下面演示了利用一个全局临时表。这个全局临时表记录需要显示的编号。注意排序，这里的order by 就是需要显示的排序顺序。</font>
		</p>
		<p>
		</p>
		<table id="Table3" cellspacing="0" cellpadding="0" width="95%">
				<tbody>
						<tr>
								<td class="code" colspan="4">
										<pre class="code">create table ##temptable(iid int IDENTITY (1, 1) NOT NULL,mainid int NOT NULL)insert ##temptable(mainid) select OrderID from orders order by OrderID descselect * from ##temptabledrop table ##temptable -- 实际执行时候，删除全部临时表当然不再这里执行。</pre>
								</td>
						</tr>
				</tbody>
		</table>
		<p>
				<font face="宋体">这个临时表存在，获得指定分页的分块数据就很简单了。看下面代码：</font>
		</p>
		<p>
		</p>
		<table id="Table4" cellspacing="0" cellpadding="0" width="95%">
				<tbody>
						<tr>
								<td class="code" colspan="4">
										<pre class="code">create table ##temptable(iid int IDENTITY (1, 1) NOT NULL,mainid int NOT NULL)insert ##temptable(mainid) select OrderID from orders order by OrderID descdeclare @PageSize int,@CurrPage int,@strSQL varchar(2000),@IDStr varchar(1000)select @PageSize = 30select @CurrPage = 2select @IDStr = ''select @IDStr = @IDStr + ltrim(rtrim(str(MainID))) + ',' from ##temptable where iid between ((@CurrPage-1)*@PageSize+1) and @CurrPage*@PageSizeif @IDStr &lt;&gt; '' begin select @IDStr = left(@IDStr,len(@IDStr)-1)endselect @strSQL = 'select * from orders where OrderID in ('+@IDStr+')  order by OrderID desc 'exec(@strSQL)drop table ##temptable</pre>
								</td>
						</tr>
				</tbody>
		</table>
		<p>
				<font face="宋体">注意：实际使用这个方案的时候，还要考虑何时更新这个全局临时表，一般是放到计划任务中，定时更新这个汇总表。</font>
		</p>
		<p>
				<font face="宋体">方案二：每次都去查询，每次获得最新的编号顺序。由于这时候不存在这个临时表，书写获得需要显示页面的编号的字符串就需要点技巧，看下面的代码：</font>
				<font face="宋体">ASP.net 的 DataGrid 提供了使用这种分区的数据的方法。</font>
				<font face="宋体">DataGrid 通过 AllowCustomPaging 和 VirtualItemCount 属性支持块区操作。如果 AllowCustomPaging 为 true，则 DataGrid 不会根据 CurrentPageIndex 计算数据模型中的起始显示位置。DataGrid 将显示数据模型中的所有数据，而页导航栏将当前位置报告为 (VirtualItemCount+PageSize-1)/PageSize 之 CurrentPageIndex 页。下面的示例说明此功能。</font>
		</p>
		<p>
		</p>
		<table id="Table5" cellspacing="0" cellpadding="0" width="95%">
				<tbody>
						<tr>
								<td class="code" colspan="4">
										<pre class="code">declare @PageSize int,@CurrPage int,@topnum int,@previous intselect @PageSize = 30select @CurrPage = 2select @topnum = @CurrPage * @PageSizeselect @previous = (@CurrPage - 1) * @PageSizedeclare @i int,@IDStr nvarchar(500),@strSQL nvarchar(1000)select @i = 0select @strSQL = N''select @strSQL = @strSQL + N' select top '+str(@topnum)+ ' @i = @i + 1 'select @strSQL = @strSQL + N',  @IdStr = 'select @strSQL = @strSQL + N'case when @i &gt; '+str(@previous)+' then  @IdStr + ltrim(rtrim(str(OrderID))) + '','' 'select @strSQL = @strSQL + N'else N''''end 'select @strSQL = @strSQL + N'from Orders 'select @strSQL = ltrim(rtrim(@strSQL)) + N' order by OrderID desc 'Select @IdStr = N''exec sp_executesql @strSQL,N'@i int,@IdStr varchar(500) output',@i,@IdStr outputif len(rtrim(ltrim(@IdStr))) &gt; 0begin select @IdStr = left(@IdStr,len(@IdStr)-1)endselect @strSQL = 'select * from orders where OrderID in ('+@IDStr+')'exec(@strSQL)</pre>
								</td>
						</tr>
				</tbody>
		</table>
		<p> </p>
		<p>
		</p>
		<table id="Table6" cellspacing="0" cellpadding="0" width="95%">
				<tbody>
						<tr>
								<td class="code" colspan="4">
										<pre class="code">     protected void BindDataGrid(int currpage) {  string strConn = "Data Source=(local);Integrated Security=SSPI;database=Northwind";  // 请确认 机器名/ASPNET 用户可以访问Northwind数据库  SqlCommand cmd = new SqlCommand();  SqlConnection conn = new SqlConnection(strConn);  SqlParameter[]  parms = new SqlParameter[] {   new SqlParameter("@PageSize",SqlDbType.Int),   new SqlParameter("@CurrPage",SqlDbType.Int),   new SqlParameter("@SearchSql",SqlDbType.NVarChar,128),   new SqlParameter("@Count",SqlDbType.Int),  };  parms[0].Value = DataGrid1.PageSize;  parms[1].Value = (currpage+1);   //  数据库的分页算法第一页是1  DataGrid的第一页是0  parms[2].Value = DBNull.Value;  parms[3].Direction = ParameterDirection.Output;  parms[3].Value = DBNull.Value;  DataSet DS = new DataSet();  try   {   if (conn.State != ConnectionState.Open) conn.Open();   cmd.Connection = conn;   cmd.CommandText = "Selected_Page_List";   cmd.CommandType = CommandType.StoredProcedure;   if (parms != null)    {    foreach (SqlParameter parm in parms)     cmd.Parameters.Add(parm);   }   SqlDataAdapter DA = new SqlDataAdapter(cmd);   DA.Fill(DS);   int aa = Convert.ToInt32(parms[3].Value.ToString());   cmd.Parameters.Clear();   if (currpage == 0)   {    DataGrid1.VirtualItemCount = aa;   }   DataGrid1.CurrentPageIndex = currpage;   DataGrid1.DataSource = DS;   DataGrid1.DataBind();  }  catch(Exception ewx)  {   conn.Close();   Response.Write (ewx.Message.ToString());   Response.End();  } }    void Page_Load(Object sender, EventArgs E ) {  if (!IsPostBack)   {   BindDataGrid(0);   // 第一次打开这个页面，访问分页的第一页  }    }    void MyDataGrid_Page(Object sender, DataGridPageChangedEventArgs e) {  BindDataGrid(e.NewPageIndex);    }</pre>
								</td>
						</tr>
				</tbody>
		</table>
		<p>
				<font face="宋体">如果你有更多数据量的表稍加修改，也可以使用本演示程序。其下是演示代码下载，演示代码使用的是方案二。使用方法看readme.txt文件。</font>
		</p>
		<p>
				<font face="宋体">
						<font face="宋体">整个演示代码 <a href="http://www.csdn.net/develop/articleImages/18/18627/Paging.rar">下载</a></font>
				</font>
		</p>
		<p>
				<a href="http://chs.gotdotnet.com/quickstart/aspplus/samples/webforms/ctrlref/webctrl/datagrid/doc_datagrid.aspx#paging">http://chs.gotdotnet.com/quickstart/aspplus/samples/webforms/ctrlref/webctrl/datagrid/doc_datagrid.aspx#paging</a>
				<br />这里演示了利用<font face="宋体">DataGrid 的这个功能(没有本文中讨论的利用存储过程获得分区数据)。如对DataGrid的这个功能不太熟悉，请先看这里。</font></p>
		<p>
				<font face="宋体">
				</font>
		</p>
		<p> </p>
		<p>
				<font face="宋体" color="#ff0000">
						<strong>方法三:</strong>
				</font>
		</p>
		<font face="宋体">
				<p>虽然 DataGrid 控件自己带了一个分页处理机制，但它是将符合查询条件的所有记录读入内存，然后进行分页显示的。随着符合条件的记录数目增多，就会出现运行效率问题，或者至少是资源的利用率下降。</p>
				<p>下面的代码示例都以下面的表结构为准：</p>
				<p align="center">　 </p>
				<table style="BORDER-COLLAPSE: collapse" cellspacing="0" cellpadding="0" border="1">
						<tbody>
								<tr>
										<td width="30" bgcolor="#99ccff">　</td>
										<td width="100" bgcolor="#99ccff">Articles 表</td>
										<td width="150" bgcolor="#99ccff">SQL Server 类型</td>
										<td width="150" bgcolor="#99ccff">Oracle 类型</td>
								</tr>
								<tr>
										<td>PK</td>
										<td bgcolor="#dfefff">Id</td>
										<td>int (自增)</td>
										<td>number(9) (插入时在当前最大值上加1)</td>
								</tr>
								<tr>
										<td>　</td>
										<td bgcolor="#dfefff">Author</td>
										<td>nvarchar(10)</td>
										<td>nvarchar2(10)</td>
								</tr>
								<tr>
										<td>　</td>
										<td bgcolor="#dfefff">Title</td>
										<td>nvarchar(50)</td>
										<td>nvarchar2(50)</td>
								</tr>
								<tr>
										<td>　</td>
										<td bgcolor="#dfefff">PubTime</td>
										<td>datetime</td>
										<td>date</td>
								</tr>
						</tbody>
				</table>
				<p>SQL Server / Access 等微软产品中，我们通常的自定义分页有两种思路：</p>
				<p>一种是以 ASP.NET Forum 为代表的、“临时表”方法：即在存储过程中建立一个临时表，该临时表包含一个序号字段（1，2，3，....）以及表的主键（其他能够唯一确定一行记录的字段也是可以的）字段。存储过程可能如下：<font color="#0000ff">（编号 SS1）</font></p>
				<div class="pbcode">CREATE Procedure GetAllArticles_Paged<br />(<br />     @PageIndex int,<br />     @PageSize int,<br />     @TotalRecords out int,<br />     @TotalPages out int<br />)<br />AS<br /><br />DECLARE @PageLowerBound int<br />DECLARE @PageUpperBound int<br /><br />-- Set the page bounds<br />SET @PageLowerBound = @PageSize * @PageIndex<br />SET @PageUpperBound = @PageLowerBound + @PageSize + 1<br /><br />-- Create a temp table to store the select results<br />CREATE TABLE #tmp<br />(<br />     RecNo int IDENTITY (1, 1) NOT NULL,<br />     ArticleID int<br />)<br /><br />INSERT INTO #tmp<br />     SELECT [ID]<br />     FROM Articles<br />     ORDER BY PubTime DESC<br /><br />SELECT A.*<br />FROM Articles A (nolock), #tmp T<br />WHERE A.ID = T.ArticleID AND<br />     T.RecNo &gt; @PageLowerBound AND<br />     T.RecNo &lt; @PageUpperBound<br />ORDER BY T.RecNo<br /><br />GO </div>
				<p>另一种可能更适合程序中“拼凑” SQL 语句：用两次 TOP 命令取得我们所要的分页数据，例如：<font color="#0000ff">（编号 SS2）</font></p>
				<div class="pbcode">SELECT * FROM<br />     (<br />     SELECT TOP(<em><font color="#0000ff">PageSize</font></em>) * FROM<br />     (<br />          SELECT TOP (<font color="#0000ff"><em>PageSize</em></font> * <font color="#0000ff"><em>PageIndex</em></font>) *<br />          FROM Articles<br />          ORDER BY PubTime DESC<br />     )<br />     ORDER BY PubTime ASC<br />)<br />ORDER BY PubTime DESC </div>
				<p>这个的想法就是“掐头去尾”，还有不少分页的方法，这里就不一一列出了。</p>
				<p>对于 Oracle 数据库，有几处不同严重妨碍了上面几个方法的实施，比如，Oracle 不支持 TOP 关键字：不过这个好像并不十分严重，因为它提供了 rownum 这个隐式游标，可以实现与 TOP 类似的功能，如：</p>
				<div class="pbcode">SELECT TOP 10 ... FROM WHERE ... </div>
				<p>要写成</p>
				<div class="pbcode">SELECT ... FROM ... WHERE ... AND rownum &lt;= 10 </div>
				<p>rownum 是记录序号（1，2，3...），但有一个比较麻烦的事情是：如果 SQL 语句中有 ORDER BY ... 排序的时候，rownum 居然是先“标号”后排序！这样，这个序号如果不加处理是不合乎使用需求的。</p>
				<p>至于临时表，Oracle 的临时表和 SQL Server 的有很大不同，我还没搞懂这个东西，就不妄加揣测了。</p>
				<p>国内网站中介绍 Oracle 分页的资料很少，我找到了一个国外站点（www.faqts.com）的<a href="http://www.faqts.com/knowledge_base/view.phtml/aid/16331/fid/148" target="_blank"><font color="#000080">一篇 FAQ</font></a>，根据这篇文章的介绍，可以如下分页：<font color="#0000ff">（编号 Ora1）</font></p>
				<div class="pbcode">SELECT * FROM<br />     (<br />     SELECT A.*, rownum r<br />     FROM<br />          (<br /><font color="#0000ff">          SELECT *<br />          FROM Articles<br />          ORDER BY PubTime DESC</font><br />          ) A<br />     WHERE rownum &lt;= PageUpperBound<br />     ) B<br />WHERE r &gt; PageLowerBound; </div>
				<p>其中蓝色部分可以改为任意的、需要的 SQL SELECT 语句，这点倒是挺方便的。</p>
				<p>
						<font color="#ff0000">
								<strong>方法四:</strong>
						</font>
				</p>
				<p>今天突然发现，Oracle原来可以这样实现分页功能：<br /></p>
				<p>select * from (select rownum rdd,field1,field2 from t_table where rownum&lt;=400) where  rdd&gt;200<br /></p>
				<p>上述语句实现了从第201条记录开始处取200条记录</p>
		</font>
<img src ="http://www.blogjava.net/bnlovebn/aggbug/88983.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/bnlovebn/" target="_blank">重归本垒（Bing）</a> 2006-12-20 10:29 <a href="http://www.blogjava.net/bnlovebn/archive/2006/12/20/88983.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>安装orcale9i客户端时出问题：加载数据库时出错！</title><link>http://www.blogjava.net/bnlovebn/archive/2006/12/01/84781.html</link><dc:creator>重归本垒（Bing）</dc:creator><author>重归本垒（Bing）</author><pubDate>Fri, 01 Dec 2006 03:28:00 GMT</pubDate><guid>http://www.blogjava.net/bnlovebn/archive/2006/12/01/84781.html</guid><wfw:comment>http://www.blogjava.net/bnlovebn/comments/84781.html</wfw:comment><comments>http://www.blogjava.net/bnlovebn/archive/2006/12/01/84781.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/bnlovebn/comments/commentRss/84781.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/bnlovebn/services/trackbacks/84781.html</trackback:ping><description><![CDATA[安装orcale9i客户端时出问题：加载数据库时出错！<br />原来是在安装文件的路径有中文名，改了，就通过了。<img src ="http://www.blogjava.net/bnlovebn/aggbug/84781.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/bnlovebn/" target="_blank">重归本垒（Bing）</a> 2006-12-01 11:28 <a href="http://www.blogjava.net/bnlovebn/archive/2006/12/01/84781.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jdbc 日期时间相关的类型</title><link>http://www.blogjava.net/bnlovebn/archive/2006/11/06/79395.html</link><dc:creator>重归本垒（Bing）</dc:creator><author>重归本垒（Bing）</author><pubDate>Mon, 06 Nov 2006 06:15:00 GMT</pubDate><guid>http://www.blogjava.net/bnlovebn/archive/2006/11/06/79395.html</guid><wfw:comment>http://www.blogjava.net/bnlovebn/comments/79395.html</wfw:comment><comments>http://www.blogjava.net/bnlovebn/archive/2006/11/06/79395.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/bnlovebn/comments/commentRss/79395.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/bnlovebn/services/trackbacks/79395.html</trackback:ping><description><![CDATA[
		<p>
		</p>
		<p>
				<span style="FONT-SIZE: 9pt">
						<font face="宋体">
								<span lang="EN-US">
								</span>
						</font>
				</span>
		</p>
		<span style="FONT-SIZE: 9pt">
				<font face="宋体">　　<span lang="EN-US">1、sql.Date</span></font>
		</span>
		<p>
				<span style="FONT-SIZE: 9pt">
						<font face="宋体">　　<span lang="EN-US">sql包中的日期类Date是util包中Date类的子类，实际上也是util.Date类的子集。它只处理年月日，而忽略小时和分秒，用以代表SQL的DATE信息。</span></font>
				</span>
		</p>
		<p>
				<span style="FONT-SIZE: 9pt">
						<font face="宋体">　　<span lang="EN-US">Date类的构造方法为：</span></font>
				</span>
		</p>
		<p>
				<span style="FONT-SIZE: 9pt">
						<font face="宋体">　　<span lang="EN-US">public Date(int year, int mouth, int day)</span></font>
				</span>
		</p>
		<p>
				<span style="FONT-SIZE: 9pt">
						<font face="宋体">其中参数格式同<span lang="EN-US">util.Date类的构造方法一样，年参数为所需设定的年份减去1900所得的整数值，月参数为0至11，日参数为1至31。如1998年1月23日所对应创建日期类的方法调用为：</span></font>
				</span>
		</p>
		<p>
				<span style="FONT-SIZE: 9pt">
						<font face="宋体">　　<span lang="EN-US">Date d=new Date(98,0,23);</span></font>
				</span>
		</p>
		<p>
				<span style="FONT-SIZE: 9pt">
						<font face="宋体">　　<span lang="EN-US">Date类还提供两个与String类互相转换的方法，分别是：</span></font>
				</span>
		</p>
		<p>
				<span style="FONT-SIZE: 9pt">
						<font face="宋体">　　<span lang="EN-US">public static Date valueOf(String s)</span></font>
				</span>
		</p>
		<p>
				<span style="FONT-SIZE: 9pt">
						<font face="宋体">将字符串类参数转换为日期类对象。其中<span lang="EN-US">String类参数S的格式为“年-月-日”，加“1997-04-12”。</span></font>
				</span>
		</p>
		<p>
				<span style="FONT-SIZE: 9pt">
						<font face="宋体">　　<span lang="EN-US">public String toString()</span></font>
				</span>
		</p>
		<p>
				<span style="FONT-SIZE: 9pt">
						<font face="宋体">将日期类对象转换为<span lang="EN-US">String类对象表示，同样采用“年-月-日”的格式。</span></font>
				</span>
		</p>
		<p>
				<span style="FONT-SIZE: 9pt">
						<font face="宋体">　　<span lang="EN-US">2、sql.Time</span></font>
				</span>
		</p>
		<p>
				<span style="FONT-SIZE: 9pt">
						<font face="宋体">　　该类是<span lang="EN-US">util.Date类的子类，也是它的一个子集。在Time类里，只处理小时和分秒，代表SQL的TIME类型。它与sql.Date合起来才表示完整的util.Date类信息。</span></font>
				</span>
		</p>
		<p>
				<span style="FONT-SIZE: 9pt">
						<font face="宋体">　　<span lang="EN-US">Time类的构造方法为：</span></font>
				</span>
		</p>
		<p>
				<span style="FONT-SIZE: 9pt">
						<font face="宋体">　　<span lang="EN-US">public Time(int hour,int minute,int second)</span></font>
				</span>
		</p>
		<p>
				<span style="FONT-SIZE: 9pt">
						<font face="宋体">其中小时参数值为<span lang="EN-US">0至23，分秒参数取值均为0至59。</span></font>
				</span>
		</p>
		<p>
				<span style="FONT-SIZE: 9pt">
						<font face="宋体">　　与<span lang="EN-US">sql.Date一样，Time类也定义了两个与String类互相转换的函数ValueOf和String。不同的是String类对象的格式为“小时：分：秒”，如“12：26：06”。</span></font>
				</span>
		</p>
		<p>
				<span style="FONT-SIZE: 9pt">
						<font face="宋体">　　<span lang="EN-US">3、sql.Timestamp</span></font>
				</span>
		</p>
		<p>
				<span style="FONT-SIZE: 9pt">
						<font face="宋体">　　这个类也是<span lang="EN-US">util.Date类的子类，其中除了包含年月日、小时和分秒和信息之外，还加入了纳秒信息(nanosecond)，1纳秒即1毫微秒。Timestamp类用来代表SQL时间戳(Timestamp)类型信息。</span></font>
				</span>
		</p>
		<p>
				<span style="FONT-SIZE: 9pt">
						<font face="宋体">　　<span lang="EN-US">Timestamp类的构造方法为：</span></font>
				</span>
		</p>
		<p>
				<span style="FONT-SIZE: 9pt">
						<font face="宋体">　　<span lang="EN-US">public Timestamp(int year, int mouth, int date, int hour, int minute, int second, int nano)其中纳秒参数的取值从0至999,999,999，其余各参数同前。</span></font>
				</span>
		</p>
		<p>
				<span style="FONT-SIZE: 9pt">
						<font face="宋体">　　<span lang="EN-US">Timestamp类特别定义了设置和获得纳秒信息的方法，分别是</span></font>
				</span>
		</p>
		<p>
				<span style="FONT-SIZE: 9pt">
						<font face="宋体">　　<span lang="EN-US">public getnanos()</span></font>
				</span>
		</p>
		<p>
				<span style="FONT-SIZE: 9pt">
						<font face="宋体">　　获取时间戳的纳秒部分</font>
				</span>
		</p>
		<p>
				<span style="FONT-SIZE: 9pt">
						<font face="宋体">　　<span lang="EN-US">public void setNanos(int n)</span></font>
				</span>
		</p>
		<p>
				<span style="FONT-SIZE: 9pt">
						<font face="宋体">　　以给定数值设置时间戳的纳秒部分</font>
				</span>
		</p>
		<p>
				<span style="FONT-SIZE: 9pt">
						<font face="宋体">　　<span lang="EN-US">4、sql.Types</span></font>
				</span>
		</p>
		<p>
				<span style="FONT-SIZE: 9pt">
						<font face="宋体">　　<span lang="EN-US">Types类是Object类的直接子类。在这个类中以静态常量的形式定义了可使用的SQL的数值类型。所有这些类型常量都以前缀</span></font>
				</span>
		</p>
		<p>
				<span style="FONT-SIZE: 9pt">
						<font face="宋体">　　<span lang="EN-US">public final static int</span></font>
				</span>
		</p>
		<p>
				<span style="FONT-SIZE: 9pt">
						<font face="宋体">的形式标明是公有静态整数，且不可改动。具体的类型名和含义如表<span lang="EN-US">11.1所示。其中OTHER用来代表数据库定义的特殊数据，可以用getObject或setObject方法将其映射为一个Java的Object对象。</span></font>
				</span>
		</p>
		<p>
				<span style="FONT-SIZE: 9pt">
						<font face="宋体">　　表<span lang="EN-US">11.1 Types中定义的SQL类型</span></font>
				</span>
		</p>
		<p>
		</p>
		<table cellspacing="0" cellpadding="0" width="350" border="1">
				<tbody>
						<tr>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BACKGROUND: #006666; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BORDER-RIGHT-COLOR: #d4d0c8" width="143">
										<p style="TEXT-ALIGN: center" align="center">
												<span style="FONT-SIZE: 9pt; COLOR: #ffff99; FONT-FAMILY: 宋体">类型名</span>
										</p>
								</td>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BACKGROUND: #006666; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BORDER-RIGHT-COLOR: #d4d0c8" width="197">
										<p style="TEXT-ALIGN: center" align="center">
												<span style="FONT-SIZE: 9pt; COLOR: #ffff99; FONT-FAMILY: 宋体">含义</span>
										</p>
								</td>
						</tr>
						<tr>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143">
										<p>
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">BIGINT</span>
										</p>
								</td>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197">
										<p>
												<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">长整型数</span>
										</p>
								</td>
						</tr>
						<tr>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143">
										<p>
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">BINARY</span>
										</p>
								</td>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197">
										<p>
												<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">二进制数</span>
										</p>
								</td>
						</tr>
						<tr>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143">
										<p>
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">BIT</span>
										</p>
								</td>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197">
										<p>
												<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">比特数</span>
										</p>
								</td>
						</tr>
						<tr>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143">
										<p>
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">CHAR</span>
										</p>
								</td>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197">
										<p>
												<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">字符型</span>
										</p>
								</td>
						</tr>
						<tr>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143">
										<p>
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">DATE</span>
										</p>
								</td>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197">
										<p>
												<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">日期型</span>
										</p>
								</td>
						</tr>
						<tr>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143">
										<p>
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">DECIMAL</span>
										</p>
								</td>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197">
										<p>
												<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">十进制数</span>
										</p>
								</td>
						</tr>
						<tr>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143">
										<p>
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">DOUBLE</span>
										</p>
								</td>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197">
										<p>
												<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">双精度数</span>
										</p>
								</td>
						</tr>
						<tr>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143">
										<p>
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">FLOAT</span>
										</p>
								</td>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197">
										<p>
												<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">浮点数</span>
										</p>
								</td>
						</tr>
						<tr>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143">
										<p>
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">INTEGER</span>
										</p>
								</td>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197">
										<p>
												<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">整数</span>
										</p>
								</td>
						</tr>
						<tr>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143">
										<p>
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">LONGVARBINARY</span>
										</p>
								</td>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197">
										<p>
												<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">可变长型二进制数</span>
										</p>
								</td>
						</tr>
						<tr>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143">
										<p>
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">LONGVARCHAR</span>
										</p>
								</td>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197">
										<p>
												<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">可变长型字符</span>
										</p>
								</td>
						</tr>
						<tr>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143">
										<p>
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">NULL</span>
										</p>
								</td>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197">
										<p>
												<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">空类型</span>
										</p>
								</td>
						</tr>
						<tr>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143">
										<p>
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">NUMERIC</span>
										</p>
								</td>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197">
										<p>
												<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">数值型</span>
										</p>
								</td>
						</tr>
						<tr>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143">
										<p>
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">OTHER</span>
										</p>
								</td>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197">
										<p>
												<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">其他类型</span>
										</p>
								</td>
						</tr>
						<tr>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143">
										<p>
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">REAL</span>
										</p>
								</td>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197">
										<p>
												<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">实数</span>
										</p>
								</td>
						</tr>
						<tr>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143">
										<p>
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">SMALLINT</span>
										</p>
								</td>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197">
										<p>
												<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">短整型</span>
										</p>
								</td>
						</tr>
						<tr>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143">
										<p>
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">TIME</span>
										</p>
								</td>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197">
										<p>
												<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">时间类型</span>
										</p>
								</td>
						</tr>
						<tr>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143">
										<p>
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">TIMESTAMP</span>
										</p>
								</td>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197">
										<p>
												<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">时间戳类型</span>
										</p>
								</td>
						</tr>
						<tr>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143">
										<p>
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">TINYINT</span>
										</p>
								</td>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197">
										<p>
												<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">微整型</span>
										</p>
								</td>
						</tr>
						<tr>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143">
										<p>
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">VARBINARY</span>
										</p>
								</td>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197">
										<p>
												<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">可变二进制数</span>
										</p>
								</td>
						</tr>
						<tr>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143">
										<p>
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">VARCHAR</span>
										</p>
								</td>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197">
										<p>
												<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">可变字符型</span>
										</p>
								</td>
						</tr>
				</tbody>
		</table>
		<p>
				<span style="FONT-SIZE: 10.5pt; COLOR: #333399">
						<font face="宋体">二、<span lang="EN-US">SQL与Java</span></font>
				</span>
		</p>
		<p>
				<font face="宋体">
						<span style="FONT-SIZE: 11pt">　</span>
						<span style="FONT-SIZE: 9pt">　</span>
						<span style="FONT-SIZE: 9pt; COLOR: green">由于<span lang="EN-US">SQL数据类型与Java的数据类型不一致，因而在使用Java类型的应用程序与使用SQL类型的数据库之间，需要某种读写类型转换机制。实际上我们前面介绍的ResultSet类的“get”系列方法，Statement及其子类的“set“系列方法和registerOutParameter方法，都是这一转换机制的组成部分。</span></span>
				</font>
		</p>
		<p>
				<span style="FONT-SIZE: 9pt">
						<font face="宋体">　　需要进行的读写转换包括三种情况：</font>
				</span>
		</p>
		<p>
				<font face="宋体">
						<span style="FONT-SIZE: 9pt">　</span>
						<span style="FONT-SIZE: 9pt; COLOR: green">　第一种情况是从数据库中读取数值后，存放在<span lang="EN-US">ResultSet对象中的是SQL类型的数据。而调用“get”系列方法时，JDBC才将SQL类型转换为指定的Java类型</span></span>
						<span style="FONT-SIZE: 9pt">。在一般情形下，<span lang="EN-US">SQL类型相对应的Java类型如表11-2所示。</span></span>
				</font>
		</p>
		<p>
				<span style="FONT-SIZE: 9pt">
						<font face="宋体">　　表<span lang="EN-US">11.2 SQL类型一般所对应的Java类型</span></font>
				</span>
		</p>
		<p>
		</p>
		<table cellspacing="0" cellpadding="0" width="350" border="1">
				<tbody>
						<tr>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BACKGROUND: #006666; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BORDER-RIGHT-COLOR: #d4d0c8" width="143">
										<p style="TEXT-ALIGN: center" align="center">
												<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #ffff99; FONT-FAMILY: 宋体">SQL type</span>
										</p>
								</td>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BACKGROUND: #006666; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BORDER-RIGHT-COLOR: #d4d0c8" width="197">
										<p style="TEXT-ALIGN: center" align="center">
												<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #ffff99; FONT-FAMILY: 宋体">Java type</span>
										</p>
								</td>
						</tr>
						<tr>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143">
										<p>
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">CHAR</span>
										</p>
								</td>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197">
										<p>
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">java.lang.String</span>
										</p>
								</td>
						</tr>
						<tr>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143">
										<p>
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">VARCHAR</span>
										</p>
								</td>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197">
										<p>
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">java.lang.String</span>
										</p>
								</td>
						</tr>
						<tr>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143">
										<p>
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">LONGVARCHAR</span>
										</p>
								</td>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197">
										<p>
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">java.lang.String</span>
										</p>
								</td>
						</tr>
						<tr>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143">
										<p>
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">NUMERIC</span>
										</p>
								</td>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197">
										<p>
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">java.lang.Bignum</span>
										</p>
								</td>
						</tr>
						<tr>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143">
										<p>
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">DECIMAL</span>
										</p>
								</td>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197">
										<p>
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">java.lang.Bignum</span>
										</p>
								</td>
						</tr>
						<tr>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143">
										<p>
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">BIT</span>
										</p>
								</td>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197">
										<p>
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">boolean</span>
										</p>
								</td>
						</tr>
						<tr>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143">
										<p>
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">TINYINT</span>
										</p>
								</td>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197">
										<p>
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">byte</span>
										</p>
								</td>
						</tr>
						<tr>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143">
										<p>
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">SMALLINT</span>
										</p>
								</td>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197">
										<p>
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">short</span>
										</p>
								</td>
						</tr>
						<tr>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143">
										<p>
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">INTEGER</span>
										</p>
								</td>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197">
										<p>
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">int</span>
										</p>
								</td>
						</tr>
						<tr>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143">
										<p>
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">BIGINT</span>
										</p>
								</td>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197">
										<p>
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">long</span>
										</p>
								</td>
						</tr>
						<tr>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143">
										<p>
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">REAL</span>
										</p>
								</td>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197">
										<p>
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">float</span>
										</p>
								</td>
						</tr>
						<tr>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143">
										<p>
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">FLOAT</span>
										</p>
								</td>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197">
										<p>
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">double</span>
										</p>
								</td>
						</tr>
						<tr>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143">
										<p>
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">DOUBLE</span>
										</p>
								</td>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197">
										<p>
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">double</span>
										</p>
								</td>
						</tr>
						<tr>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143">
										<p>
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">BINARY</span>
										</p>
								</td>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197">
										<p>
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">byte[]</span>
										</p>
								</td>
						</tr>
						<tr>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143">
										<p>
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">VARBINARY</span>
										</p>
								</td>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197">
										<p>
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">byte[]</span>
										</p>
								</td>
						</tr>
						<tr>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143">
										<p>
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">LONGVARBINARY</span>
										</p>
								</td>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197">
										<p>
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">byte[]</span>
										</p>
								</td>
						</tr>
						<tr>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143">
										<p>
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">DATE</span>
										</p>
								</td>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197">
										<p>
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">java.sql.Date</span>
										</p>
								</td>
						</tr>
						<tr>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143">
										<p>
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">TIME</span>
										</p>
								</td>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197">
										<p>
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">java.sql.Time</span>
										</p>
								</td>
						</tr>
						<tr>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143">
										<p>
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">TIMESTAMP</span>
										</p>
								</td>
								<td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197">
										<p>
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">java.sql.Timestamp</span>
										</p>
								</td>
						</tr>
				</tbody>
		</table>
		<p>
				<span style="FONT-SIZE: 9pt">
						<font face="宋体">　　当然，在使用时用户可以指定将<span lang="EN-US">SQL类型转换为某个需要的特定类型而不遵循表11.2。例如在结果集中的某个FLOAT型数值，依标准转换应用使用getDouble方法获取，但实际上按用户的不同需求也可以使用getFloat，getInt，甚至gefByte方法获取，但只是有可能影响数值精确度。</span></font>
				</span>
		</p>
<img src ="http://www.blogjava.net/bnlovebn/aggbug/79395.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/bnlovebn/" target="_blank">重归本垒（Bing）</a> 2006-11-06 14:15 <a href="http://www.blogjava.net/bnlovebn/archive/2006/11/06/79395.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ALTER在不同数据库的用法</title><link>http://www.blogjava.net/bnlovebn/archive/2006/11/06/79339.html</link><dc:creator>重归本垒（Bing）</dc:creator><author>重归本垒（Bing）</author><pubDate>Mon, 06 Nov 2006 02:46:00 GMT</pubDate><guid>http://www.blogjava.net/bnlovebn/archive/2006/11/06/79339.html</guid><wfw:comment>http://www.blogjava.net/bnlovebn/comments/79339.html</wfw:comment><comments>http://www.blogjava.net/bnlovebn/archive/2006/11/06/79339.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/bnlovebn/comments/commentRss/79339.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/bnlovebn/services/trackbacks/79339.html</trackback:ping><description><![CDATA[
		<span class="content">
				<br />下面是几种不同数据库的升级脚本比较,实际上是对不同数据库版本的ALTER命令用法的比较<br /><br />约定:[]内的内容可有可无<br /><br />1,修改字段类型[关键字:modify&amp;alter]<br /><br /><font color="red">mysql:</font><br /><br />ALTER TABLE 表名 MODIFY [COLUMN] 字段名 字段类型定义;<br /><br /><font color="red">sqlserver:</font><br /><br />ALTER TABLE 表名 ALTER COLUMN 字段名 字段类型定义;<br />[这里在修改约束的时候需要用到专门的关键字CONSTRAINT]<br /><br /><font color="red">oracle:</font><br /><br />ALTER TABLE 表名 MODIFY ( 字段名 字段类型定义);<br />[Oracle，修改类型时所改字段的数据必须为空：]<br /><br />2,增加和删除字段<br /><br />增加字段<br /><br />ALTER TABLE 表名 ADD 字段名 字段类型定义;<br /><br />删除字段<br /><br /><font color="red">mysql:</font><br />ALTER TABLE 表名 DROP[COLUMN] 字段名<br /><br /><font color="red">sqlserver:</font><br />ALTER TABLE 表名 DROP COLUMN 字段名<br /><br />3,修改列名<br /><br /><font color="red">mysql:</font><br />可以用CHANGE同时修改列名和列类型,如：<br />ALTER TABLE table CHANGE column newcolumn BIT NOT NULL<br />这里column和newcolumn可以相同，<br />也就是说，CHANGE可以取代MODIFY了，可以用来单纯修改列类型或者列名<br /><br /><font color="red">sqlserver:</font><br />暂时只能调用存储过程 <br />EXEC SP_RENAME table.column','newcolumn','COLUMN'<br /><br /><font color="red">oracle:</font><br />在817版本以上支持RENAME了，没有具体测试过，9i以上版本比较保险<br />ALTER TABLE table RENAME COLUMN column TO newcolumn; <br /></span>
<img src ="http://www.blogjava.net/bnlovebn/aggbug/79339.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/bnlovebn/" target="_blank">重归本垒（Bing）</a> 2006-11-06 10:46 <a href="http://www.blogjava.net/bnlovebn/archive/2006/11/06/79339.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ORACLE 自增序列SEQUENCE</title><link>http://www.blogjava.net/bnlovebn/archive/2006/10/20/76388.html</link><dc:creator>重归本垒（Bing）</dc:creator><author>重归本垒（Bing）</author><pubDate>Fri, 20 Oct 2006 07:04:00 GMT</pubDate><guid>http://www.blogjava.net/bnlovebn/archive/2006/10/20/76388.html</guid><wfw:comment>http://www.blogjava.net/bnlovebn/comments/76388.html</wfw:comment><comments>http://www.blogjava.net/bnlovebn/archive/2006/10/20/76388.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/bnlovebn/comments/commentRss/76388.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/bnlovebn/services/trackbacks/76388.html</trackback:ping><description><![CDATA[
		<br />
		<br />在oracle中sequence就是所谓的序列号，每次取的时候它会自动增加，一般用在需要按序列号排序的地方。 <br />1、Create Sequence <br />你首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE权限， <br />CREATE SEQUENCE emp_sequence <br />INCREMENT BY 1 -- 每次加几个 <br />START WITH 1 -- 从1开始计数 <br />NOMAXVALUE -- 不设置最大值 <br />NOCYCLE -- 一直累加，不循环 <br />CACHE 10; <br /><br />一旦定义了emp_sequence，你就可以用CURRVAL，NEXTVAL <br />CURRVAL=返回 sequence的当前值 <br />NEXTVAL=增加sequence的值，然后返回 sequence 值 <br />比如： <br />emp_sequence.CURRVAL <br />emp_sequence.NEXTVAL <br /><br />可以使用sequence的地方： <br />- 不包含子查询、snapshot、VIEW的 SELECT 语句 <br />- INSERT语句的子查询中 <br />- NSERT语句的VALUES中 <br />- UPDATE 的 SET中 <br /><br />可以看如下例子： <br />INSERT INTO emp VALUES <br />(empseq.nextval, 'LEWIS', 'CLERK',7902, SYSDATE, 1200, NULL, 20); <br /><br />SELECT empseq.currval FROM DUAL; <br /><br />但是要注意的是： <br />- 第一次NEXTVAL返回的是初始值；随后的NEXTVAL会自动增加你定义的INCREMENT BY值，然后返回增加后的值。CURRVAL 总是返回当前SEQUENCE的值，但是在第一次NEXTVAL初始化之后才能使用CURRVAL，否则会出错。一次NEXTVAL会增加一次SEQUENCE的值，所以如果你在同一个语句里面使用多个NEXTVAL，其值就是不一样的。明白？ <br /><br />- 如果指定CACHE值，ORACLE就可以预先在内存里面放置一些sequence，这样存取的快些。cache里面的取完后，oracle自动再取一组到cache。 使用cache或许会跳号， 比如数据库突然不正常down掉（shutdown abort),cache中的sequence就会丢失. 所以可以在create sequence的时候用nocache防止这种情况。 <br /><br />2、Alter Sequence <br />你或者是该sequence的owner，或者有ALTER ANY SEQUENCE 权限才能改动sequence. 可以alter除start至以外的所有sequence参数.如果想要改变start值，必须 drop sequence 再 re-create . <br />Alter sequence 的例子 <br />ALTER SEQUENCE emp_sequence <br />INCREMENT BY 10 <br />MAXVALUE 10000 <br />CYCLE -- 到10000后从头开始 <br />NOCACHE ; <br /><br /><br />影响Sequence的初始化参数： <br />SEQUENCE_CACHE_ENTRIES =设置能同时被cache的sequence数目。 <br /><br />可以很简单的Drop Sequence <br />DROP SEQUENCE order_seq; <br /><br />示例Sequence：<br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000">CREATE SEQUENCE SCOTT.DMIFPOSTID <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    START WITH </span><span style="COLOR: #000000">261</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    INCREMENT BY </span><span style="COLOR: #000000">1</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    NOMINVALUE<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    NOMAXVALUE<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    NOCYCLE<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    CACHE </span><span style="COLOR: #000000">20</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    NOORDER</span></div><br /><br />3、如何使用<br />         第一种方法：一般来说需要新建一个触发器（TRIGGER），使得在插入数据之前先运行Sequence生成自增号。<br />示例Trigger<br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000">CREATE OR REPLACE TRIGGER SCOTT.DMIFATTACH_TRG<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />BEFORE INSERT <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />ON SCOTT.DMIFATTACH<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />REFERENCING OLD AS OLD NEW AS NEW<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />FOR EACH ROW <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />begin<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    select SCOTT.DMIFATTACHID.nextval into :</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">.ATTACHID from dual;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  end;</span></div><br />         第二种方法：可以在插入数据时直接调用。<br />          insert into table(id,name) values(seq_name.nextval,'名字');<br /><br />         其它：对于hibernate来说，在插入数据之前会先运行一次Sequence生成id的，所以这时如果还有触发器（TRIGGER），又要再运行一次Sequence，于是就会发现id是以２为步进增加的。这时把Trigger删除，步进就为１了。<br />         如果使用hibernate则需要在hbm.xml文件中把ＩＤ的生成方式设为sequence.<br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000">    </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">id<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />        name</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">postid</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />        type</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">java.lang.Integer</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />        column</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">POSTID</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />        </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">meta attribute</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">field-description</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />           @hibernate.id<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />            generator</span><span style="COLOR: #000000">-</span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">sequence</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />            type</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">java.lang.Integer</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />            column</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">POSTID</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />        </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">meta</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />        </span><span style="COLOR: #000000">&lt;!--</span><span style="COLOR: #000000">设置id生成方式</span><span style="COLOR: #000000">--&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />          </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">generator </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">sequence</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />            </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">param name</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">sequence</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">SCOTT.DMIFPOSTID</span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">param</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />         </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">generator</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">id</span><span style="COLOR: #000000">&gt;</span></div><br />同时在调用this.getHibernateTemplate().save()方法时会自动生成根据sequence把查询到的id号set给这个对象的id.<img src ="http://www.blogjava.net/bnlovebn/aggbug/76388.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/bnlovebn/" target="_blank">重归本垒（Bing）</a> 2006-10-20 15:04 <a href="http://www.blogjava.net/bnlovebn/archive/2006/10/20/76388.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>