﻿<?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-少年阿宾-随笔分类-oracle</title><link>http://www.blogjava.net/stevenjohn/category/51103.html</link><description>那些青春的岁月</description><language>zh-cn</language><lastBuildDate>Wed, 21 Aug 2013 02:47:19 GMT</lastBuildDate><pubDate>Wed, 21 Aug 2013 02:47:19 GMT</pubDate><ttl>60</ttl><item><title>Oracle行级锁和表级锁 </title><link>http://www.blogjava.net/stevenjohn/archive/2013/08/20/403102.html</link><dc:creator>abin</dc:creator><author>abin</author><pubDate>Tue, 20 Aug 2013 14:38:00 GMT</pubDate><guid>http://www.blogjava.net/stevenjohn/archive/2013/08/20/403102.html</guid><wfw:comment>http://www.blogjava.net/stevenjohn/comments/403102.html</wfw:comment><comments>http://www.blogjava.net/stevenjohn/archive/2013/08/20/403102.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stevenjohn/comments/commentRss/403102.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stevenjohn/services/trackbacks/403102.html</trackback:ping><description><![CDATA[行级锁:<br />select * from abin1 t where t.id=21 for update;<br /><br />表级锁:<br />lock table abin1 IN EXCLUSIVE MODE (nowait);<img src ="http://www.blogjava.net/stevenjohn/aggbug/403102.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stevenjohn/" target="_blank">abin</a> 2013-08-20 22:38 <a href="http://www.blogjava.net/stevenjohn/archive/2013/08/20/403102.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ORACLE分页SQL语句</title><link>http://www.blogjava.net/stevenjohn/archive/2013/05/10/399100.html</link><dc:creator>abin</dc:creator><author>abin</author><pubDate>Fri, 10 May 2013 05:29:00 GMT</pubDate><guid>http://www.blogjava.net/stevenjohn/archive/2013/05/10/399100.html</guid><wfw:comment>http://www.blogjava.net/stevenjohn/comments/399100.html</wfw:comment><comments>http://www.blogjava.net/stevenjohn/archive/2013/05/10/399100.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stevenjohn/comments/commentRss/399100.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stevenjohn/services/trackbacks/399100.html</trackback:ping><description><![CDATA[<p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #f5f5f5;">1.根据ROWID来分<br />select * from t_xiaoxi where rowid in(select rid from (select rownum rn,rid from(select rowid rid,cid from</p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #f5f5f5;">t_xiaoxi&nbsp; order by cid desc) where rownum&lt;10000) where rn&gt;9980) order by cid desc;<br />执行时间0.03秒<br />2.按分析函数来分<br />select * from (select t.*,row_number() over(order by cid desc) rk from t_xiaoxi t) where rk&lt;10000 and rk&gt;9980;<br />执行时间1.01秒<br />3.按ROWNUM来分<br />select * from(select t.*,rownum rn from(select * from t_xiaoxi order by cid desc) t where rownum&lt;10000) where</p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #f5f5f5;">rn&gt;9980;执行时间0.1秒<br />其中t_xiaoxi为表名称，cid为表的关键字段，取按CID降序排序后的第9981-9999条记录，t_xiaoxi表有70000多条记录<br />个人感觉1的效率最好，3次之，2最差</p><img src ="http://www.blogjava.net/stevenjohn/aggbug/399100.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stevenjohn/" target="_blank">abin</a> 2013-05-10 13:29 <a href="http://www.blogjava.net/stevenjohn/archive/2013/05/10/399100.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>PRAGMA AUTONOMOUS_TRANSACTION(自治事务) </title><link>http://www.blogjava.net/stevenjohn/archive/2013/03/08/396198.html</link><dc:creator>abin</dc:creator><author>abin</author><pubDate>Fri, 08 Mar 2013 08:29:00 GMT</pubDate><guid>http://www.blogjava.net/stevenjohn/archive/2013/03/08/396198.html</guid><wfw:comment>http://www.blogjava.net/stevenjohn/comments/396198.html</wfw:comment><comments>http://www.blogjava.net/stevenjohn/archive/2013/03/08/396198.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stevenjohn/comments/commentRss/396198.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stevenjohn/services/trackbacks/396198.html</trackback:ping><description><![CDATA[<p>这段时间遇到一个问题，程序里明明插入了一条记录，但在后边的一段Procedure中却查不到刚刚插入的记录,最后发现这个Procedure的定义中加入了<span style="font-weight: bold">PRAGMA AUTONOMOUS_TRANSACTION</span>。</p>
<p>PRAGMA AUTONOMOUS_TRANSACTION中文翻译过来叫&#8220;<strong>自治事务</strong>&#8221;（翻译的还算好理解），对于定义成自治事务的Procedure，实际上相当于一段独立运行的程序段，这段程序<strong>不依赖于</strong>主程序，也<strong>不干涉</strong>主程序</p><br /><br />
<h2>自治事务的特点</h2>
<p>第一,这段程序不依赖于原有Main程序，比如Main程序中有未提交的数据，那么在自治事务中是查找不到的。</p>
<p>第二,在自治事务中，commit或者rollback只会提交或回滚当前自治事务中的DML，不会影响到Main程序中的DML。</p>
<p><br /></p>
<h2>Autonomous Transaction Demo 1</h2>
<p><strong><span style="font-family: Arial; font-size: 12px">Without Pragma Autonomous Transaction</span></strong><br /></p>
<p><!--StartFragment -->
</p>
<div>CREATE&nbsp;TABLE&nbsp;t&nbsp;(&nbsp;&nbsp;<br />test_value&nbsp;VARCHAR2(25));&nbsp;&nbsp;<br />&nbsp;&nbsp;<br />CREATE&nbsp;OR&nbsp;REPLACE&nbsp;PROCEDURE&nbsp;child_block&nbsp;IS&nbsp;&nbsp;<br />&nbsp;&nbsp;<br />BEGIN&nbsp;&nbsp;<br />&nbsp;&nbsp;INSERT&nbsp;INTO&nbsp;t&nbsp;&nbsp;<br />&nbsp;&nbsp;(test_value)&nbsp;&nbsp;<br />&nbsp;&nbsp;VALUES&nbsp;&nbsp;<br />&nbsp;&nbsp;('Child&nbsp;block&nbsp;insert');&nbsp;&nbsp;<br />&nbsp;&nbsp;COMMIT;&nbsp;&nbsp;<br />END&nbsp;child_block;&nbsp;&nbsp;<br />/&nbsp;&nbsp;<br />&nbsp;&nbsp;<br />CREATE&nbsp;OR&nbsp;REPLACE&nbsp;PROCEDURE&nbsp;parent_block&nbsp;IS&nbsp;&nbsp;<br />&nbsp;&nbsp;<br />BEGIN&nbsp;&nbsp;<br />&nbsp;&nbsp;INSERT&nbsp;INTO&nbsp;t&nbsp;&nbsp;<br />&nbsp;&nbsp;(test_value)&nbsp;&nbsp;<br />&nbsp;&nbsp;VALUES&nbsp;&nbsp;<br />&nbsp;&nbsp;('Parent&nbsp;block&nbsp;insert');&nbsp;&nbsp;<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;child_block;&nbsp;&nbsp;<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;ROLLBACK;&nbsp;&nbsp;<br />END&nbsp;parent_block;&nbsp;&nbsp;<br />/&nbsp;&nbsp;<br />&nbsp;&nbsp;<br />--&nbsp;run&nbsp;the&nbsp;parent&nbsp;procedure&nbsp;&nbsp;&nbsp;<br />exec&nbsp;parent_block&nbsp;&nbsp;<br />&nbsp;&nbsp;<br />--&nbsp;check&nbsp;the&nbsp;results&nbsp;&nbsp;&nbsp;<br />SELECT&nbsp;*&nbsp;FROM&nbsp;t;&nbsp;&nbsp;<br /><br /><br /><br /><!--StartFragment -->

<div>Output:&nbsp;&nbsp;<br />Parent&nbsp;block&nbsp;insert&nbsp;&nbsp;<br />Child&nbsp;block&nbsp;insert&nbsp;&nbsp;<br /></div><br /></div>
<p><br /><br /><br /><span style="font-family: Arial; font-size: 12px"><strong>With Pragma Autonomous Transaction</strong></span><br /><br /><!--StartFragment -->
</p>
<div>CREATE&nbsp;OR&nbsp;REPLACE&nbsp;PROCEDURE&nbsp;child_block&nbsp;IS&nbsp;&nbsp;<br />&nbsp;&nbsp;<br />PRAGMA&nbsp;AUTONOMOUS_TRANSACTION;&nbsp;&nbsp;<br />&nbsp;&nbsp;<br />BEGIN&nbsp;&nbsp;<br />&nbsp;&nbsp;INSERT&nbsp;INTO&nbsp;t&nbsp;&nbsp;<br />&nbsp;&nbsp;(test_value)&nbsp;&nbsp;<br />&nbsp;&nbsp;VALUES&nbsp;&nbsp;<br />&nbsp;&nbsp;('Child&nbsp;block&nbsp;insert');&nbsp;&nbsp;<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;COMMIT;&nbsp;&nbsp;<br />END&nbsp;child_block;&nbsp;&nbsp;<br />/&nbsp;&nbsp;<br />&nbsp;&nbsp;<br />CREATE&nbsp;OR&nbsp;REPLACE&nbsp;PROCEDURE&nbsp;parent_block&nbsp;IS&nbsp;&nbsp;<br />&nbsp;&nbsp;<br />BEGIN&nbsp;&nbsp;<br />&nbsp;&nbsp;INSERT&nbsp;INTO&nbsp;t&nbsp;&nbsp;<br />&nbsp;&nbsp;(test_value)&nbsp;&nbsp;<br />&nbsp;&nbsp;VALUES&nbsp;&nbsp;<br />&nbsp;&nbsp;('Parent&nbsp;block&nbsp;insert');&nbsp;&nbsp;<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;child_block;&nbsp;&nbsp;<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;ROLLBACK;&nbsp;&nbsp;<br />END&nbsp;parent_block;&nbsp;&nbsp;<br />/&nbsp;&nbsp;<br />--&nbsp;empty&nbsp;the&nbsp;test&nbsp;table&nbsp;&nbsp;&nbsp;<br />TRUNCATE&nbsp;TABLE&nbsp;t;&nbsp;&nbsp;<br />&nbsp;&nbsp;<br />--&nbsp;run&nbsp;the&nbsp;parent&nbsp;procedure&nbsp;&nbsp;&nbsp;<br />exec&nbsp;parent_block;&nbsp;&nbsp;<br />&nbsp;&nbsp;<br />--&nbsp;check&nbsp;the&nbsp;results&nbsp;&nbsp;&nbsp;<br />SELECT&nbsp;*&nbsp;FROM&nbsp;t;&nbsp;&nbsp;<br /></div>
<p>&nbsp;</p><br /><br /><!--StartFragment -->

<div>Output:&nbsp;&nbsp;<br />Child&nbsp;block&nbsp;insert&nbsp;&nbsp;<br /></div><br /><br /><br />
<h2>Autonomous Transaction Demo 2</h2><strong><span style="font-family: Arial; font-size: 12px">Without Pragma Autonomous Transaction</span></strong> <br />DROP TABLE t;&nbsp; <br />&nbsp; <br />CREATE TABLE t (testcol NUMBER);&nbsp; <br />&nbsp; <br />CREATE OR REPLACE FUNCTION howmanyrows RETURN INTEGER IS&nbsp; <br />&nbsp;i INTEGER;&nbsp; <br />BEGIN&nbsp; <br />&nbsp; SELECT COUNT(*)&nbsp; <br />&nbsp; INTO i&nbsp; <br />&nbsp; FROM t;&nbsp; <br />&nbsp; <br />&nbsp; RETURN i;&nbsp; <br />END howmanyrows;&nbsp; <br />/&nbsp; <br />&nbsp; <br />CREATE OR REPLACE PROCEDURE testproc IS&nbsp; <br />&nbsp;a INTEGER;&nbsp; <br />&nbsp;b INTEGER;&nbsp; <br />&nbsp;c INTEGER;&nbsp; <br />BEGIN&nbsp; <br />&nbsp; SELECT COUNT(*)&nbsp; <br />&nbsp; INTO a&nbsp; <br />&nbsp; FROM t;&nbsp; <br />&nbsp; <br />&nbsp; INSERT INTO t VALUES (1);&nbsp; <br />&nbsp; COMMIT;&nbsp; <br />&nbsp; <br />&nbsp; INSERT INTO t VALUES (2);&nbsp; <br />&nbsp; INSERT INTO t VALUES (3);&nbsp; <br />&nbsp; <br />&nbsp; b := howmanyrows;&nbsp; <br />&nbsp; <br />&nbsp; INSERT INTO t VALUES (4);&nbsp; <br />&nbsp; INSERT INTO t VALUES (5);&nbsp; <br />&nbsp; INSERT INTO t VALUES (6);&nbsp; <br />&nbsp; COMMIT;&nbsp; <br />&nbsp; <br />&nbsp; SELECT COUNT(*)&nbsp; <br />&nbsp; INTO c&nbsp; <br />&nbsp; FROM t;&nbsp; <br />&nbsp; <br />&nbsp; dbms_output.put_line(a);&nbsp; <br />&nbsp; dbms_output.put_line(b);&nbsp; <br />&nbsp; dbms_output.put_line(c);&nbsp; <br />END testproc;&nbsp; <br />/&nbsp; <br />&nbsp; <br />set serveroutput on&nbsp; <br />&nbsp; <br />exec testproc&nbsp; <br /><br /><br /><br /><br /><!--StartFragment -->

<div>Output:&nbsp;&nbsp;<br />0&nbsp;&nbsp;<br />3&nbsp;&nbsp;<br />6&nbsp;&nbsp;<br />Total&nbsp;execution&nbsp;time&nbsp;2.782&nbsp;sec.&nbsp;&nbsp;<br /></div><br /><br /><br /><br /><span style="font-family: Arial; font-size: 12px"><strong>With Pragma Autonomous Transaction</strong></span> <br /><pre style="display: none" class="sql" name="code">CREATE OR REPLACE FUNCTION howmanyrows RETURN INTEGER IS
 i INTEGER;

 PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
  SELECT COUNT(*)
  INTO i
  FROM t;

  RETURN i;
END howmanyrows;
/

-- empty the test table
TRUNCATE TABLE t;

exec testproc;</pre><br /><br /><br /><!--StartFragment -->

<div>Output:&nbsp;&nbsp;<br />0&nbsp;&nbsp;<br />1&nbsp;&nbsp;<br />6&nbsp;&nbsp; </div><br /><br /><br /><br />转载请注明出处:<a href="http://blog.csdn.net/pan_tian/article/details/7675800"><font color="#ff9900">http://blog.csdn.net/pan_tian/article/details/7675800</font></a><br /><br /><br /><br /><br /><img src ="http://www.blogjava.net/stevenjohn/aggbug/396198.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stevenjohn/" target="_blank">abin</a> 2013-03-08 16:29 <a href="http://www.blogjava.net/stevenjohn/archive/2013/03/08/396198.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>pl/sql中按F8执行单行语句 </title><link>http://www.blogjava.net/stevenjohn/archive/2013/01/29/394860.html</link><dc:creator>abin</dc:creator><author>abin</author><pubDate>Tue, 29 Jan 2013 03:28:00 GMT</pubDate><guid>http://www.blogjava.net/stevenjohn/archive/2013/01/29/394860.html</guid><wfw:comment>http://www.blogjava.net/stevenjohn/comments/394860.html</wfw:comment><comments>http://www.blogjava.net/stevenjohn/archive/2013/01/29/394860.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stevenjohn/comments/commentRss/394860.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stevenjohn/services/trackbacks/394860.html</trackback:ping><description><![CDATA[<div class="postText">
<p style="padding-bottom: 0px; background-color: #ffffff; margin: 0px; padding-left: 0px; padding-right: 0px; font-family: tahoma, helvetica, arial; color: #454545; padding-top: 0px"><span style="font-size: 18px"><span style="font-size: 14px">pl/sql中设置:</span></span><strong><span style="font-size: 18px"><br /></span></strong></p>
<p style="padding-bottom: 0px; background-color: #ffffff; margin: 0px; padding-left: 0px; padding-right: 0px; font-family: tahoma, helvetica, arial; color: #454545; padding-top: 0px"><strong><span style="font-size: 18px">tools-&gt;preferences-&gt;sql&nbsp;window-&gt;AutoSelect&nbsp;statement</span></strong><br /></p>
<p style="padding-bottom: 0px; background-color: #ffffff; margin: 0px; padding-left: 0px; padding-right: 0px; font-family: tahoma, helvetica, arial; color: #454545; padding-top: 0px">然后光标放在一行，按F8就可以了,&nbsp;注意:&nbsp;每个语句结尾还要分号标注一下！</p></div><img src ="http://www.blogjava.net/stevenjohn/aggbug/394860.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stevenjohn/" target="_blank">abin</a> 2013-01-29 11:28 <a href="http://www.blogjava.net/stevenjohn/archive/2013/01/29/394860.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jdbc 操作oracle CLOB字段</title><link>http://www.blogjava.net/stevenjohn/archive/2013/01/08/393991.html</link><dc:creator>abin</dc:creator><author>abin</author><pubDate>Tue, 08 Jan 2013 14:00:00 GMT</pubDate><guid>http://www.blogjava.net/stevenjohn/archive/2013/01/08/393991.html</guid><wfw:comment>http://www.blogjava.net/stevenjohn/comments/393991.html</wfw:comment><comments>http://www.blogjava.net/stevenjohn/archive/2013/01/08/393991.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stevenjohn/comments/commentRss/393991.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stevenjohn/services/trackbacks/393991.html</trackback:ping><description><![CDATA[<p><span style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">//这个适用于oracle10,11，以前oracle9操作CLOB字段相当的繁琐，记着导入驱动包<span class="Apple-converted-space">&nbsp;</span></span><br style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">package com.abin.wto.dbs.oracle;<span class="Apple-converted-space">&nbsp;</span></span><br style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><br style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">import java.sql.Connection;<span class="Apple-converted-space">&nbsp;</span></span><br style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">import java.sql.DriverManager;<span class="Apple-converted-space">&nbsp;</span></span><br style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">import java.sql.PreparedStatement;<span class="Apple-converted-space">&nbsp;</span></span><br style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">import java.sql.ResultSet;<span class="Apple-converted-space">&nbsp;</span></span><br style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><br style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">public class OperateOracle {<span class="Apple-converted-space">&nbsp;</span></span><br style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">public static void main(String[] args) {<span class="Apple-converted-space">&nbsp;</span></span><br style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">Connection conn=null;<span class="Apple-converted-space">&nbsp;</span></span><br style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">PreparedStatement ps=null;<span class="Apple-converted-space">&nbsp;</span></span><br style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">ResultSet rs=null;<span class="Apple-converted-space">&nbsp;</span></span><br style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">try {<span class="Apple-converted-space">&nbsp;</span></span><br style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();<span class="Apple-converted-space">&nbsp;</span></span><br style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">String url="jdbc:oracle:thin:@localhost:1521:XE";<span class="Apple-converted-space">&nbsp;</span></span><br style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">conn=DriverManager.getConnection(url,"abin","abin");<span class="Apple-converted-space">&nbsp;</span></span><br style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">String sql="insert into bignumber values(?,?)";<span class="Apple-converted-space">&nbsp;</span></span><br style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">ps=conn.prepareStatement(sql);<span class="Apple-converted-space">&nbsp;</span></span><br style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">ps.setInt(1, 1);<span class="Apple-converted-space">&nbsp;</span></span><br style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">oracle.sql.CLOB clob=oracle.sql.CLOB.createTemporary(conn, false, oracle.sql.CLOB.DURATION_SESSION);<span class="Apple-converted-space">&nbsp;</span></span><br style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">clob.open(oracle.sql.CLOB.MODE_READWRITE);<span class="Apple-converted-space">&nbsp;</span></span><br style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">clob.setString(3, "llll");<span class="Apple-converted-space">&nbsp;</span></span><br style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">ps.setClob(2, clob);<span class="Apple-converted-space">&nbsp;</span></span><br style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">int result=ps.executeUpdate();<span class="Apple-converted-space">&nbsp;</span></span><br style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">System.out.println("result="+result);<span class="Apple-converted-space">&nbsp;</span></span><br style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">} catch (Exception e) {<span class="Apple-converted-space">&nbsp;</span></span><br style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">e.printStackTrace();<span class="Apple-converted-space">&nbsp;</span></span><br style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">}<span class="Apple-converted-space">&nbsp;</span></span><br style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">}<span class="Apple-converted-space">&nbsp;</span></span><br style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><br style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">}<span class="Apple-converted-space">&nbsp;</span></span><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /></p>
<p>package com.abin.wto.dbs.oracle;</p>
<p>import java.sql.Connection;<br />import java.sql.DriverManager;<br />import java.sql.PreparedStatement;<br />import java.sql.ResultSet;<br />import java.sql.SQLException;</p>
<p>import oracle.sql.CLOB;</p>
<p>public class OperateOracle {<br />&nbsp;public static void main(String[] args) {<br />&nbsp;&nbsp;Connection conn=null;<br />&nbsp;&nbsp;PreparedStatement ps=null;<br />&nbsp;&nbsp;ResultSet rs=null;<br />&nbsp;&nbsp;try {<br />&nbsp;&nbsp;&nbsp;Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); <br />&nbsp;&nbsp;&nbsp;String url="jdbc:oracle:thin:@localhost:1521:XE"; <br />&nbsp;&nbsp;&nbsp;conn=DriverManager.getConnection(url,"abin","abin");<br />&nbsp;&nbsp;&nbsp;String sql="insert into bignumber values(?,?)";<br />&nbsp;&nbsp;&nbsp;ps=conn.prepareStatement(sql);<br />&nbsp;&nbsp;&nbsp;ps.setInt(1, 8888);<br />&nbsp;&nbsp;&nbsp;java.sql.Clob&nbsp; clob=oracle.sql.CLOB.createTemporary(conn, false, oracle.sql.CLOB.DURATION_SESSION);<br />&nbsp;&nbsp;&nbsp;clob.setString(1, "55555555555555");<br />&nbsp;&nbsp;&nbsp;ps.setClob(2, clob);<br />&nbsp;&nbsp;&nbsp;int result=ps.executeUpdate();<br />&nbsp;&nbsp;&nbsp;System.out.println("result="+result);<br />&nbsp;&nbsp;} catch (Exception e) {<br />&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />&nbsp;&nbsp;}finally{<br />&nbsp;&nbsp;&nbsp;if(ps!=null){<br />&nbsp;&nbsp;&nbsp;&nbsp;try {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ps.close();<br />&nbsp;&nbsp;&nbsp;&nbsp;} catch (SQLException e) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;try {<br />&nbsp;&nbsp;&nbsp;&nbsp;CLOB.freeTemporary(null);<br />&nbsp;&nbsp;&nbsp;} catch (SQLException e) {<br />&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;}<br />&nbsp;}</p>
<p>}<br /></p>
<p>&nbsp;</p><img src ="http://www.blogjava.net/stevenjohn/aggbug/393991.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stevenjohn/" target="_blank">abin</a> 2013-01-08 22:00 <a href="http://www.blogjava.net/stevenjohn/archive/2013/01/08/393991.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>sql 过滤重复记录</title><link>http://www.blogjava.net/stevenjohn/archive/2013/01/04/393780.html</link><dc:creator>abin</dc:creator><author>abin</author><pubDate>Fri, 04 Jan 2013 14:51:00 GMT</pubDate><guid>http://www.blogjava.net/stevenjohn/archive/2013/01/04/393780.html</guid><wfw:comment>http://www.blogjava.net/stevenjohn/comments/393780.html</wfw:comment><comments>http://www.blogjava.net/stevenjohn/archive/2013/01/04/393780.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stevenjohn/comments/commentRss/393780.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stevenjohn/services/trackbacks/393780.html</trackback:ping><description><![CDATA[select t.*,t.rowid from abin1 t;<br />删除重复的记录，只保留一条：<br />delete from abin1 t where rowid not in (select max(rowid) from abin1 s group by s.id1&nbsp; );<br />delete from abin1 t where t.rowid not in (select min(s.rowid) from abin1 s where t.id1=s.id1 group by s.id1)<br />删除全部重复记录：<br />delete from abin1 t where t.id1 in (select s.id1 from abin1 s group by s.id1 having count(s.id1)&gt;1 );<br />delete from abin1 t where exists (select * from abin1 s where t.id1=s.id1 group by s.id1 having count(s.id1)&gt;1)<br />取出有重复的记录，没有重复的单条记录不取：<br />select * from abin1 t where t.id1 in (select s.id1 from abin1 s group by s.id1 having(count(s.id1))&gt;1 );<br />select * from abin1 t where exists (select * from abin1 s where s.id1=t.id1 group by s.id1 having(count(s.id1))&gt;1);<br />删除重复记录（保留一条）：<br />delete from abin1 t where t.id1 not in(select max(s.id1) from abin1 s group by s.name1 having count(s.name1)&gt;0);<br /><br /><img src ="http://www.blogjava.net/stevenjohn/aggbug/393780.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stevenjohn/" target="_blank">abin</a> 2013-01-04 22:51 <a href="http://www.blogjava.net/stevenjohn/archive/2013/01/04/393780.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle回滚段的概念，用法和规划及问题的解决</title><link>http://www.blogjava.net/stevenjohn/archive/2012/12/14/392959.html</link><dc:creator>abin</dc:creator><author>abin</author><pubDate>Thu, 13 Dec 2012 16:10:00 GMT</pubDate><guid>http://www.blogjava.net/stevenjohn/archive/2012/12/14/392959.html</guid><wfw:comment>http://www.blogjava.net/stevenjohn/comments/392959.html</wfw:comment><comments>http://www.blogjava.net/stevenjohn/archive/2012/12/14/392959.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stevenjohn/comments/commentRss/392959.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stevenjohn/services/trackbacks/392959.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 删除回滚段&nbsp;　　当回滚段不再需要或要重建以改变INITIAL，NEXT或MINEXTENTS参数时，可以将其删除。要删除回滚段，不许使该回滚段离线。&nbsp;　　语法：&nbsp;DROP ROLLBACK SEGMENT rollback_segment;　　例：&nbsp;DROP ROLLBACK SEGMENT rbs01;　　查询回滚段的信息&nbsp;　　所用数据字典：DB...&nbsp;&nbsp;<a href='http://www.blogjava.net/stevenjohn/archive/2012/12/14/392959.html'>阅读全文</a><img src ="http://www.blogjava.net/stevenjohn/aggbug/392959.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stevenjohn/" target="_blank">abin</a> 2012-12-14 00:10 <a href="http://www.blogjava.net/stevenjohn/archive/2012/12/14/392959.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一个非典型的ORA-01555的解决</title><link>http://www.blogjava.net/stevenjohn/archive/2012/12/13/392957.html</link><dc:creator>abin</dc:creator><author>abin</author><pubDate>Thu, 13 Dec 2012 15:28:00 GMT</pubDate><guid>http://www.blogjava.net/stevenjohn/archive/2012/12/13/392957.html</guid><wfw:comment>http://www.blogjava.net/stevenjohn/comments/392957.html</wfw:comment><comments>http://www.blogjava.net/stevenjohn/archive/2012/12/13/392957.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stevenjohn/comments/commentRss/392957.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stevenjohn/services/trackbacks/392957.html</trackback:ping><description><![CDATA[<p>ORA-01555:快照过旧。&nbsp;&nbsp;&nbsp; 一个对于Oracle DBA来说最经典问题。<br />发生的根本原因：一致性读出了问题。&nbsp;&nbsp;&nbsp; </p>
<p>看到网上有个同学，举例说明，觉得不错，拿来用下：<br />假设有张表，叫table1，里面有5000万行数据，假设预计全表扫描1次需要1个小时，我们从过程来看：&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; <br />1、在1点钟，有个用户A发出了select * from table1;此时不管将来table1怎么变化，正确的结果应该是用户A会看到在1点钟这个时刻的内容。这个是没有疑问的。&nbsp;&nbsp;&nbsp; <br />2、在1点30分，有个用户B执行了update命令，更新了table1表中的第4000万行的这条记录，这时，用户A的全表扫描还没有到达第4000万条。毫无疑问，这个时候，第4000万行的这条记录是被写到了回滚段里去了的，我假设是回滚段RBS1，如果用户A的全表扫描到达了第4000万行，是应该会正确的从回滚段RBS1中读取出1点钟时刻的内容的。&nbsp;&nbsp;&nbsp; <br />3、这时，用户B将他刚才做的操作commit了，但是这时，系统仍然可以给用户A提供正确的数据，因为那第4000万行记录的内容仍然还在回滚段RBS1里，系统可以根据SCN来到回滚段里找到正确的数据，但是大家注意到，这时记录在RBS1里的第4000万行记录已经发生了一点重大的改变：就是这个第4000万行的在回滚段RBS1里的数据有可能随时被覆盖掉，因为这条记录已经被提交了！！！&nbsp;&nbsp;&nbsp; <br />4、由于用户A的查询时间漫长，而业务在一直不断的进行，RBS1回滚段在被多个不同的tracnsaction使用着，这个回滚段里的extent循环到了第4000万行数据所在的extent，由于这条记录已经被标记提交了，所以这个extent是可以被其他transaction覆盖掉的！&nbsp;&nbsp;&nbsp; <br />5、到了1点40分，用户A的查询终于到了第4000万行，而这时已经出现了第4条说的情况，需要到回滚段RBS1去找数据，但是已经被覆盖掉了，于是01555就出现了。&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; <br />这次出现的ORA-01555，引起的原因很特殊。&nbsp;&nbsp;&nbsp; <br />报错是回滚段SYSSMU1有问题.&nbsp;&nbsp;&nbsp; <br />所以断定的是，并不是因为大量的读写，造成的一致性读错误，而且因为回滚段的错误，使快照出现了问题。&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; <br />首先观察下回滚段：&nbsp;&nbsp;&nbsp; <br />SQL&gt; select segment_name,tablespace_name,status from dba_rollback_segs;&nbsp;&nbsp;&nbsp; <br />发现表空间UNDOTBS1的回滚段_SYSSMU1$-10$都是online。&nbsp;&nbsp;&nbsp; <br />发现表空间UNDOTBS2的回滚段SYSSMU1是竟然是needs recovery,其他都是offline。&nbsp;&nbsp;&nbsp; <br />最有趣的是这个数据库指定的UNDO是UNDOTBS1，UNDOTBS2实际已经被弃用了。&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; <br />尝试把该回滚段offline后删除，但是提示非法。&nbsp;&nbsp;&nbsp; <br />重启数据库后该回滚段状态变成了availabe。&nbsp;&nbsp;&nbsp; <br />再次尝试offline后删除，还是提示正在使用。&nbsp;&nbsp;&nbsp; </p>
<p>&nbsp;<br />用直接更新数据字典的方法&nbsp;&nbsp;&nbsp; <br />SQL&gt;update undo$ set status$=2 where name='SYSSMU1';&nbsp;&nbsp;&nbsp; <br />发现该回滚段状态变更为offline，drop掉即可。&nbsp;&nbsp;&nbsp; <br />ORA-1555不再出现。&nbsp;&nbsp;&nbsp; </p>
<p><br />本篇文章来源于 Linux公社网站(<a href="http://www.linuxidc.com">www.linuxidc.com</a>)&nbsp; 原文链接：<a href="http://www.linuxidc.com/Linux/2012-10/73260.htm">http://www.linuxidc.com/Linux/2012-10/73260.htm</a></p><img src ="http://www.blogjava.net/stevenjohn/aggbug/392957.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stevenjohn/" target="_blank">abin</a> 2012-12-13 23:28 <a href="http://www.blogjava.net/stevenjohn/archive/2012/12/13/392957.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle 正则表达式实例</title><link>http://www.blogjava.net/stevenjohn/archive/2012/12/06/392533.html</link><dc:creator>abin</dc:creator><author>abin</author><pubDate>Thu, 06 Dec 2012 03:42:00 GMT</pubDate><guid>http://www.blogjava.net/stevenjohn/archive/2012/12/06/392533.html</guid><wfw:comment>http://www.blogjava.net/stevenjohn/comments/392533.html</wfw:comment><comments>http://www.blogjava.net/stevenjohn/archive/2012/12/06/392533.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stevenjohn/comments/commentRss/392533.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stevenjohn/services/trackbacks/392533.html</trackback:ping><description><![CDATA[<div>1、oracle正则表达式很强大哟，去掉字符串的（如果字符串开头和结尾存在"双引号的话）起头和结尾的双引号<br />select regexp_replace('"1234"456"','^(")|(")$','') from dual;<br />2、过滤掉字段里面的所有大小写字母，大小写字母通杀<br />select regexp_replace(t.address,'^[a-z]+|[A-Z]+$','') from abin7 t;</div><img src ="http://www.blogjava.net/stevenjohn/aggbug/392533.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stevenjohn/" target="_blank">abin</a> 2012-12-06 11:42 <a href="http://www.blogjava.net/stevenjohn/archive/2012/12/06/392533.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle 常用连接和用法</title><link>http://www.blogjava.net/stevenjohn/archive/2012/12/05/392449.html</link><dc:creator>abin</dc:creator><author>abin</author><pubDate>Tue, 04 Dec 2012 16:33:00 GMT</pubDate><guid>http://www.blogjava.net/stevenjohn/archive/2012/12/05/392449.html</guid><wfw:comment>http://www.blogjava.net/stevenjohn/comments/392449.html</wfw:comment><comments>http://www.blogjava.net/stevenjohn/archive/2012/12/05/392449.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stevenjohn/comments/commentRss/392449.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stevenjohn/services/trackbacks/392449.html</trackback:ping><description><![CDATA[<div>
<div>create table abin6(id integer,<br />name nvarchar2(100),<br />score integer,<br />constraint pk_abin6 primary key(id));<br /><br />create table abin7(id integer,<br />address nvarchar2(100),<br />sid integer,<br />constraint pk_abin7 primary key(id),<br />constraint fk_abin7 foreign key (sid) references abin6(id)<br />);</div><br /><br /><br />select * from abin6 t left join abin7 s on t.id=s.sid and t.id=1;<br />select * from abin6 t left join abin7 s on t.id=s.sid where t.id=1;<br />select * from abin6 t,abin7 s where t.id=s.sid(+) ;<br />select * from abin6 t,abin7 s where t.id(+)=s.sid;<br />select * from abin6 t,abin7 s where s.sid(+)=t.id;<br />select * from abin6 t,abin7 s where s.sid=t.id(+);<br />select * from abin6 t inner join abin7 s on t.id=s.sid;<br />select * from abin6 t union select * from abin7 s where exists (select * from abin6 k where s.sid=k.id and k.id<br />=1);<br />select * from abin6 t full join abin7 s on t.id=s.sid;<br />select * from abin7 s full join abin6 t on s.sid=t.id;<br />select * from abin6 natural join abin7;<br />select * from abin6 t cross join abin7;<br /><br />以下两句是等价查询：<br />
<div>select * from abin6 t where id=1 or id=2;<br />select * from abin6 t where t.id=1 union all select * from abin6 s where s.id=2;<br /><br /><br />一。查找重复记录<br />1。查找全部重复记录<br />select * from abin4 s where s.name in (select t.name from abin4 t <br />group by t.name having count(t.name)&gt;1);<br />select * from abin4 s where exists (select * from abin4 t where t.name=s.name <br />group by t.name&nbsp; having count(t.name)&gt;1 );<br /><br />2。过滤重复记录(只显示一条)<br />select * from abin4 s where s.id in (select max(id) from abin4 t group by t.name );<br />二。删除重复记录 <br />1。删除全部重复记录（慎用） <br />Delete 表 Where 重复字段 In (Select 重复字段 From 表 Group By 重复字段 Having Count(*)&gt;1)<br />2。保留一条（这个应该是大多数人所需要的 ^_^）<br />Delete HZT Where ID Not In (Select Max(ID) From HZT Group By Title)<br />注：此处保留ID最大一条记录<br /><br /><br /><br /><br /><a href="http://blog.csdn.net/csskysea/article/details/6987760">http://blog.csdn.net/csskysea/article/details/6987760</a></div></div><img src ="http://www.blogjava.net/stevenjohn/aggbug/392449.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stevenjohn/" target="_blank">abin</a> 2012-12-05 00:33 <a href="http://www.blogjava.net/stevenjohn/archive/2012/12/05/392449.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle 中union的用法 </title><link>http://www.blogjava.net/stevenjohn/archive/2012/12/04/392446.html</link><dc:creator>abin</dc:creator><author>abin</author><pubDate>Tue, 04 Dec 2012 15:26:00 GMT</pubDate><guid>http://www.blogjava.net/stevenjohn/archive/2012/12/04/392446.html</guid><wfw:comment>http://www.blogjava.net/stevenjohn/comments/392446.html</wfw:comment><comments>http://www.blogjava.net/stevenjohn/archive/2012/12/04/392446.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stevenjohn/comments/commentRss/392446.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stevenjohn/services/trackbacks/392446.html</trackback:ping><description><![CDATA[<div><div id="cnblogs_post_body"> <p>UNION 指令的目的是将两个 SQL 语句的结果合并起来,可以查看你要的查询结果. <br /><br />例如: <br /><br />SELECT Date  FROM Store_Information <br />UNION <br />SELECT Date FROM Internet_Sales  <br /><br />注意:union用法中,两个select语句的字段类型匹配,而且字段个数要相同,如上面的例子,在实际的软件开发过程,会遇到更复杂的情况,具体请看下面的例子  <br /><br />select&nbsp; '1' as type,FL_ID,FL_CODE,FL_CNAME,FLDA.FL_PARENTID from FLDA  <br />WHERE ZT_ID=2006030002 <br />union&nbsp; <br />select&nbsp; '2' as type,XM_ID,XM_CODE  ,XM_CNAME ,FL_ID from XMDA <br />where exists (select * from (select&nbsp; FL_ID from  FLDA WHERE ZT_ID=2006030002 ) a where XMDA.fl_id=a.fl_id) <br />order by  type,FL_PARENTID ,FL_ID  <br /><br />这个句子的意思是将两个sql语句union查询出来,查询的条件就是看XMDA表中的FL_ID是否和主表FLDA里的FL_ID值相匹配,(也就是存在).  <br /><br />UNION在进行表链接后会筛选掉重复的记录，所以在表链接后会对所产生的结果集进行排序运算，删除重复的记录再返回结果。  <br /><br />在查询中会遇到 UNION  ALL,它的用法和union一样,只不过union含有distinct的功能,它会把两张表了重复的记录去掉,而union all不会,所以从效率上,union  all 会高一点,但在实际中用到的并不是很多. <br /><br />表头会用第一个连接块的字段。。。。。。。。。。 <br /><br />而UNION  ALL只是简单的将两个结果合并后就返回。这样，如果返回的两个结果集中有重复的数据，那么返回的结果集就会包含重复的数据了。  <br /><br />　　从效率上说，UNION ALL 要比UNION快很多，所以，如果可以确认合并的两个结果集中不包含重复的数据的话，那么就使用UNION  ALL，如下： <br /><br />尽量使用union all，因为union需要进行排序，去除重复记录，效率低</p></div></div><img src ="http://www.blogjava.net/stevenjohn/aggbug/392446.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stevenjohn/" target="_blank">abin</a> 2012-12-04 23:26 <a href="http://www.blogjava.net/stevenjohn/archive/2012/12/04/392446.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle natural join(自然连接)</title><link>http://www.blogjava.net/stevenjohn/archive/2012/12/04/392444.html</link><dc:creator>abin</dc:creator><author>abin</author><pubDate>Tue, 04 Dec 2012 15:22:00 GMT</pubDate><guid>http://www.blogjava.net/stevenjohn/archive/2012/12/04/392444.html</guid><wfw:comment>http://www.blogjava.net/stevenjohn/comments/392444.html</wfw:comment><comments>http://www.blogjava.net/stevenjohn/archive/2012/12/04/392444.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stevenjohn/comments/commentRss/392444.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stevenjohn/services/trackbacks/392444.html</trackback:ping><description><![CDATA[<div><div id="content" mod-cs-content="" text-content=""  clearfix"=""> <p>虽然natural join(自然连接)实际上的用的比较少，但实际上这个<a href="http://www.52oracle.com/join" target="_blank">连接</a>是非常有用的，若能经常使用一下，实际上是非常方便的。</p><p>自然连接是在两张表中寻找那些数据类型和列名都相同的字段，然后自动地将他们连接起来，并返回所有符合条件按的结果。</p><p>来看一下自然连接的例子。</p><p>Select emp.ename,dept.dname</p><p>From emp natural join dept;</p><p>这里我们并没有指定连接的条件，实际上oracle为我们自作主张的将，emp中的deptno和dept中的deptno做了连接。</p><p>也就是实际上相当于</p><p>Select emp.ename,dept.dname</p><p>From emp join dept on emp.deptno = dept.deptno;</p><p>因为这两张表的这两个字段deptno的类型个名称完全相同。所以使用natural join时被自然的连接在一起了。</p><p> </p><p>另外：</p><p>1.如果做自然连接的两个表的有多个字段都满足有相同名称个类型，那么他们会被作为自然连接的条件。</p><p>2.如果自然连接的两个表仅是字段名称相同，但数据类型不同，那么将会返回一个错误。</p><p>3.由于oracle中可以进行这种非常简单的natural join，我们在设计表时，应该尽量在不同表中具有相同含义的字段使用相同的名字和数据类型。以方便以后使用natural join</p><p>最后我们在前面举的例子都得到以下的结果：</p><p>SQL&gt; Select emp.ename,dept.dname</p><p>2 From emp natural join dept;</p><p> </p><p>ENAME DNAME</p><p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;-</p><p>SMITH RESEARCH</p><p>ALLEN SALES</p><p>WARD SALES</p><p>JONES RESEARCH</p><p>MARTIN SALES</p><p>BLAKE SALES</p><p>CLARK ACCOUNTING</p><p>SCOTT RESEARCH</p><p>KING ACCOUNTING</p><p>TURNER SALES</p><p>ADAMS RESEARCH</p><p>JAMES SALES</p><p>FORD RESEARCH</p><p>MILLER ACCOUNTING</p> </div></div><img src ="http://www.blogjava.net/stevenjohn/aggbug/392444.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stevenjohn/" target="_blank">abin</a> 2012-12-04 23:22 <a href="http://www.blogjava.net/stevenjohn/archive/2012/12/04/392444.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle alter table</title><link>http://www.blogjava.net/stevenjohn/archive/2012/12/03/392358.html</link><dc:creator>abin</dc:creator><author>abin</author><pubDate>Mon, 03 Dec 2012 02:51:00 GMT</pubDate><guid>http://www.blogjava.net/stevenjohn/archive/2012/12/03/392358.html</guid><wfw:comment>http://www.blogjava.net/stevenjohn/comments/392358.html</wfw:comment><comments>http://www.blogjava.net/stevenjohn/archive/2012/12/03/392358.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stevenjohn/comments/commentRss/392358.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stevenjohn/services/trackbacks/392358.html</trackback:ping><description><![CDATA[SQL&gt; create table lee(id number,name varchar2(100),score number,constraint pk_lee primary key(id));<br />&nbsp;<br />Table created<br /><br />&nbsp;SQL&gt; desc lee<br />Name&nbsp; Type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Nullable Default Comments <br />----- ------------- -------- ------- -------- <br />ID&nbsp;&nbsp;&nbsp; NUMBER&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; <br />NAME&nbsp; VARCHAR2(100) Y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />SCORE NUMBER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;<br />SQL&gt; alter table lee add createtime date;<br />&nbsp;<br />Table altered<br />&nbsp;<br />SQL&gt; desc lee<br />Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Nullable Default Comments <br />---------- ------------- -------- ------- -------- <br />ID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NUMBER&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; <br />NAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VARCHAR2(100) Y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />SCORE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NUMBER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />CREATETIME DATE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;<br />SQL&gt; alter table lee modify createtime nvarchar2(100);<br />&nbsp;<br />Table altered<br />&nbsp;<br />SQL&gt; desc lee<br />Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Nullable Default Comments <br />---------- -------------- -------- ------- -------- <br />ID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NUMBER&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; <br />NAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VARCHAR2(100)&nbsp; Y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />SCORE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NUMBER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />CREATETIME NVARCHAR2(100) Y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;<br />SQL&gt; alter table lee rename column createtime to mytime;<br />&nbsp;<br />Table altered<br />&nbsp;<br />SQL&gt; desc lee<br />Name&nbsp;&nbsp; Type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Nullable Default Comments <br />------ -------------- -------- ------- -------- <br />ID&nbsp;&nbsp;&nbsp;&nbsp; NUMBER&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; <br />NAME&nbsp;&nbsp; VARCHAR2(100)&nbsp; Y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />SCORE&nbsp; NUMBER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />MYTIME NVARCHAR2(100) Y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;<br />SQL&gt; alter table lee modify mytime date;<br />&nbsp;<br />Table altered<br />&nbsp;<br />SQL&gt; desc lee<br />Name&nbsp;&nbsp; Type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Nullable Default Comments <br />------ ------------- -------- ------- -------- <br />ID&nbsp;&nbsp;&nbsp;&nbsp; NUMBER&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; <br />NAME&nbsp;&nbsp; VARCHAR2(100) Y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />SCORE&nbsp; NUMBER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />MYTIME DATE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;<br />SQL&gt; desc lee<br />Name&nbsp;&nbsp; Type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Nullable Default Comments <br />------ ------------- -------- ------- -------- <br />ID&nbsp;&nbsp;&nbsp;&nbsp; NUMBER&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; <br />NAME&nbsp;&nbsp; VARCHAR2(100) Y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />SCORE&nbsp; NUMBER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />MYTIME DATE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Y&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;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;<br />SQL&gt; alter table lee rename column mytime to createtime;<br />&nbsp;<br />Table altered<br />&nbsp;<br />SQL&gt; desc lee<br />Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Nullable Default Comments <br />---------- ------------- -------- ------- -------- <br />ID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NUMBER&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; <br />NAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VARCHAR2(100) Y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />SCORE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NUMBER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />CREATETIME DATE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Y&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;<br />&nbsp;<br />SQL&gt; alter table lee drop column createtime;<br />&nbsp;<br />Table altered<br />&nbsp;<br />SQL&gt; desc lee<br />Name&nbsp; Type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Nullable Default Comments <br />----- ------------- -------- ------- -------- <br />ID&nbsp;&nbsp;&nbsp; NUMBER&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; <br />NAME&nbsp; VARCHAR2(100) Y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />SCORE NUMBER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;<br />SQL&gt; <img src ="http://www.blogjava.net/stevenjohn/aggbug/392358.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stevenjohn/" target="_blank">abin</a> 2012-12-03 10:51 <a href="http://www.blogjava.net/stevenjohn/archive/2012/12/03/392358.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ORACLE查看并修改最大连接数</title><link>http://www.blogjava.net/stevenjohn/archive/2012/10/31/390497.html</link><dc:creator>abin</dc:creator><author>abin</author><pubDate>Wed, 31 Oct 2012 01:47:00 GMT</pubDate><guid>http://www.blogjava.net/stevenjohn/archive/2012/10/31/390497.html</guid><wfw:comment>http://www.blogjava.net/stevenjohn/comments/390497.html</wfw:comment><comments>http://www.blogjava.net/stevenjohn/archive/2012/10/31/390497.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stevenjohn/comments/commentRss/390497.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stevenjohn/services/trackbacks/390497.html</trackback:ping><description><![CDATA[<p>1. 查看processes和sessions参数</p>
<p>SQL&gt; show parameter processes</p>
<p>NAME&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; TYPE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VALUE<br />------------------------------------ ----------- ------------------------------<br />aq_tm_processes&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; integer&nbsp;&nbsp;&nbsp;&nbsp; 1<br />db_writer_processes&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; integer&nbsp;&nbsp;&nbsp;&nbsp; 1<br />job_queue_processes&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; integer&nbsp;&nbsp;&nbsp;&nbsp; 10<br />log_archive_max_processes&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; integer&nbsp;&nbsp;&nbsp;&nbsp; 2<br />processes&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; integer&nbsp;&nbsp;&nbsp;&nbsp; 150</p>
<p>&nbsp;</p>
<p>SQL&gt; show parameter sessions</p>
<p>NAME&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; TYPE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VALUE<br />------------------------------------ ----------- ------------------------------<br />java_max_sessionspace_size&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; integer&nbsp;&nbsp;&nbsp;&nbsp; 0<br />java_soft_sessionspace_limit&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; integer&nbsp;&nbsp;&nbsp;&nbsp; 0<br />license_max_sessions&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; integer&nbsp;&nbsp;&nbsp;&nbsp; 0<br />license_sessions_warning&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; integer&nbsp;&nbsp;&nbsp;&nbsp; 0<br />logmnr_max_persistent_sessions&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; integer&nbsp;&nbsp;&nbsp;&nbsp; 1<br />mts_sessions&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; integer&nbsp;&nbsp;&nbsp;&nbsp; 165<br />sessions&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; integer&nbsp;&nbsp;&nbsp;&nbsp; 170<br />shared_server_sessions&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; integer&nbsp;&nbsp;&nbsp;&nbsp; 165<br />SQL&gt;</p>
<p>&nbsp;</p>
<p>2. 修改processes和sessions值</p>
<p>SQL&gt; alter system set processes=300 scope=spfile;</p>
<p>系统已更改。</p>
<p>SQL&gt; alter system set sessions=335 scope=spfile;</p>
<p>系统已更改。</p>
<p>3. 修改processes和sessions值必须重启oracle服务器才能生效</p>
<p>ORACLE的连接数(sessions)与其参数文件中的进程数(process)有关，它们的关系如下：</p>
<p>sessions=(1.1*process+5)</p>
<p>&nbsp;</p>
<p>　查询数据库当前进程的连接数：</p>
<p>　select count(*) from v$process;</p>
<p>　　查看数据库当前会话的连接数：</p>
<p>　　select count(*) from v$session;</p>
<p>　　查看数据库的并发连接数：</p>
<p>　　select count(*) from v$session where status='ACTIVE';</p>
<p>　　查看当前数据库建立的会话情况：</p>
<p>　　select sid,serial#,username,program,machine,status from v$session;</p>
<p>　查询数据库允许的最大连接数：</p>
<p>　　select value from v$parameter where name = 'processes';</p>
<p>　　或者：show parameter processes;</p>
<p>　　修改数据库允许的最大连接数：</p>
<p>　　alter system set processes = 300 scope = spfile;</p>
<p>　　(需要重启数据库才能实现连接数的修改)</p>
<p>　　重启数据库：</p>
<p>　　shutdown immediate;</p>
<p>　　startup;</p>
<p>　　查看当前有哪些用户正在使用数据：</p>
<p>　　select osuser,a.username,cpu_time/executions/1000000||'s',sql_fulltext,machine</p>
<p>　　from v$session a,v$sqlarea b</p>
<p>　　where a.sql_address = b.address</p>
<p>　　order by cpu_time/executions desc;</p>
<p>　　备注：UNIX 1个用户session对应一个操作系统process，而Windows体现在线程。</p>
<p>　　启动oracle</p>
<p>　　su - oracle</p>
<p>　　sqlplus system/pwd as sysdba&nbsp;&nbsp; //进入sql</p>
<p>　　startup&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; //启动数据库</p>
<p>　　lsnrctl start&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; //启动监听</p>
<p>　　sqlplus "/as sysdba"</p>
<p>　　shutdown immediate;</p>
<p>　　startup mount;</p>
<p>　　alter database open;</p><img src ="http://www.blogjava.net/stevenjohn/aggbug/390497.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stevenjohn/" target="_blank">abin</a> 2012-10-31 09:47 <a href="http://www.blogjava.net/stevenjohn/archive/2012/10/31/390497.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle事务的ACID特性  </title><link>http://www.blogjava.net/stevenjohn/archive/2012/10/21/389967.html</link><dc:creator>abin</dc:creator><author>abin</author><pubDate>Sun, 21 Oct 2012 08:37:00 GMT</pubDate><guid>http://www.blogjava.net/stevenjohn/archive/2012/10/21/389967.html</guid><wfw:comment>http://www.blogjava.net/stevenjohn/comments/389967.html</wfw:comment><comments>http://www.blogjava.net/stevenjohn/archive/2012/10/21/389967.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stevenjohn/comments/commentRss/389967.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stevenjohn/services/trackbacks/389967.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 1、原子性(Atomicity) 事务的原子性是指事务中包含的所有操作要么都做，要么都不做，保证数据库是一致的。 例如：A帐户向B帐户划账1000，则先将A减少1000，再将B增加1000，这两个动作要么都提交，要么都回退，不可能发生一个有效、一个无效的情况。 2、一致性(Consistency) 一致性是指数据库在事务操作前和事务处理后，其中的数据必须都满足业务规则约束。 ...&nbsp;&nbsp;<a href='http://www.blogjava.net/stevenjohn/archive/2012/10/21/389967.html'>阅读全文</a><img src ="http://www.blogjava.net/stevenjohn/aggbug/389967.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stevenjohn/" target="_blank">abin</a> 2012-10-21 16:37 <a href="http://www.blogjava.net/stevenjohn/archive/2012/10/21/389967.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle type资料收集</title><link>http://www.blogjava.net/stevenjohn/archive/2012/09/25/388459.html</link><dc:creator>abin</dc:creator><author>abin</author><pubDate>Mon, 24 Sep 2012 16:37:00 GMT</pubDate><guid>http://www.blogjava.net/stevenjohn/archive/2012/09/25/388459.html</guid><wfw:comment>http://www.blogjava.net/stevenjohn/comments/388459.html</wfw:comment><comments>http://www.blogjava.net/stevenjohn/archive/2012/09/25/388459.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stevenjohn/comments/commentRss/388459.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stevenjohn/services/trackbacks/388459.html</trackback:ping><description><![CDATA[<a href="http://blog.sina.com.cn/s/blog_6cfb6b090100ve92.html">http://blog.sina.com.cn/s/blog_6cfb6b090100ve92.html</a>&nbsp;<br /><br /><a href="http://www.cnblogs.com/lanzi/archive/2011/03/30/1999790.html">http://www.cnblogs.com/lanzi/archive/2011/03/30/1999790.html</a>&nbsp;<br /><br /><br /><img src ="http://www.blogjava.net/stevenjohn/aggbug/388459.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stevenjohn/" target="_blank">abin</a> 2012-09-25 00:37 <a href="http://www.blogjava.net/stevenjohn/archive/2012/09/25/388459.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle 批处理</title><link>http://www.blogjava.net/stevenjohn/archive/2012/09/17/387949.html</link><dc:creator>abin</dc:creator><author>abin</author><pubDate>Mon, 17 Sep 2012 15:15:00 GMT</pubDate><guid>http://www.blogjava.net/stevenjohn/archive/2012/09/17/387949.html</guid><wfw:comment>http://www.blogjava.net/stevenjohn/comments/387949.html</wfw:comment><comments>http://www.blogjava.net/stevenjohn/archive/2012/09/17/387949.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stevenjohn/comments/commentRss/387949.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stevenjohn/services/trackbacks/387949.html</trackback:ping><description><![CDATA[<div>1、Connection创建类<br />
<p>package com.abin.lee.db.oracle.batch;</p>
<p>import java.sql.Connection;<br />import java.sql.DriverManager;</p>
<p>public class OracleConnection {<br />&nbsp;private static ThreadLocal&lt;Connection&gt; threadLocal = new ThreadLocal&lt;Connection&gt;();<br />&nbsp;private static final String URL="jdbc:oracle:thin:@localhost:1521:XE";<br />&nbsp;private static final String USER="abin";<br />&nbsp;private static final String PWD="abin";<br />&nbsp;private static final String DRIVER="oracle.jdbc.driver.OracleDriver";<br />&nbsp;<br />&nbsp;public static Connection getConnection(){<br />&nbsp;&nbsp;Connection conn=null;<br />&nbsp;&nbsp;if(null==threadLocal.get()){<br />&nbsp;&nbsp;&nbsp;try {<br />&nbsp;&nbsp;&nbsp;&nbsp;Class.forName(DRIVER);<br />&nbsp;&nbsp;&nbsp;&nbsp;conn=DriverManager.getConnection(URL, USER, PWD);<br />&nbsp;&nbsp;&nbsp;&nbsp;threadLocal.set(conn);<br />&nbsp;&nbsp;&nbsp;} catch (Exception e) {<br />&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;}else{<br />&nbsp;&nbsp;&nbsp;conn=threadLocal.get();<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;return conn;<br />&nbsp;}<br />&nbsp;<br />&nbsp;<br />}<br /></p><br /><br /><br /><br /><br />2、测试语句<br />
<p>package com.abin.lee.db.oracle.batch;</p>
<p>import java.sql.Connection;<br />import java.sql.PreparedStatement;<br />import java.sql.SQLException;<br />import java.text.SimpleDateFormat;</p>
<p>import junit.framework.TestCase;</p>
<p>public class OracleBatch extends TestCase {<br />&nbsp;public void testinsert() throws SQLException {<br />&nbsp;&nbsp;Connection conn = null;<br />&nbsp;&nbsp;PreparedStatement ps = null;<br />&nbsp;&nbsp;conn = OracleConnection.getConnection();<br />&nbsp;&nbsp;String sql = "insert into abing(id,name) values (?,?)";<br />&nbsp;&nbsp;ps = conn.prepareStatement(sql);<br />&nbsp;&nbsp;System.out.println("start="<br />&nbsp;&nbsp;&nbsp;&nbsp;+ new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS")<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.format(new java.util.Date()));<br />&nbsp;&nbsp;try {<br />&nbsp;&nbsp;&nbsp;for (int i = 0; i &lt;= 50000; i++) {<br />&nbsp;&nbsp;&nbsp;&nbsp;ps.setObject(1, i);<br />&nbsp;&nbsp;&nbsp;&nbsp;ps.setObject(2, "abin" + i);<br />&nbsp;&nbsp;&nbsp;&nbsp;ps.addBatch();<br />&nbsp;&nbsp;&nbsp;&nbsp;if (i % 10000 == 0) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// System.out.println("i="+i);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ps.executeBatch();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ps.clearBatch();<br />&nbsp;&nbsp;&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;} catch (SQLException e) {<br />&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;System.out.println("end="<br />&nbsp;&nbsp;&nbsp;&nbsp;+ new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS")<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.format(new java.util.Date()));</p>
<p>&nbsp;}</p>
<p>}<br /></p></div><img src ="http://www.blogjava.net/stevenjohn/aggbug/387949.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stevenjohn/" target="_blank">abin</a> 2012-09-17 23:15 <a href="http://www.blogjava.net/stevenjohn/archive/2012/09/17/387949.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle function 集 </title><link>http://www.blogjava.net/stevenjohn/archive/2012/09/14/387721.html</link><dc:creator>abin</dc:creator><author>abin</author><pubDate>Fri, 14 Sep 2012 06:21:00 GMT</pubDate><guid>http://www.blogjava.net/stevenjohn/archive/2012/09/14/387721.html</guid><wfw:comment>http://www.blogjava.net/stevenjohn/comments/387721.html</wfw:comment><comments>http://www.blogjava.net/stevenjohn/archive/2012/09/14/387721.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stevenjohn/comments/commentRss/387721.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stevenjohn/services/trackbacks/387721.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: oracle的函數很多﹐特整理出來﹕abs(m)&nbsp;&nbsp;m的绝对值mod(m,n)&nbsp;m被n除后的余数power(m,n)&nbsp;m的n次方round(m[,n])&nbsp;m四舍五入至小数点后n位的值（n缺省为0）trunc(m[,n])&nbsp;m截断n位小数位的值（n缺省为0）字符函数：initcap(st)&nbsp;返回st将每个单词的首字母大...&nbsp;&nbsp;<a href='http://www.blogjava.net/stevenjohn/archive/2012/09/14/387721.html'>阅读全文</a><img src ="http://www.blogjava.net/stevenjohn/aggbug/387721.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stevenjohn/" target="_blank">abin</a> 2012-09-14 14:21 <a href="http://www.blogjava.net/stevenjohn/archive/2012/09/14/387721.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java 接收Oracle函数游标返回结果集</title><link>http://www.blogjava.net/stevenjohn/archive/2012/09/14/387714.html</link><dc:creator>abin</dc:creator><author>abin</author><pubDate>Fri, 14 Sep 2012 04:46:00 GMT</pubDate><guid>http://www.blogjava.net/stevenjohn/archive/2012/09/14/387714.html</guid><wfw:comment>http://www.blogjava.net/stevenjohn/comments/387714.html</wfw:comment><comments>http://www.blogjava.net/stevenjohn/archive/2012/09/14/387714.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stevenjohn/comments/commentRss/387714.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stevenjohn/services/trackbacks/387714.html</trackback:ping><description><![CDATA[-- Create table<br />create table ABIN1<br />(<br />&nbsp; ID1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NUMBER,<br />&nbsp; NAME1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NVARCHAR2(100),<br />&nbsp; CREATETIME1 DATE default sysdate<br />)<br /><br /><br /><br />
<p>create or replace function getFunction(myname varchar2)<br />return sys_refcursor<br />as</p>
<p>v_sql varchar2(4000);<br />mylist sys_refcursor;<br />begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; v_sql:='select * from abin1 where name1=:1';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; open myList for v_sql using myname;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return(myList);<br />end;<br /><br /><br /><br /></p>
<p>package com.abin.lee.db.oracle;</p>
<p>import java.sql.Connection;<br />import java.sql.DriverManager;<br />import java.sql.SQLException;</p>
<p>public class OracleConnection {<br />&nbsp;private static final String USER="abin";<br />&nbsp;private static final String PWD="abin";<br />&nbsp;private static final String URL="jdbc:oracle:thin:@localhost:1521:XE";<br />&nbsp;private static final String DRIVER="oracle.jdbc.driver.OracleDriver";<br />&nbsp;private static ThreadLocal&lt;Connection&gt; threadLocal=new ThreadLocal&lt;Connection&gt;(){<br />&nbsp;&nbsp;protected Connection initialValue(){<br />&nbsp;&nbsp;&nbsp;Connection conn=null;<br />&nbsp;&nbsp;&nbsp;try {<br />&nbsp;&nbsp;&nbsp;&nbsp;Class.forName(DRIVER);<br />&nbsp;&nbsp;&nbsp;&nbsp;if(null==conn||conn.isClosed()){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;conn=DriverManager.getConnection(URL, USER, PWD);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;} catch (Exception e) {<br />&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;return conn;<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;<br />&nbsp;}; <br />&nbsp;<br />&nbsp;<br />&nbsp;public static Connection getConnection() throws ClassNotFoundException, SQLException{<br />&nbsp;&nbsp;Connection conn=null;<br />&nbsp;&nbsp;if(threadLocal.get()==null){<br />&nbsp;&nbsp;&nbsp;Class.forName(DRIVER);<br />&nbsp;&nbsp;&nbsp;conn=DriverManager.getConnection(URL, USER, PWD);<br />&nbsp;&nbsp;&nbsp;threadLocal.set(conn);<br />&nbsp;&nbsp;}else {<br />&nbsp;&nbsp;&nbsp;return threadLocal.get();<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;return conn;<br />&nbsp;}</p>
<p>}<br /></p>
<p><br /><br /><br /></p>
<p>package com.abin.lee.db.oracle;</p>
<p>import java.sql.CallableStatement;<br />import java.sql.Connection;<br />import java.sql.ResultSet;</p>
<p>import junit.framework.TestCase;<br />import oracle.jdbc.OracleTypes;</p>
<p>public class GetFunctionResultSet extends TestCase{<br />&nbsp;public void test(){<br />&nbsp;&nbsp;Connection conn=null;<br />&nbsp;&nbsp;CallableStatement cs=null;<br />&nbsp;&nbsp;ResultSet rs=null;<br />&nbsp;&nbsp;try {<br />&nbsp;&nbsp;&nbsp;conn=OracleConnection.getConnection();<br />&nbsp;/*此处是关键，不要写错了。第一个问号代表返回值，getFunction（）括号里面是function的输入参数。*/&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;cs=conn.prepareCall("{?=call getFunction(?)}");<br />&nbsp;&nbsp;&nbsp;cs.registerOutParameter(1, OracleTypes.CURSOR);<br />&nbsp;&nbsp;&nbsp;cs.setString(2, "a1");<br />&nbsp;&nbsp;&nbsp;cs.execute();<br />&nbsp;&nbsp;&nbsp;rs=(ResultSet)cs.getObject(1);<br />&nbsp;&nbsp;&nbsp;while(rs.next()&amp;&amp;rs!=null){<br />&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("ID="+rs.getInt("id1"));<br />&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("NAME="+rs.getString("name1"));<br />&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("NAME="+rs.getString("createtime1"));<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;} catch (Exception e) {<br />&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;/**<br />&nbsp;&nbsp; * create or replace function getFunction(myname varchar2)<br />&nbsp;&nbsp;&nbsp;return sys_refcursor<br />&nbsp;&nbsp;&nbsp;as<br />&nbsp;&nbsp;&nbsp;v_sql varchar2(4000);<br />&nbsp;&nbsp;&nbsp;mylist sys_refcursor;<br />&nbsp;&nbsp;&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; v_sql:='select * from abin1 where name1=:1';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; open myList for v_sql using myname;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return(myList);<br />&nbsp;&nbsp;&nbsp;end;<br />&nbsp;&nbsp; */<br />&nbsp;&nbsp;<br />&nbsp;}<br />}<br /></p>
<p><br /><br /><br />参考资料：<br /><a href="http://lanselixiangxc.bokee.com/267623.html">http://lanselixiangxc.bokee.com/267623.html</a></p><img src ="http://www.blogjava.net/stevenjohn/aggbug/387714.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stevenjohn/" target="_blank">abin</a> 2012-09-14 12:46 <a href="http://www.blogjava.net/stevenjohn/archive/2012/09/14/387714.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java 接收Oracle存储过程游标结果集</title><link>http://www.blogjava.net/stevenjohn/archive/2012/09/14/387712.html</link><dc:creator>abin</dc:creator><author>abin</author><pubDate>Fri, 14 Sep 2012 04:42:00 GMT</pubDate><guid>http://www.blogjava.net/stevenjohn/archive/2012/09/14/387712.html</guid><wfw:comment>http://www.blogjava.net/stevenjohn/comments/387712.html</wfw:comment><comments>http://www.blogjava.net/stevenjohn/archive/2012/09/14/387712.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stevenjohn/comments/commentRss/387712.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stevenjohn/services/trackbacks/387712.html</trackback:ping><description><![CDATA[-- Create table<br />create table ABIN1<br />(<br />&nbsp; ID1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NUMBER,<br />&nbsp; NAME1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NVARCHAR2(100),<br />&nbsp; CREATETIME1 DATE default sysdate<br />)<br /><br />create or replace procedure getList(myname varchar2,mylist out sys_refcursor)<br />is<br />v_sql varchar2(4000);<br />begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; v_sql:='select * from abin1 where name1=:1';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; open myList for v_sql using myname;<br />end;<br /><br /><br /><br /><br />
<p>package com.abin.lee.db.oracle;</p>
<p>import java.sql.Connection;<br />import java.sql.DriverManager;<br />import java.sql.SQLException;</p>
<p>public class OracleConnection {<br />&nbsp;private static final String USER="abin";<br />&nbsp;private static final String PWD="abin";<br />&nbsp;private static final String URL="jdbc:oracle:thin:@localhost:1521:XE";<br />&nbsp;private static final String DRIVER="oracle.jdbc.driver.OracleDriver";<br />&nbsp;private static ThreadLocal&lt;Connection&gt; threadLocal=new ThreadLocal&lt;Connection&gt;(){<br />&nbsp;&nbsp;protected Connection initialValue(){<br />&nbsp;&nbsp;&nbsp;Connection conn=null;<br />&nbsp;&nbsp;&nbsp;try {<br />&nbsp;&nbsp;&nbsp;&nbsp;Class.forName(DRIVER);<br />&nbsp;&nbsp;&nbsp;&nbsp;if(null==conn||conn.isClosed()){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;conn=DriverManager.getConnection(URL, USER, PWD);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;} catch (Exception e) {<br />&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;return conn;<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;<br />&nbsp;}; <br />&nbsp;<br />&nbsp;<br />&nbsp;public static Connection getConnection() throws ClassNotFoundException, SQLException{<br />&nbsp;&nbsp;Connection conn=null;<br />&nbsp;&nbsp;if(threadLocal.get()==null){<br />&nbsp;&nbsp;&nbsp;Class.forName(DRIVER);<br />&nbsp;&nbsp;&nbsp;conn=DriverManager.getConnection(URL, USER, PWD);<br />&nbsp;&nbsp;&nbsp;threadLocal.set(conn);<br />&nbsp;&nbsp;}else {<br />&nbsp;&nbsp;&nbsp;return threadLocal.get();<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;return conn;<br />&nbsp;}</p>
<p>}<br /></p><br /><br /><br /><br /><br />
<p>package com.abin.lee.db.oracle;</p>
<p>import java.sql.CallableStatement;<br />import java.sql.Connection;<br />import java.sql.ResultSet;</p>
<p>import junit.framework.TestCase;<br />import oracle.jdbc.OracleTypes;</p>
<p>public class GetProcedureResultSet extends TestCase{<br />&nbsp;public void test(){<br />&nbsp;&nbsp;Connection conn=null;<br />&nbsp;&nbsp;CallableStatement cs=null;<br />&nbsp;&nbsp;ResultSet rs=null;<br />&nbsp;&nbsp;try {<br />&nbsp;&nbsp;&nbsp;conn=OracleConnection.getConnection();<br />&nbsp;&nbsp;&nbsp;cs=conn.prepareCall("{call getList(?,?)}");<br />&nbsp;&nbsp;&nbsp;cs.setString(1, "a1");<br />&nbsp;&nbsp;&nbsp;cs.registerOutParameter(2, OracleTypes.CURSOR);<br />&nbsp;&nbsp;&nbsp;cs.execute();<br />&nbsp;&nbsp;&nbsp;rs=(ResultSet)cs.getObject(2);<br />&nbsp;&nbsp;&nbsp;while(rs.next()&amp;&amp;rs!=null){<br />&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("ID="+rs.getInt("id1"));<br />&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("NAME="+rs.getString("name1"));<br />&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("NAME="+rs.getString("createtime1"));<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;} catch (Exception e) {<br />&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;<br />&nbsp;}<br />&nbsp;/**<br />&nbsp; * create or replace procedure getList(myname varchar2,mylist out sys_refcursor)<br />&nbsp;&nbsp;is<br />&nbsp;&nbsp;v_sql varchar2(4000);<br />&nbsp;&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; v_sql:='select * from abin1 where name1=:1';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; open myList for v_sql using myname;<br />&nbsp;&nbsp;end;<br />&nbsp; */<br />}<br /></p><br /><img src ="http://www.blogjava.net/stevenjohn/aggbug/387712.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stevenjohn/" target="_blank">abin</a> 2012-09-14 12:42 <a href="http://www.blogjava.net/stevenjohn/archive/2012/09/14/387712.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle表分区详解 </title><link>http://www.blogjava.net/stevenjohn/archive/2012/09/12/387569.html</link><dc:creator>abin</dc:creator><author>abin</author><pubDate>Wed, 12 Sep 2012 08:59:00 GMT</pubDate><guid>http://www.blogjava.net/stevenjohn/archive/2012/09/12/387569.html</guid><wfw:comment>http://www.blogjava.net/stevenjohn/comments/387569.html</wfw:comment><comments>http://www.blogjava.net/stevenjohn/archive/2012/09/12/387569.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stevenjohn/comments/commentRss/387569.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stevenjohn/services/trackbacks/387569.html</trackback:ping><description><![CDATA[<div>此文从以下几个方面来整理关于分区表的概念及操作:</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1.表空间及分区表的概念</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2.表分区的具体作用</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3.表分区的优缺点</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4.表分区的几种类型及操作方法</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5.对表分区的维护性操作.</div>
<div>(1.) 表空间及分区表的概念</div>
<div>表空间：<br />　　是一个或多个数据文件的集合，所有的数据对象都存放在指定的表空间中，但主要存放的是表， 所以称作表空间。</div>
<div>&nbsp;</div>
<div>分区表： <br />当表中的数据量不断增大，查询数据的速度就会变慢，应用程序的性能就会下降，这时就应该考虑对表进行分区。表进行分区后，逻辑上表仍然是一张完整的表，只是将表中的数据在物理上存放到多个表空间(物理文件上)，这样查询数据时，不至于每次都扫描整张表。</div>
<div>&nbsp;</div>
<div>(&nbsp;2).表分区的具体作用</div>
<div>Oracle的表分区功能通过改善可管理性、性能和可用性，从而为各式应用程序带来了极大的好处。通常，分区可以使某些查询以及维护操作的性能大大提高。此外,分区还可以极大简化常见的管理任务，分区是构建千兆字节数据系统或超高可用性系统的关键工具。 </div>
<div>&nbsp;</div>
<div>分区功能能够将表、索引或索引组织表进一步细分为段，这些数据库对象的段叫做分区。每个分区有自己的名称，还可以选择自己的存储特性。从数据库管理员的角度来看，一个分区后的对象具有多个段，这些段既可进行集体管理，也可单独管理，这就使数据库管理员在管理分区后的对象时有相当大的灵活性。但是，从应用程序的角度来看，分区后的表与非分区表完全相同，使用 SQL DML 命令访问分区后的表时，无需任何修改。</div>
<div>&nbsp;</div>
<div>什么时候使用分区表：<br />1、表的大小超过2GB。</div>
<div>2、表中包含历史数据，新的数据被增加都新的分区中。</div>
<div>&nbsp;</div>
<div>&nbsp;(3).表分区的优缺点</div>
<div>表分区有以下优点： <br />1、改善查询性能：对分区对象的查询可以仅搜索自己关心的分区，提高检索速度。</div>
<div>2、增强可用性：如果表的某个分区出现故障，表在其他分区的数据仍然可用；</div>
<div>3、维护方便：如果表的某个分区出现故障，需要修复数据，只修复该分区即可； </div>
<div>4、均衡I/O：可以把不同的分区映射到磁盘以平衡I/O，改善整个系统性能。</div>
<div>&nbsp;</div>
<div>缺点： <br />分区表相关：已经存在的表没有方法可以直接转化为分区表。不过 Oracle 提供了在线重定义表的功能。</div>
<div>&nbsp;</div>
<div>(4).表分区的几种类型及操作方法</div>
<div>&nbsp;一.范围分区：<br />范围分区将数据基于范围映射到每一个分区，这个范围是你在创建分区时指定的分区键决定的。这种分区方式是最为常用的，并且分区键经常采用日期。举个例子：你可能会将销售数据按照月份进行分区。</div>
<div>当使用范围分区时，请考虑以下几个规则：</div>
<div>1、每一个分区都必须有一个VALUES LESS THEN子句，它指定了一个不包括在该分区中的上限值。分区键的任何值等于或者大于这个上限值的记录都会被加入到下一个高一些的分区中。</div>
<div>2、所有分区，除了第一个，都会有一个隐式的下限值，这个值就是此分区的前一个分区的上限值。</div>
<div>3、在最高的分区中，MAXVALUE被定义。MAXVALUE代表了一个不确定的值。这个值高于其它分区中的任何分区键的值，也可以理解为高于任何分区中指定的VALUE LESS THEN的值，同时包括空值。</div>
<div>例一：</div>
<div>假设有一个CUSTOMER表，表中有数据200000行，我们将此表通过CUSTOMER_ID进行分区，每个分区存储100000行，我们将每个分区保存到单独的表空间中，这样数据文件就可以跨越多个物理磁盘。下面是创建表和分区的代码，如下：</div>
<div>CREATE TABLE CUSTOMER <br />( <br />&nbsp;&nbsp;&nbsp; CUSTOMER_ID NUMBER NOT NULL PRIMARY KEY, <br />&nbsp;&nbsp;&nbsp; FIRST_NAME&nbsp; VARCHAR2(30) NOT NULL, <br />&nbsp;&nbsp;&nbsp; LAST_NAME&nbsp;&nbsp; VARCHAR2(30) NOT NULL, <br />&nbsp;&nbsp;&nbsp; PHONE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VARCHAR2(15) NOT NULL, <br />&nbsp;&nbsp;&nbsp; EMAIL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VARCHAR2(80), <br />&nbsp;&nbsp;&nbsp; STATUS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CHAR(1) <br />) <br />PARTITION BY RANGE (CUSTOMER_ID) <br />( <br />&nbsp;&nbsp;&nbsp; PARTITION CUS_PART1 VALUES LESS THAN (100000) TABLESPACE CUS_TS01, <br />&nbsp;&nbsp;&nbsp; PARTITION CUS_PART2 VALUES LESS THAN (200000) TABLESPACE CUS_TS02 <br />)</div>
<div>例二：按时间划分</div>
<div>CREATE TABLE ORDER_ACTIVITIES <br />( <br />&nbsp;&nbsp;&nbsp; ORDER_ID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NUMBER(7) NOT NULL, <br />&nbsp;&nbsp;&nbsp; ORDER_DATE&nbsp;&nbsp;&nbsp; DATE, <br />&nbsp;&nbsp;&nbsp; TOTAL_AMOUNT NUMBER, <br />&nbsp;&nbsp;&nbsp; CUSTOTMER_ID NUMBER(7), <br />&nbsp;&nbsp;&nbsp; PAID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CHAR(1) <br />) <br />PARTITION BY RANGE (ORDER_DATE) <br />( </div>
<div>&nbsp; PARTITION ORD_ACT_PART01 VALUES LESS THAN (TO_DATE('01- MAY -2003','DD-MON-YYYY')) TABLESPACEORD_TS01,</div>
<div>&nbsp; PARTITION ORD_ACT_PART02 VALUES LESS THAN (TO_DATE('01-JUN-2003','DD-MON-YYYY')) TABLESPACE ORD_TS02, </div>
<div>&nbsp; PARTITION ORD_ACT_PART02 VALUES LESS THAN (TO_DATE('01-JUL-2003','DD-MON-YYYY')) TABLESPACE ORD_TS03 </div>
<div>)</div>
<div>例三：MAXVALUE</div>
<div>CREATE TABLE RangeTable<br />( <br />&nbsp; idd&nbsp;&nbsp; INT PRIMARY KEY , <br />&nbsp; iNAME VARCHAR(10), <br />&nbsp; grade INT&nbsp; <br />) <br />PARTITION&nbsp; BY&nbsp; RANGE (grade) <br />( <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PARTITION&nbsp; part1 VALUES&nbsp; LESS&nbsp; THEN (1000) TABLESPACE&nbsp; Part1_tb, <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PARTITION&nbsp; part2 VALUES&nbsp; LESS&nbsp; THEN (MAXVALUE) TABLESPACE&nbsp; Part2_tb <br />);</div>
<div>&nbsp;</div>
<div>二.列表分区：</div>
<div>该分区的特点是某列的值只有几个，基于这样的特点我们可以采用列表分区。</div>
<div>例一</div>
<div>CREATE TABLE PROBLEM_TICKETS <br />( <br />&nbsp;&nbsp;&nbsp; PROBLEM_ID&nbsp;&nbsp; NUMBER(7) NOT NULL PRIMARY KEY, <br />&nbsp;&nbsp;&nbsp; DESCRIPTION&nbsp; VARCHAR2(2000), <br />&nbsp;&nbsp;&nbsp; CUSTOMER_ID&nbsp; NUMBER(7) NOT NULL, <br />&nbsp;&nbsp;&nbsp; DATE_ENTERED DATE NOT NULL, <br />&nbsp;&nbsp;&nbsp; STATUS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VARCHAR2(20) <br />) <br />PARTITION BY LIST (STATUS) <br />( <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PARTITION PROB_ACTIVE&nbsp;&nbsp; VALUES ('ACTIVE') TABLESPACE PROB_TS01, <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PARTITION PROB_INACTIVE VALUES ('INACTIVE') TABLESPACE PROB_TS02</div>
<div>例二</div>
<div>CREATE&nbsp; TABLE&nbsp; ListTable<br />( <br />&nbsp;&nbsp;&nbsp; id&nbsp;&nbsp;&nbsp; INT&nbsp; PRIMARY&nbsp; KEY , <br />&nbsp;&nbsp;&nbsp; name&nbsp; VARCHAR (20), <br />&nbsp;&nbsp;&nbsp; area&nbsp; VARCHAR (10) <br />) <br />PARTITION&nbsp; BY&nbsp; LIST (area) <br />( <br />&nbsp;&nbsp;&nbsp; PARTITION&nbsp; part1 VALUES ('guangdong','beijing') TABLESPACE&nbsp; Part1_tb, <br />&nbsp;&nbsp;&nbsp; PARTITION&nbsp; part2 VALUES ('shanghai','nanjing')&nbsp; TABLESPACE&nbsp; Part2_tb <br />); </div>
<div>)</div>
<div>&nbsp;</div>
<div>三.散列分区：<br />这类分区是在列值上使用散列算法，以确定将行放入哪个分区中。当列的值没有合适的条件时，建议使用散列分区。</div>
<div>散列分区为通过指定分区编号来均匀分布数据的一种分区类型，因为通过在I/O设备上进行散列分区，使得这些分区大小一致。</div>
<div>例一： </div>
<div>CREATE TABLE HASH_TABLE <br />( <br />&nbsp; COL NUMBER(8), <br />&nbsp; INF VARCHAR2(100) <br />) <br />PARTITION BY HASH (COL) <br />( <br />&nbsp; PARTITION PART01 TABLESPACE HASH_TS01, <br />&nbsp; PARTITION PART02 TABLESPACE HASH_TS02, <br />&nbsp; PARTITION PART03 TABLESPACE HASH_TS03 <br />)</div>
<div>简写：</div>
<div>CREATE TABLE emp<br />(<br />&nbsp;&nbsp;&nbsp; empno NUMBER (4),<br />&nbsp;&nbsp;&nbsp; ename VARCHAR2 (30),<br />&nbsp;&nbsp;&nbsp; sal&nbsp;&nbsp; NUMBER <br />)<br />PARTITION BY&nbsp; HASH (empno) PARTITIONS 8<br />STORE IN (emp1,emp2,emp3,emp4,emp5,emp6,emp7,emp8);</div>
<div>&nbsp;</div>
<div>hash分区最主要的机制是根据hash算法来计算具体某条纪录应该插入到哪个分区中,hash算法中最重要的是hash函数，Oracle中如果你要使用hash分区，只需指定分区的数量即可。建议分区的数量采用2的n次方，这样可以使得各个分区间数据分布更加均匀。</div>
<div>&nbsp;</div>
<div>四.组合范围散列分区<br />这种分区是基于范围分区和列表分区，表首先按某列进行范围分区，然后再按某列进行列表分区，分区之中的分区被称为子分区。</div>
<div>CREATE TABLE SALES <br />( </div>
<div>PRODUCT_ID VARCHAR2(5), </div>
<div>SALES_DATE DATE, </div>
<div>SALES_COST NUMBER(10),</div>
<div>STATUS VARCHAR2(20) </div>
<div>)</div>
<div>PARTITION BY RANGE(SALES_DATE) SUBPARTITION BY LIST (STATUS) </div>
<div>(</div>
<div>&nbsp;&nbsp; PARTITION P1 VALUES LESS THAN(TO_DATE('2003-01-01','YYYY-MM-DD'))TABLESPACE rptfact2009 <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ( <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SUBPARTITION P1SUB1 VALUES ('ACTIVE') TABLESPACE rptfact2009, <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SUBPARTITION P1SUB2 VALUES ('INACTIVE') TABLESPACE rptfact2009 <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ), <br />&nbsp;&nbsp; PARTITION P2 VALUES LESS THAN (TO_DATE('2003-03-01','YYYY-MM-DD')) TABLESPACE rptfact2009 <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ( <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SUBPARTITION P2SUB1 VALUES ('ACTIVE') TABLESPACE rptfact2009, <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SUBPARTITION P2SUB2 VALUES ('INACTIVE') TABLESPACE rptfact2009 <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ) <br />)</div>
<div>&nbsp;</div>
<div>五.复合范围散列分区：</div>
<div>这种分区是基于范围分区和散列分区，表首先按某列进行范围分区，然后再按某列进行散列分区。</div>
<div>create table dinya_test <br />&nbsp;( <br />&nbsp;transaction_id number primary key, <br />&nbsp;item_id number(8) not null, <br />&nbsp;item_description varchar2(300), <br />&nbsp;transaction_date date <br />&nbsp;) <br />&nbsp;partition by range(transaction_date)subpartition by hash(transaction_id)&nbsp; subpartitions 3 store in (dinya_space01,dinya_space02,dinya_space03) <br />&nbsp;( <br />&nbsp;&nbsp;&nbsp;&nbsp; partition part_01 values less than(to_date(&#8216;2006-01-01&#8217;,&#8217;yyyy-mm-dd&#8217;)), <br />&nbsp;&nbsp;&nbsp;&nbsp; partition part_02 values less than(to_date(&#8216;2010-01-01&#8217;,&#8217;yyyy-mm-dd&#8217;)), <br />&nbsp;&nbsp;&nbsp;&nbsp; partition part_03 values less than(maxvalue) <br />&nbsp;);</div>
<div>&nbsp;</div>
<div>(5).有关表分区的一些维护性操作： <br />一、添加分区 <br />以下代码给SALES表添加了一个P3分区 </div>
<div>ALTER TABLE SALES ADD PARTITION P3 VALUES LESS THAN(TO_DATE('2003-06-01','YYYY-MM-DD')); </div>
<div>注意：以上添加的分区界限应该高于最后一个分区界限。 </div>
<div>以下代码给SALES表的P3分区添加了一个P3SUB1子分区 </div>
<div>ALTER TABLE SALES MODIFY PARTITION P3 ADD SUBPARTITION P3SUB1 VALUES('COMPLETE');</div>
<div>二、删除分区 <br />以下代码删除了P3表分区： </div>
<div>ALTER TABLE SALES DROP PARTITION P3;</div>
<div>在以下代码删除了P4SUB1子分区： </div>
<div>ALTER TABLE SALES DROP SUBPARTITION P4SUB1;</div>
<div>注意：如果删除的分区是表中唯一的分区，那么此分区将不能被删除，要想删除此分区，必须删除表。 </div>
<div>三、截断分区 <br />截断某个分区是指删除某个分区中的数据，并不会删除分区，也不会删除其它分区中的数据。当表中即使只有一个分区时，也可以截断该分区。通过以下代码截断分区： </div>
<div>ALTER TABLE SALES TRUNCATE PARTITION P2;</div>
<div>通过以下代码截断子分区： </div>
<div>ALTER TABLE SALES TRUNCATE SUBPARTITION P2SUB2;</div>
<div>四、合并分区 <br />合并分区是将相邻的分区合并成一个分区，结果分区将采用较高分区的界限，值得注意的是，不能将分区合并到界限较低的分区。以下代码实现了P1 P2分区的合并： </div>
<div>ALTER TABLE SALES MERGE PARTITIONS P1,P2 INTO PARTITION P2;</div>
<div>五、拆分分区 <br />拆分分区将一个分区拆分两个新分区，拆分后原来分区不再存在。注意不能对HASH类型的分区进行拆分。 </div>
<div>ALTER TABLE SALES SBLIT PARTITION P2 AT(TO_DATE('2003-02-01','YYYY-MM-DD')) INTO (PARTITION P21,PARTITION P22); </div>
<div>六、接合分区(coalesca) <br />结合分区是将散列分区中的数据接合到其它分区中，当散列分区中的数据比较大时，可以增加散列分区，然后进行接合，值得注意的是，接合分区只能用于散列分区中。通过以下代码进行接合分区： </div>
<div>ALTER TABLE SALES COALESCA PARTITION;</div>
<div>七、重命名表分区 <br />以下代码将P21更改为P2 </div>
<div>ALTER TABLE SALES RENAME PARTITION P21 TO P2;</div>
<div>八、相关查询<br />跨分区查询 </div>
<div>select sum( *) from </div>
<div>(select count(*) cn from t_table_SS PARTITION (P200709_1) </div>
<div>union all </div>
<div>select count(*) cn from t_table_SS PARTITION (P200709_2)</div>
<div>); </div>
<div>查询表上有多少分区 </div>
<div>SELECT * FROM useR_TAB_PARTITIONS WHERE TABLE_NAME='tableName' </div>
<div>查询索引信息 </div>
<div>select object_name,object_type,tablespace_name,sum(value) </div>
<div>from v$segment_statistics </div>
<div>where statistic_name IN ('physical reads','physical write','logical reads')and object_type='INDEX' </div>
<div>group by object_name,object_type,tablespace_name </div>
<div>order by 4 desc </div>
<div>&nbsp;</div>
<div>--显示数据库所有分区表的信息： </div>
<div>select * from DBA_PART_TABLES </div>
<div>&nbsp;</div>
<div>--显示当前用户可访问的所有分区表信息: </div>
<div>select * from ALL_PART_TABLES </div>
<div>&nbsp;</div>
<div>--显示当前用户所有分区表的信息： </div>
<div>select * from USER_PART_TABLES </div>
<div>&nbsp;</div>
<div>--显示表分区信息 显示数据库所有分区表的详细分区信息： </div>
<div>select * from DBA_TAB_PARTITIONS </div>
<div>&nbsp;</div>
<div>--显示当前用户可访问的所有分区表的详细分区信息： </div>
<div>select * from ALL_TAB_PARTITIONS </div>
<div>&nbsp;</div>
<div>--显示当前用户所有分区表的详细分区信息： </div>
<div>select * from USER_TAB_PARTITIONS </div>
<div>&nbsp;</div>
<div>--显示子分区信息 显示数据库所有组合分区表的子分区信息： </div>
<div>select * from DBA_TAB_SUBPARTITIONS </div>
<div>&nbsp;</div>
<div>--显示当前用户可访问的所有组合分区表的子分区信息： </div>
<div>select * from ALL_TAB_SUBPARTITIONS </div>
<div>&nbsp;</div>
<div>--显示当前用户所有组合分区表的子分区信息： </div>
<div>select * from USER_TAB_SUBPARTITIONS </div>
<div>&nbsp;</div>
<div>--显示分区列 显示数据库所有分区表的分区列信息： </div>
<div>select * from DBA_PART_KEY_COLUMNS </div>
<div>&nbsp;</div>
<div>--显示当前用户可访问的所有分区表的分区列信息： </div>
<div>select * from ALL_PART_KEY_COLUMNS </div>
<div>&nbsp;</div>
<div>--显示当前用户所有分区表的分区列信息： </div>
<div>select * from USER_PART_KEY_COLUMNS </div>
<div>&nbsp;</div>
<div>--显示子分区列 显示数据库所有分区表的子分区列信息： </div>
<div>select * from DBA_SUBPART_KEY_COLUMNS </div>
<div>&nbsp;</div>
<div>--显示当前用户可访问的所有分区表的子分区列信息： </div>
<div>select * from ALL_SUBPART_KEY_COLUMNS </div>
<div>&nbsp;</div>
<div>--显示当前用户所有分区表的子分区列信息： </div>
<div>select * from USER_SUBPART_KEY_COLUMNS </div>
<div>&nbsp;</div>
<div>--怎样查询出oracle数据库中所有的的分区表 </div>
<div>select * from user_tables a where a.partitioned='YES' </div>
<div>&nbsp;</div>
<div>--删除一个表的数据是 </div>
<div>truncate table table_name; </div>
<div>&nbsp;</div>
<div>--删除分区表一个分区的数据是 </div>
<div>alter table table_name truncate partition p5; </div><br /><br /><br /><br /><a href="http://tianzt.blog.51cto.com/459544/171759/">http://tianzt.blog.51cto.com/459544/171759/</a><img src ="http://www.blogjava.net/stevenjohn/aggbug/387569.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stevenjohn/" target="_blank">abin</a> 2012-09-12 16:59 <a href="http://www.blogjava.net/stevenjohn/archive/2012/09/12/387569.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle表分区和索引分区汇总</title><link>http://www.blogjava.net/stevenjohn/archive/2012/09/12/387568.html</link><dc:creator>abin</dc:creator><author>abin</author><pubDate>Wed, 12 Sep 2012 08:53:00 GMT</pubDate><guid>http://www.blogjava.net/stevenjohn/archive/2012/09/12/387568.html</guid><wfw:comment>http://www.blogjava.net/stevenjohn/comments/387568.html</wfw:comment><comments>http://www.blogjava.net/stevenjohn/archive/2012/09/12/387568.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stevenjohn/comments/commentRss/387568.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stevenjohn/services/trackbacks/387568.html</trackback:ping><description><![CDATA[<div id="cnblogs_post_body">
<p>Oracle表分区和索引分区汇总</p>
<p>为了简化数据库大表的管理,例如在数据仓库中一般都是TB级的数量级.ORACLE8以后推出了分区选项.分区将表分离在若于不同的表空间上,用分而治之的方法来支撑元限膨胀的大表,组大表在物理一级的可管理性.将大表分割成较小的分区可以改善表的维护、备份、恢复、事务及查询性能。</p>
<p>分区的优点：</p>
<p>1、&nbsp; 增强可用性：如果表的一个分区由于系统故障而不能使用，表的其余好的分区仍可以使用；</p>
<p>2、&nbsp; 减少关闭时间：如果系统故障只影响表的一部份分区，那么只有这部份分区需要修复，矿能比整个大表修复花的时间更少；</p>
<p>3、&nbsp; 维护轻松：如果需要得建表，独产管理每个公区比管理单个大表要轻松得多；</p>
<p>4、&nbsp; 均衡I/O：可以把表的不同分区分配到不同的磁盘来平衡I/O改善性能；</p>
<p>5、&nbsp; 改善性能：对大表的查询、增加、修改等操作可以分解到表的不同分区来并行执行，可使运行速度更快，在数据仓库的TP查询特别有用。</p>
<p>6、&nbsp; 分区对用户透明，最终用户感觉不到分区的存在。</p>
<p><br />create tablespace dw1</p>
<p>datafile 'D:\oracle\oradata\ora9\dw11.ora' size 50M<br />&nbsp;</p>
<p>create tablespace dw2</p>
<p>datafile 'D:\oracle\oradata\ora9\dw21.ora' size 50M</p>
<p>&nbsp;</p>
<p>一、按范围分区：固名思义就是按一定range来分区，看下面的例子:</p>
<p>SQL&gt; set linesize 1000</p>
<p>SQL&gt; create table niegc_part</p>
<p>&nbsp;&nbsp; (</p>
<p>&nbsp;&nbsp;&nbsp; part_id integer primary key,</p>
<p>&nbsp;&nbsp;&nbsp; part_date date,</p>
<p>&nbsp;&nbsp; &nbsp;part_dec varchar2(100)</p>
<p>&nbsp;&nbsp;&nbsp; )</p>
<p>&nbsp;&nbsp;&nbsp; partition by range(part_date)</p>
<p>&nbsp;&nbsp;&nbsp; (</p>
<p>&nbsp;&nbsp;&nbsp; partition part_01 values less than(to_date('2006-01-01','yyyy-mm-dd')) tablespace dw1,</p>
<p>&nbsp;&nbsp; partition part_02 values less than(to_date('2007-01-01','yyyy-mm-dd')) tablespace dw2,</p>
<p>&nbsp;&nbsp; partition part_03 values less than(maxvalue) tablespace dw1</p>
<p>&nbsp;&nbsp; );</p>
<p>&nbsp;</p>
<p>表已创建。</p>
<p>&nbsp;</p>
<p>SQL&gt;</p>
<p>SQL&gt; insert into niegc_part values(1,to_date('2005-12-30','yyyy-mm-dd'),'less 20</p>
<p>06-01-01');</p>
<p>&nbsp;</p>
<p>已创建 1 行。</p>
<p>&nbsp;</p>
<p>SQL&gt; commit;</p>
<p>&nbsp;</p>
<p>提交完成。</p>
<p>&nbsp;</p>
<p>SQL&gt; insert into niegc_part values(2,to_date('2006-01-01','yyyy-mm-dd'),'equal 2</p>
<p>007-01-01');</p>
<p>&nbsp;</p>
<p>已创建 1 行。</p>
<p>&nbsp;</p>
<p>SQL&gt; commit;</p>
<p>&nbsp;</p>
<p>提交完成。</p>
<p>&nbsp;</p>
<p>SQL&gt; insert into niegc_part values(3,sysdate,'sysdate');</p>
<p>&nbsp;</p>
<p>已创建 1 行。</p>
<p>&nbsp;</p>
<p>SQL&gt; commit;</p>
<p>&nbsp;</p>
<p>提交完成。</p>
<p>&nbsp;</p>
<p>SQL&gt;</p>
<p>SQL&gt;</p>
<p>SQL&gt; select * from niegc_part partition(part_01);</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp; PART_ID PART_DATE&nbsp; PART_DEC</p>
<p>---------- ---------- ----------------------------------------------------------</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1 30-12月-05 less 2006-01-01</p>
<p>SQL&gt;</p>
<p>&nbsp;</p>
<p>相信只要对oracle 有点熟,都能知道上面的range分区的意思了.</p>
<p>&nbsp;</p>
<p>两个字段以上的range分区大同小异,请看下面的例子:</p>
<p>create table niegc_part<br />(<br />part_id integer primary key,<br />part_date date,<br />part_dec varchar2(100)<br />)<br />partition by range(part_id,part_date)<br />(<br />partition part_01 values less than(1,to_date('2006-01-01','yyyy-mm-dd')) tablespace dw,<br />partition part_02 values less than(10,to_date('2007-01-01','yyyy-mm-dd')) tablespace dw,<br />partition part_03 values less than(maxvalue,maxvalue) tablespace dw<br />);<br />&nbsp;</p>
<p>&nbsp;</p>
<p>二、Hash分区（散列分区）。 散列分区通过指定分区编号来均匀分布数据的一种分区类型，因为通过在I/O设备上进行散列分区，使行这些分区大小一致。如将part_id的数据根据自身的情况散列地存放在指定的三个表空间中：</p>
<p>create table niegc_part</p>
<p>(</p>
<p>part_id integer primary key,</p>
<p>part_date date,</p>
<p>part_dec varchar2(100)</p>
<p>)</p>
<p>partition by hash(part_id)</p>
<p>(</p>
<p>partition part_01&nbsp; tablespace dw1,</p>
<p>partition part_02&nbsp; tablespace dw2</p>
<p>);</p>
<p>&nbsp;</p>
<p>系统将按part_id将记录散列地插入三个分区中，这里也就是二个不同的表空间中。</p>
<p>&nbsp;</p>
<p>三、复合分区。根据范围分区后，每个分区内的数据再散列地分布在几个表空间中，这样我们就要使用复合分区。复合分区是先使用范围分区，然后在每个分区同再使用散列分区的一种分区方法，如将part_date的记录按时间分区，然后每个分区中的数据分三个子分区，将数据散列地存储在三个指定的表空间中：</p>
<p>create table niegc_part</p>
<p>(</p>
<p>part_id integer primary key,</p>
<p>part_date date,</p>
<p>part_dec varchar2(100)</p>
<p>)</p>
<p>partition by range(part_date) subpartition by hash(part_id)</p>
<p>subpartitions 2 store in(dw1,dw2)</p>
<p>(</p>
<p>partition part_01 values less than(to_date('2006-01-01','yyyy-mm-dd')) tablespace dw1,</p>
<p>partition part_02 values less than(to_date('2007-01-01','yyyy-mm-dd')) tablespace dw2,</p>
<p>partition part_03 values less than(maxvalue) tablespace dw1</p>
<p>);</p>
<p><br />先根据part_date进行范围分区，然后根据交易的ID将记录散列地存储在二个表空间中。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>四、索引分区：</p>
<p>注意： 对某个字段已做了分区了，是不允许再建立索引分区的。这一点要非常注意。<br />全局索引建立时global子句允许指定索引的范围值，这个范围值为索引字段的范围值：</p>
<p>create index idx_part_id on niegc_part(part_dec)</p>
<p>global partition by range(part_dec)</p>
<p>(</p>
<p>partition idx_1 values less than('1000') tablespace dw,</p>
<p>partition idx_2 values less than(maxvalue) tablespace dw</p>
<p>)</p>
<p>&nbsp;</p>
<p>局部索引分区的建立：（注意：表必须存在分区，此分区的个数必须和分区表的分区个数一样，不然是建立不起来的）</p>
<p>create index idx_part_id on niegc_part(part_dec)</p>
<p>local</p>
<p>(</p>
<p>partition idx_1 tablespace dw1,</p>
<p>partition idx_2 tablespace dw2</p>
<p>)</p>
<p>&nbsp;</p>
<p>五、分区维护：(只对范围分区)</p>
<p>（1）、增加一个分区：分区范围只能往上增，不能增加一个少于原有的分区：</p>
<p>alter table niegc_part add partition part_03 values less than(maxvalue)</p>
<p>（2）、合并分区：（合并后的分区必须指下最后一个大value的分区）</p>
<p>alter table niegc_part merge partitions part_02,part_03 into&nbsp; partition part_03</p>
<p>（3）、删除一个分区：</p>
<p>alter table niegc_part drop partition part_01</p>
<p>&nbsp;</p>
<p><br />分区维护：(只对范围分区) </p>
<p>　　（1）、增加一个分区：分区范围只能往上增，不能增加一个少于原有的分区： </p>
<p>　　alter table tablename add partition new_partitionname values less than(maxvalue) </p>
<p>　　（2）、合并/拆分分区：（合并后的分区必须指下最后一个大value的分区） </p>
<p>　　alter table tablename merge partitions partitionname1,partitionname2 into partition partitionname2; </p>
<p>　　alter table tablename split partition partitionname1 at (xx) into ( </p>
<p>　　partition newpartition1 ,partition newpartition2) ; </p>
<p>　　注意：xx为分割点 </p>
<p>　　（3）、删除一个分区： </p>
<p>　　alter table niegc_part drop partition partitionname; </p>
<p>　　(4)将分区改名 </p>
<p>　　alter table table_name rename Partition partition_name to partition_name </p>
<p>　　(5)将分区改表空间 </p>
<p>　　alter table table_name move partition_name </p>
<p>　　tablespace tablespace_name nologging </p>
<p>　　(6)查询特定分区 </p>
<p>　　select count(*) from table_name partition (partition_name); </p>
<p>　　(7)添加数据 </p>
<p>　　insert into table_name select * from table_name partition (partition_name) </p>
<p>　　(8)分区表的导出 </p>
<p>　　userid=USER/PWD </p>
<p>　　buffer=102400 </p>
<p>　　tables=table_name:partition_name, </p>
<p>　　file=E:exp_paraxxx.dmp </p>
<p>　　log=E:exp_paraxxx.log </p>
<p>　　(9)技巧：删除表中一个字段 </p>
<p>　　alter table table_name set unused column column_name; </p>
<p>　　(10)加一个字段 </p>
<p>　　alter table table_name add column_name number(1);&nbsp;&nbsp;<br /><br /><br /><br /><br /><a href="http://www.cnblogs.com/rootq/archive/2008/12/24/1361631.html">http://www.cnblogs.com/rootq/archive/2008/12/24/1361631.html</a></p></div><img src ="http://www.blogjava.net/stevenjohn/aggbug/387568.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stevenjohn/" target="_blank">abin</a> 2012-09-12 16:53 <a href="http://www.blogjava.net/stevenjohn/archive/2012/09/12/387568.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle type(一)</title><link>http://www.blogjava.net/stevenjohn/archive/2012/09/09/387354.html</link><dc:creator>abin</dc:creator><author>abin</author><pubDate>Sun, 09 Sep 2012 14:37:00 GMT</pubDate><guid>http://www.blogjava.net/stevenjohn/archive/2012/09/09/387354.html</guid><wfw:comment>http://www.blogjava.net/stevenjohn/comments/387354.html</wfw:comment><comments>http://www.blogjava.net/stevenjohn/archive/2012/09/09/387354.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stevenjohn/comments/commentRss/387354.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stevenjohn/services/trackbacks/387354.html</trackback:ping><description><![CDATA[<div>自定义类型：<br />create or replace type mytype as object(<br />id int,<br />name varchar(20)<br />)<br /><br />建表使用刚刚定义的mytype：<br />create table MYTYPETABLE<br />(<br />&nbsp; ID&nbsp;&nbsp;&nbsp;&nbsp; NUMBER,<br />&nbsp; PERSON MYTYPE<br />)<br /><br /><br />相表里面插入数据：<br />insert into mytypetable values (1,mytype(2,'abin'))<br /><br /><br />查找数据：<br />select t.id,t.person.id,t.person.name from mytypetable t<br /><br /></div><img src ="http://www.blogjava.net/stevenjohn/aggbug/387354.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stevenjohn/" target="_blank">abin</a> 2012-09-09 22:37 <a href="http://www.blogjava.net/stevenjohn/archive/2012/09/09/387354.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle sys_refcursor cursor </title><link>http://www.blogjava.net/stevenjohn/archive/2012/09/09/387347.html</link><dc:creator>abin</dc:creator><author>abin</author><pubDate>Sun, 09 Sep 2012 11:55:00 GMT</pubDate><guid>http://www.blogjava.net/stevenjohn/archive/2012/09/09/387347.html</guid><wfw:comment>http://www.blogjava.net/stevenjohn/comments/387347.html</wfw:comment><comments>http://www.blogjava.net/stevenjohn/archive/2012/09/09/387347.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stevenjohn/comments/commentRss/387347.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stevenjohn/services/trackbacks/387347.html</trackback:ping><description><![CDATA[<div><div>-- Create table</div><div>create table ABIN</div><div>(</div><div>&nbsp; ID &nbsp; &nbsp; &nbsp; &nbsp; NVARCHAR2(50),</div><div>&nbsp; NAME &nbsp; &nbsp; &nbsp; VARCHAR2(30),</div><div>&nbsp; SID &nbsp; &nbsp; &nbsp; &nbsp;VARCHAR2(180),</div><div>&nbsp; CREATETIME NVARCHAR2(20)</div><div>)</div><div>tablespace USERS</div><div>&nbsp; pctfree 10</div><div>&nbsp; initrans 1</div><div>&nbsp; maxtrans 255</div><div>&nbsp; storage</div><div>&nbsp; (</div><div>&nbsp; &nbsp; initial 64K</div><div>&nbsp; &nbsp; minextents 1</div><div>&nbsp; &nbsp; maxextents unlimited</div><div>&nbsp; );</div><div>-- Create/Recreate indexes&nbsp;</div><div>create index AID on ABIN (ID)</div><div>&nbsp; tablespace USERS</div><div>&nbsp; pctfree 10</div><div>&nbsp; initrans 2</div><div>&nbsp; maxtrans 255</div><div>&nbsp; storage</div><div>&nbsp; (</div><div>&nbsp; &nbsp; initial 64K</div><div>&nbsp; &nbsp; minextents 1</div><div>&nbsp; &nbsp; maxextents unlimited</div><div>&nbsp; );</div><div>create unique index ALLINDEX on ABIN (ID, NAME, SID)</div><div>&nbsp; tablespace USERS</div><div>&nbsp; pctfree 10</div><div>&nbsp; initrans 2</div><div>&nbsp; maxtrans 255</div><div>&nbsp; storage</div><div>&nbsp; (</div><div>&nbsp; &nbsp; initial 64K</div><div>&nbsp; &nbsp; minextents 1</div><div>&nbsp; &nbsp; maxextents unlimited</div><div>&nbsp; );</div><div>create unique index USID on ABIN (SID)</div><div>&nbsp; tablespace USERS</div><div>&nbsp; pctfree 10</div><div>&nbsp; initrans 2</div><div>&nbsp; maxtrans 255</div><div>&nbsp; storage</div><div>&nbsp; (</div><div>&nbsp; &nbsp; initial 64K</div><div>&nbsp; &nbsp; minextents 1</div><div>&nbsp; &nbsp; maxextents unlimited</div><div>&nbsp; );</div><div></div><br /><br /><br /><div>-- Create table</div><div>create table LEE</div><div>(</div><div>&nbsp; ID &nbsp; NVARCHAR2(50) not null,</div><div>&nbsp; NAME VARCHAR2(30),</div><div>&nbsp; SID &nbsp;VARCHAR2(180)</div><div>)</div><div>tablespace USERS</div><div>&nbsp; pctfree 10</div><div>&nbsp; initrans 1</div><div>&nbsp; maxtrans 255</div><div>&nbsp; storage</div><div>&nbsp; (</div><div>&nbsp; &nbsp; initial 64K</div><div>&nbsp; &nbsp; minextents 1</div><div>&nbsp; &nbsp; maxextents unlimited</div><div>&nbsp; );</div><div>-- Create/Recreate primary, unique and foreign key constraints&nbsp;</div><div>alter table LEE</div><div>&nbsp; add constraint SSSSSID primary key (ID)</div><div>&nbsp; using index&nbsp;</div><div>&nbsp; tablespace USERS</div><div>&nbsp; pctfree 10</div><div>&nbsp; initrans 2</div><div>&nbsp; maxtrans 255</div><div>&nbsp; storage</div><div>&nbsp; (</div><div>&nbsp; &nbsp; initial 64K</div><div>&nbsp; &nbsp; minextents 1</div><div>&nbsp; &nbsp; maxextents unlimited</div><div>&nbsp; );</div><div></div><br /><br /><br /><div>-- Create table</div><div>create table LI</div><div>(</div><div>&nbsp; ID &nbsp; NVARCHAR2(50) not null,</div><div>&nbsp; NAME VARCHAR2(30),</div><div>&nbsp; SID &nbsp;VARCHAR2(180)</div><div>)</div><div>tablespace USERS</div><div>&nbsp; pctfree 10</div><div>&nbsp; initrans 1</div><div>&nbsp; maxtrans 255</div><div>&nbsp; storage</div><div>&nbsp; (</div><div>&nbsp; &nbsp; initial 64K</div><div>&nbsp; &nbsp; minextents 1</div><div>&nbsp; &nbsp; maxextents unlimited</div><div>&nbsp; );</div><div>-- Create/Recreate primary, unique and foreign key constraints&nbsp;</div><div>alter table LI</div><div>&nbsp; add constraint TTTID primary key (ID)</div><div>&nbsp; using index&nbsp;</div><div>&nbsp; tablespace USERS</div><div>&nbsp; pctfree 10</div><div>&nbsp; initrans 2</div><div>&nbsp; maxtrans 255</div><div>&nbsp; storage</div><div>&nbsp; (</div><div>&nbsp; &nbsp; initial 64K</div><div>&nbsp; &nbsp; minextents 1</div><div>&nbsp; &nbsp; maxextents unlimited</div><div>&nbsp; );</div><div></div><br /><br /><br />create or replace procedure getProcess(tdate date,tid nvarchar2,tname varchar2)</div><div>as</div><div>mydate date;</div><div>v_sql varchar2(4000);</div><div>ssid varchar2(180):='';</div><div>cursor mycur is select * from lee where name=tname;</div><div>myrow lee%rowtype;</div><div>shecur sys_refcursor;</div><div>myexception EXCEPTION;</div><div>mysqlcode nvarchar2(50);</div><div>mysqlerrm varchar2(180);</div><div>jdate abin.createtime%type;</div><div>type hcur is ref cursor ;</div><div>hecur hcur;</div><div>herow li%rowtype;</div><div>begin</div><div>&nbsp; &nbsp; &nbsp;if(tid=1) then</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;begin</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; select to_date(to_char(sysdate,'yyyy-MM-dd HH24:mi:ss'),'yyyy-MM-dd HH24:mi:ss') into mydate from dual;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; jdate:=to_char(mydate,'yyyy-MM-dd HH24:mi:ss');</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; dbms_output.put_line(jdate);</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;end;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if(to_char(tdate,'yyyy-MM-dd')=to_char(sysdate,'yyyy-MM-dd'))then</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;begin</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; dbms_output.put_line('this current tname is: '||tname);</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; select sid into ssid from lee where name=tname;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; dbms_output.put_line('this current sid is: '||ssid);</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(ssid is not null)then &nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; v_sql:='insert into abin (id,name,sid,createtime) values ('''||tid||''','''||tname||''','''||ssid||''','''||jdate||''')'; &nbsp; &nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; dbms_output.put_line('v_sql='||v_sql);</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; execute immediate v_sql;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;dbms_output.put_line(' execute immediate v_sql='||v_sql);</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; commit;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; end if;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;end;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;dbms_output.put_line('this input equals');</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;end if;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if(to_char(tdate,'yyyy-MM-dd')=to_char(sysdate-1,'yyyy-MM-dd'))then</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;begin</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; select sid into ssid from li where name=tname;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(ssid is not null)then</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; v_sql:='insert into abin (id,name,sid,createtime)values ('''||tid||''','''||tname||''','''||ssid||''','''||jdate||''')'; &nbsp; &nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; execute immediate v_sql;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; commit; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; end if; &nbsp; &nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;end;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;dbms_output.put_line(' this input not equals ');</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;end if;</div><div>&nbsp; &nbsp; &nbsp;end if;</div><div>&nbsp; &nbsp; &nbsp;if(tid=2) then</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; begin</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; select to_date(to_char(sysdate,'yyyy-MM-dd HH24:mi:ss'),'yyyy-MM-dd HH24:mi:ss') into mydate from dual;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; jdate:=to_char(mydate,'yyyy-MM-dd HH24:mi:ss');</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; dbms_output.put_line(jdate);</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; end;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; dbms_output.put_line('tid :'||tid);</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; open mycur;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; loop</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fetch mycur into myrow;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ssid:=myrow.sid;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; dbms_output.put_line('ssid :'||ssid);</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(ssid is not null)then</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; v_sql:='insert into abin (id,name,sid,createtime)values ('''||tid||''','''||tname||''','''||ssid||''','''||jdate||''')'; &nbsp; &nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; dbms_output.put_line('v_sql :'||v_sql);</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; execute immediate v_sql;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; dbms_output.put_line('execute immediate v_sql :'||v_sql);</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; commit;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; end if;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; exit when mycur%NOTFOUND;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; end loop;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if mycur%isopen then</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; close mycur; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; end if;&nbsp;</div><div>&nbsp; &nbsp; &nbsp;end if; &nbsp;</div><div>&nbsp; &nbsp; &nbsp;if(tid=3) then</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; begin</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; select to_date(to_char(sysdate,'yyyy-MM-dd HH24:mi:ss'),'yyyy-MM-dd HH24:mi:ss') into mydate from dual;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; jdate:=to_char(mydate,'yyyy-MM-dd HH24:mi:ss');</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; dbms_output.put_line(jdate);</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; end;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; v_sql:='select * from li where name=:1';</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; open shecur for v_sql using tname;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;loop</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fetch shecur into myrow ; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ssid:=myrow.sid;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if(ssid is not null)then</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; v_sql:='insert into abin (id,name,sid,createtime)values ('''||tid||''','''||tname||''','''||ssid||''','''||jdate||''')'; &nbsp; &nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; execute immediate v_sql;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; commit;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;end if;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;exit when shecur%NOTFOUND;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;end loop;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if shecur%isopen then</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; close shecur;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;end if;</div><div>&nbsp; &nbsp; &nbsp;end if;</div><div>&nbsp; &nbsp; &nbsp;if(tid=4)then</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; begin</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; select to_date(to_char(sysdate,'yyyy-MM-dd HH24:mi:ss'),'yyyy-MM-dd HH24:mi:ss') into mydate from dual;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; jdate:=to_char(mydate,'yyyy-MM-dd HH24:mi:ss');</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; dbms_output.put_line(jdate);</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; end;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; v_sql:='select * from li t where t.name=:1';</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; open hecur for v_sql using tname;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; loop&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fetch hecur into herow;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ssid:=herow.sid;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if(ssid is not null)then</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; v_sql:='insert into abin (id,name,sid,createtime)values ('''||tid||''','''||tname||''','''||ssid||''','''||jdate||''')'; &nbsp; &nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; execute immediate v_sql;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; commit; &nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;end if;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; exit when hecur%NOTFOUND;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; end loop;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(hecur%isopen)then</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; close hecur;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; end if; &nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; &nbsp;end if;</div><div>&nbsp; &nbsp; &nbsp;if(tid=5)then</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;RAISE myexception;</div><div>&nbsp; &nbsp; &nbsp;end if;</div><div>&nbsp; &nbsp; &nbsp;exception &nbsp;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;when myexception then</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;mysqlcode:=SQLCODE;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;mysqlerrm:=SQLERRM;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;begin</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; select to_date(to_char(sysdate,'yyyy-MM-dd HH24:mi:ss'),'yyyy-MM-dd HH24:mi:ss') into mydate from dual;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; jdate:=to_char(mydate,'yyyy-MM-dd HH24:mi:ss');</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; dbms_output.put_line(jdate);</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;end;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;begin</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;v_sql:='insert into abin(id,name,sid,createtime) values ('''||mysqlcode||''','''||tname||''','''||mysqlerrm||''','''||jdate||''')';</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;dbms_output.put_line('v_sql='||v_sql);</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;execute immediate v_sql;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;commit;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;end;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;when others then</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;rollback;</div><div>end;</div><div><br /><br /><br />测试代码：<br /><div>declare</div><div>mydate date:=to_date('2012-09-09','yyyy-MM-dd');</div><div>tid nvarchar2(50):='4';</div><div>tname varchar2(30):='abin';</div><div>begin</div><div>&nbsp; &nbsp; &nbsp; &nbsp;getProcess(mydate,tid,tname);</div><div>end;</div><br /></div><img src ="http://www.blogjava.net/stevenjohn/aggbug/387347.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stevenjohn/" target="_blank">abin</a> 2012-09-09 19:55 <a href="http://www.blogjava.net/stevenjohn/archive/2012/09/09/387347.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle 游标返回结果集</title><link>http://www.blogjava.net/stevenjohn/archive/2012/09/06/387204.html</link><dc:creator>abin</dc:creator><author>abin</author><pubDate>Thu, 06 Sep 2012 15:30:00 GMT</pubDate><guid>http://www.blogjava.net/stevenjohn/archive/2012/09/06/387204.html</guid><wfw:comment>http://www.blogjava.net/stevenjohn/comments/387204.html</wfw:comment><comments>http://www.blogjava.net/stevenjohn/archive/2012/09/06/387204.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stevenjohn/comments/commentRss/387204.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stevenjohn/services/trackbacks/387204.html</trackback:ping><description><![CDATA[有俩种方法:<br />一种是声明系统游标,一种是声明自定义游标,然后后面操作一样,参数类型为<br />in out 或out<br />(1)声明个人系统游标.(推荐)<br />create or replace p_temp_procedure<br />(<br />&nbsp;&nbsp;&nbsp; cur_arg out sys_refcursor;&nbsp;&nbsp;&nbsp;&nbsp; --方法1<br />)<br />begin<br />&nbsp;&nbsp;&nbsp; open cur_arg for select * from tablename;<br />end<br />调用<br />declare<br />&nbsp;&nbsp;&nbsp; cur_calling sys_refcursor;<br />begin<br />&nbsp;&nbsp;&nbsp; p_temp_procedure(cur_calling);&nbsp; --这样这个游标就有值了<br />&nbsp;&nbsp;&nbsp; for rec_next in cur_calling loop<br />&nbsp;&nbsp;&nbsp;&nbsp; ....<br />&nbsp;&nbsp;&nbsp; end loop;<br />end;<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />create or replace procedure getList(id in varchar2,mycur out sys_refcursor)<br />is<br />v_sql varchar2(4000);<br />begin<br />dbms_output.put_line('call it success');<br />v_sql:='select * from userbean s where s.id=:1';<br />open mycur for v_sql using id;<br />commit;<br />end;<br /><br /><br /><br />create or replace procedure my_procedure<br />(mypageNo number,mypageSize number,myInfo_Cursor out sys_refcursor)<br />as<br />pageNO number;<br />pageSize number;<br /><br />begin <br />open myInfo_Cursor for <br />select * from product <br />where pid between 1 + (pageNo - 1) * pageSize and 4 + (pageNo - 1) * pageSize;<br /><br />end;<br /><br /><br /><br /><br />declare <br />my_cursor sys_refcursor;<br />begin<br />my_procedure(1,2,my_cursor);<br />for rec_next in my_cursor loop<br />dbms_output.put_line('pid:'||rec_next.pid||'&nbsp; ptypeid:'||rec_next.ptypeid||'&nbsp; proname:'||rec_next.proname||'&nbsp; price:'||rec_next.price||'&nbsp; pronum:'||rec_next.pronum);<br />end loop;<br />end;<img src ="http://www.blogjava.net/stevenjohn/aggbug/387204.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stevenjohn/" target="_blank">abin</a> 2012-09-06 23:30 <a href="http://www.blogjava.net/stevenjohn/archive/2012/09/06/387204.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle sys_refcursor</title><link>http://www.blogjava.net/stevenjohn/archive/2012/08/15/385502.html</link><dc:creator>abin</dc:creator><author>abin</author><pubDate>Tue, 14 Aug 2012 16:57:00 GMT</pubDate><guid>http://www.blogjava.net/stevenjohn/archive/2012/08/15/385502.html</guid><wfw:comment>http://www.blogjava.net/stevenjohn/comments/385502.html</wfw:comment><comments>http://www.blogjava.net/stevenjohn/archive/2012/08/15/385502.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stevenjohn/comments/commentRss/385502.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stevenjohn/services/trackbacks/385502.html</trackback:ping><description><![CDATA[-- Create table<br />create table ABING1<br />(<br />&nbsp; ID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; INTEGER not null,<br />&nbsp; CREATETIME DATE default sysdate not null,<br />&nbsp; FIRSTNAME&nbsp; NVARCHAR2(100) not null,<br />&nbsp; LASTNAME&nbsp;&nbsp; CLOB not null,<br />&nbsp; MIDDLENAME NCLOB not null<br />)<br />tablespace USERS<br />&nbsp; pctfree 10<br />&nbsp; initrans 1<br />&nbsp; maxtrans 255<br />&nbsp; storage<br />&nbsp; (<br />&nbsp;&nbsp;&nbsp; initial 64K<br />&nbsp;&nbsp;&nbsp; minextents 1<br />&nbsp;&nbsp;&nbsp; maxextents unlimited<br />&nbsp; );<br />-- Create/Recreate primary, unique and foreign key constraints <br />alter table ABING1<br />&nbsp; add constraint PK_ABING primary key (ID)<br />&nbsp; using index <br />&nbsp; tablespace USERS<br />&nbsp; pctfree 10<br />&nbsp; initrans 2<br />&nbsp; maxtrans 255<br />&nbsp; storage<br />&nbsp; (<br />&nbsp;&nbsp;&nbsp; initial 64K<br />&nbsp;&nbsp;&nbsp; minextents 1<br />&nbsp;&nbsp;&nbsp; maxextents unlimited<br />&nbsp; );<br /><br /><br /><br /><br />create or replace procedure abin55(abing in varchar2,abin out sys_refcursor)<br />as<br />begin<br />declare<br />createtime date:=to_date(abing,'yyyy:MM:dd HH24:MI:SS');<br />cursor mycur is select * from abing1 t where t.createtime=createtime;<br />abin mycur%rowtype;<br />begin<br />open mycur;<br />loop<br />&nbsp;&nbsp;&nbsp;&nbsp; fetch mycur into abin;<br />&nbsp;&nbsp;&nbsp;&nbsp; exit when mycur%NOTFOUND;<br />end loop;<br />close mycur;<br />end;<br />end;<br /><img src ="http://www.blogjava.net/stevenjohn/aggbug/385502.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stevenjohn/" target="_blank">abin</a> 2012-08-15 00:57 <a href="http://www.blogjava.net/stevenjohn/archive/2012/08/15/385502.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>我的第一个oracle trigger</title><link>http://www.blogjava.net/stevenjohn/archive/2012/08/14/385434.html</link><dc:creator>abin</dc:creator><author>abin</author><pubDate>Mon, 13 Aug 2012 16:01:00 GMT</pubDate><guid>http://www.blogjava.net/stevenjohn/archive/2012/08/14/385434.html</guid><wfw:comment>http://www.blogjava.net/stevenjohn/comments/385434.html</wfw:comment><comments>http://www.blogjava.net/stevenjohn/archive/2012/08/14/385434.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stevenjohn/comments/commentRss/385434.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stevenjohn/services/trackbacks/385434.html</trackback:ping><description><![CDATA[//建表：<br />-- Create table<br />create table EMP<br />(<br />&nbsp; ID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NUMBER,<br />&nbsp; ENAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VARCHAR2(50),<br />&nbsp; EMPNO&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VARCHAR2(50),<br />&nbsp; SALARY&nbsp;&nbsp;&nbsp;&nbsp; NUMBER(10),<br />&nbsp; DEPTNO&nbsp;&nbsp;&nbsp;&nbsp; VARCHAR2(50),<br />&nbsp; CREATETIME DATE default sysdate<br />)<br />tablespace USERS<br />&nbsp; pctfree 10<br />&nbsp; initrans 1<br />&nbsp; maxtrans 255<br />&nbsp; storage<br />&nbsp; (<br />&nbsp;&nbsp;&nbsp; initial 64K<br />&nbsp;&nbsp;&nbsp; minextents 1<br />&nbsp;&nbsp;&nbsp; maxextents unlimited<br />&nbsp; );<br /><br /><br />建立历史表：<br />create table emp_his as select * from emp where 1=2<br /><br /><br /><br />建立oracle触发器：<br />create or replace trigger tri_del_emp<br />before delete on emp<br />for each row<br />begin<br />insert into emp_his(id,ename,empno,salary,deptno,createtime) values<br />(:old.id,:old.ename,:old.empno,:old.salary,:old.deptno,:old.createtime);<br />end;<br /><br /><br />执行测试操作：<br />delete emp where id=8<br /><br />这个时候，历史表，信息已经插入进去了，呵呵<br /><br /><br /><img src ="http://www.blogjava.net/stevenjohn/aggbug/385434.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stevenjohn/" target="_blank">abin</a> 2012-08-14 00:01 <a href="http://www.blogjava.net/stevenjohn/archive/2012/08/14/385434.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle function异常</title><link>http://www.blogjava.net/stevenjohn/archive/2012/08/13/385433.html</link><dc:creator>abin</dc:creator><author>abin</author><pubDate>Mon, 13 Aug 2012 15:34:00 GMT</pubDate><guid>http://www.blogjava.net/stevenjohn/archive/2012/08/13/385433.html</guid><wfw:comment>http://www.blogjava.net/stevenjohn/comments/385433.html</wfw:comment><comments>http://www.blogjava.net/stevenjohn/archive/2012/08/13/385433.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stevenjohn/comments/commentRss/385433.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stevenjohn/services/trackbacks/385433.html</trackback:ping><description><![CDATA[<p>建立异常表：</p>
<p>--&nbsp;Create&nbsp;table<br />create&nbsp;table&nbsp;ORACLEEXCEPTION<br />(<br />&nbsp;&nbsp;ID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;VARCHAR2(36),<br />&nbsp;&nbsp;CREATETIME&nbsp;&nbsp;DATE,<br />&nbsp;&nbsp;SQLCODE1&nbsp;&nbsp;&nbsp;&nbsp;NVARCHAR2(300),<br />&nbsp;&nbsp;SQLERRM1&nbsp;&nbsp;&nbsp;&nbsp;NVARCHAR2(300),<br />&nbsp;&nbsp;MYEXCEPTION&nbsp;NVARCHAR2(100)<br />)<br />tablespace&nbsp;USERS<br />&nbsp;&nbsp;pctfree&nbsp;10<br />&nbsp;&nbsp;initrans&nbsp;1<br />&nbsp;&nbsp;maxtrans&nbsp;255<br />&nbsp;&nbsp;storage<br />&nbsp;&nbsp;(<br />&nbsp;&nbsp;&nbsp;&nbsp;initial&nbsp;64K<br />&nbsp;&nbsp;&nbsp;&nbsp;minextents&nbsp;1<br />&nbsp;&nbsp;&nbsp;&nbsp;maxextents&nbsp;unlimited<br />&nbsp;&nbsp;);<br /></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>编写oracle--function：</p>
<p>create&nbsp;or&nbsp;replace&nbsp;function&nbsp;getabin(abin&nbsp;in&nbsp;varchar2)<br />return&nbsp;varchar2<br />is<br />result&nbsp;varchar2(50);<br />sqlcode2&nbsp;nvarchar2(500):='';<br />sqlerrm2&nbsp;nvarchar2(500):='';<br />myexception&nbsp;nvarchar2(500):='';<br />exception1&nbsp;exception;<br />begin<br />if(abin&nbsp;is&nbsp;not&nbsp;null)&nbsp;then<br />select&nbsp;count(1)&nbsp;into&nbsp;result&nbsp;from&nbsp;bing1&nbsp;t&nbsp;where&nbsp;t.name1&nbsp;like&nbsp;abin;<br />return(result);<br />elsif(abin&nbsp;is&nbsp;null)&nbsp;then<br />result:='there&nbsp;is&nbsp;a&nbsp;defined&nbsp;exception';<br />raise&nbsp;exception1;<br />end&nbsp;if;</p>
<p>exception<br />when&nbsp;exception1&nbsp;then<br />sqlcode2:=sqlcode;<br />sqlerrm2:=sqlerrm;<br />begin<br />insert&nbsp;into&nbsp;oracleexception(id,createtime,sqlcode1,sqlerrm1,myexception)&nbsp;values&nbsp;(sys_guid(),sysdate,sqlcode2,sqlerrm2,'exception1');<br />commit;<br />end;<br />return(result);<br />when&nbsp;others&nbsp;then<br />result:='there&nbsp;is&nbsp;a&nbsp;other&nbsp;exception';<br />sqlcode2:=sqlcode;<br />sqlerrm2:=sqlerrm;<br />begin<br />insert&nbsp;into&nbsp;oracleexception(id,createtime,sqlcode1,sqlerrm1,myexception)&nbsp;values&nbsp;(sys_guid(),sysdate,sqlcode2,sqlerrm2,'others');<br />commit;<br />end;<br />return(result);<br />end;<br /></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>测试oracle--function代码：</p>
<p>declare&nbsp;<br />ename&nbsp;varchar2(50):='';<br />result&nbsp;varchar2(50);<br />begin<br />result:=getabin(ename);<br />dbms_output.put_line(result);<br />end;</p>
<p>&nbsp;</p><img src ="http://www.blogjava.net/stevenjohn/aggbug/385433.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stevenjohn/" target="_blank">abin</a> 2012-08-13 23:34 <a href="http://www.blogjava.net/stevenjohn/archive/2012/08/13/385433.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle 存储过程异常，触发器</title><link>http://www.blogjava.net/stevenjohn/archive/2012/08/13/385345.html</link><dc:creator>abin</dc:creator><author>abin</author><pubDate>Sun, 12 Aug 2012 17:10:00 GMT</pubDate><guid>http://www.blogjava.net/stevenjohn/archive/2012/08/13/385345.html</guid><wfw:comment>http://www.blogjava.net/stevenjohn/comments/385345.html</wfw:comment><comments>http://www.blogjava.net/stevenjohn/archive/2012/08/13/385345.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stevenjohn/comments/commentRss/385345.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stevenjohn/services/trackbacks/385345.html</trackback:ping><description><![CDATA[ORACLE PL/SQL编程-异常错误处理(下)<br /><a href="http://hi.baidu.com/mylin/blog/item/5a3ca6c2b321fd0c0ef4779b.html">http://hi.baidu.com/mylin/blog/item/5a3ca6c2b321fd0c0ef4779b.html</a><br />
<p>ORACLE PL/SQL编程之八： </p>
<p>把触发器说透 <br /><a href="http://www.cnblogs.com/huyong/archive/2011/04/27/2030466.html">http://www.cnblogs.com/huyong/archive/2011/04/27/2030466.html</a></p><img src ="http://www.blogjava.net/stevenjohn/aggbug/385345.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stevenjohn/" target="_blank">abin</a> 2012-08-13 01:10 <a href="http://www.blogjava.net/stevenjohn/archive/2012/08/13/385345.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>我写的oracle function</title><link>http://www.blogjava.net/stevenjohn/archive/2012/08/12/385325.html</link><dc:creator>abin</dc:creator><author>abin</author><pubDate>Sun, 12 Aug 2012 13:01:00 GMT</pubDate><guid>http://www.blogjava.net/stevenjohn/archive/2012/08/12/385325.html</guid><wfw:comment>http://www.blogjava.net/stevenjohn/comments/385325.html</wfw:comment><comments>http://www.blogjava.net/stevenjohn/archive/2012/08/12/385325.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stevenjohn/comments/commentRss/385325.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stevenjohn/services/trackbacks/385325.html</trackback:ping><description><![CDATA[oracle函数一：<br />create or replace function getBin <br />return varchar2<br />is<br />result varchar2(50);<br />begin<br />select count(1) into result from bing1;<br />return(result);<br />end;<br /><br />测试代码：<br />declare<br />result varchar2(50);<br />begin<br />result:=getBin;<br />dbms_output.put_line(result);<br />end;<br /><br />oracle函数二：<br />create or replace function getBin3(ename in varchar2)<br />return varchar2<br />is<br />result varchar(50);<br />begin<br />select count(1) into result from bing1 t where t.name1 like '%'||ename||'%';<br />return(result);<br />end;<br /><br />测试代码二：<br />declare <br />result varchar2(50);<br />ename varchar2(10):='a';<br />begin<br />result:=getBin3(ename);<br />dbms_output.put_line(result);<br />end;<br /><br /><br /><img src ="http://www.blogjava.net/stevenjohn/aggbug/385325.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stevenjohn/" target="_blank">abin</a> 2012-08-12 21:01 <a href="http://www.blogjava.net/stevenjohn/archive/2012/08/12/385325.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>