﻿<?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-insomnia,politic,proficient ,sensible.-随笔分类-Oracle</title><link>http://www.blogjava.net/youngturk/category/20147.html</link><description>The world is a fine place , and worth fighting for it.</description><language>zh-cn</language><lastBuildDate>Thu, 04 Aug 2016 09:07:15 GMT</lastBuildDate><pubDate>Thu, 04 Aug 2016 09:07:15 GMT</pubDate><ttl>60</ttl><item><title>oracle 分页 伪列 只能小于 不能大于</title><link>http://www.blogjava.net/youngturk/archive/2016/08/04/431449.html</link><dc:creator>youngturk</dc:creator><author>youngturk</author><pubDate>Thu, 04 Aug 2016 00:53:00 GMT</pubDate><guid>http://www.blogjava.net/youngturk/archive/2016/08/04/431449.html</guid><wfw:comment>http://www.blogjava.net/youngturk/comments/431449.html</wfw:comment><comments>http://www.blogjava.net/youngturk/archive/2016/08/04/431449.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youngturk/comments/commentRss/431449.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youngturk/services/trackbacks/431449.html</trackback:ping><description><![CDATA[<div>select * from (select A.*, rownum rn from T_CD_LOC A where rownum &gt; 20) where rn &lt;41 错<br /><br /><br /><div>select * from (select t.* ,rownum rn from T_CD_LOC t where rownum&lt;=40) where rn&gt;=20 对<br /><div>firstIndex=0</div><div>pageNumber</div><div>pageSize=20</div><div>select * from (select A.*,rownum rn from T_CD_LOC a where rownum &lt; ((firstIndex+pageNumber+1)*pageSize) where rn &gt;((firstIndex+pageNumber)*pageSize)</div></div></div><img src ="http://www.blogjava.net/youngturk/aggbug/431449.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youngturk/" target="_blank">youngturk</a> 2016-08-04 08:53 <a href="http://www.blogjava.net/youngturk/archive/2016/08/04/431449.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle只导出数据的方法</title><link>http://www.blogjava.net/youngturk/archive/2015/07/17/426276.html</link><dc:creator>youngturk</dc:creator><author>youngturk</author><pubDate>Fri, 17 Jul 2015 06:17:00 GMT</pubDate><guid>http://www.blogjava.net/youngturk/archive/2015/07/17/426276.html</guid><wfw:comment>http://www.blogjava.net/youngturk/comments/426276.html</wfw:comment><comments>http://www.blogjava.net/youngturk/archive/2015/07/17/426276.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youngturk/comments/commentRss/426276.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youngturk/services/trackbacks/426276.html</trackback:ping><description><![CDATA[<div>&nbsp;1、EXP:&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;有三种主要的方式（完全、用户、表）&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1、完全：&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EXP&nbsp;SYSTEM/MANAGER&nbsp;BUFFER=64000&nbsp;FILE=C:\FULL.DMP&nbsp;FULL=Y&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;如果要执行完全导出，必须具有特殊的权限&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2、用户模式：&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EXP&nbsp;SONIC/SONIC&nbsp;&nbsp;&nbsp;&nbsp;BUFFER=64000&nbsp;FILE=C:\SONIC.DMP&nbsp;OWNER=SONIC&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这样用户SONIC的所有对象被输出到文件中。&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3、表模式：<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EXP&nbsp;SONIC/SONIC&nbsp;&nbsp;&nbsp;&nbsp;BUFFER=64000&nbsp;FILE=C:\SONIC.DMP&nbsp;OWNER=SONIC&nbsp;TABLES=(SONIC)&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这样用户SONIC的表SONIC就被导出&nbsp;</div><img src ="http://www.blogjava.net/youngturk/aggbug/426276.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youngturk/" target="_blank">youngturk</a> 2015-07-17 14:17 <a href="http://www.blogjava.net/youngturk/archive/2015/07/17/426276.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle11g R2用EXP导出时报EXP-00011错误的解决方法 （转）</title><link>http://www.blogjava.net/youngturk/archive/2014/10/24/418991.html</link><dc:creator>youngturk</dc:creator><author>youngturk</author><pubDate>Fri, 24 Oct 2014 02:40:00 GMT</pubDate><guid>http://www.blogjava.net/youngturk/archive/2014/10/24/418991.html</guid><wfw:comment>http://www.blogjava.net/youngturk/comments/418991.html</wfw:comment><comments>http://www.blogjava.net/youngturk/archive/2014/10/24/418991.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youngturk/comments/commentRss/418991.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youngturk/services/trackbacks/418991.html</trackback:ping><description><![CDATA[用定时器 + bat脚本做oracle的备份，已经备份了几个月了。这几天突然发现备份出来的dmp数据完全没法重新导入到新的数据库中。 

起初以为是版本问题，或者导出参数的问题，于是在网上不停的搜索、尝试，最后还是没发现问题原因。 

算了还是研究一下导入日志中的错误，于是将日志中出错误的表尝试单独导出，居然出现EXP-00011：:表不存在 错误，可是数据库中明明有这个表呀。根据这个方向再上网一查，终于找到原因了，原来在11g中空表是默认是不占Segment的，导致备份导出的时候压根就没导出那些空表，这样才出现备份的dmp没法导入的问题，敢情我几个月的备份工作都白做了。 

可ORACLE 你妈X的，备份导出时没导出空表这么大的事情你居然没有任何提示，你他*妈的是为了创造客服赚钱的机会么？ 

哎，处理过程如下： 
1.用system帐号进入： 
  1.1 查看是否为true 
	show parameter deferred_segment_creation; 
  1.2 修改为false 
	alter system set deferred_segment_creation=false; 

2.用数据库帐号登录： 
  2.1 查找所有数据表为空的表 
select table_name from user_tables where NUM_ROWS=0; 
  2.2 把这些表组成修改Segment的脚本： 
select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0; 
  2.3 将2.2中查询的结果导出来，或者复制出来，并执行修改所有空表。 


这个时候就能把所有空表导出来了。 
感谢以下两位的帖子，给了我很大帮助 
http://arthas-fang.iteye.com/blog/875258 
http://wanwentao.blog.51cto.com/2406488/545154 <img src ="http://www.blogjava.net/youngturk/aggbug/418991.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youngturk/" target="_blank">youngturk</a> 2014-10-24 10:40 <a href="http://www.blogjava.net/youngturk/archive/2014/10/24/418991.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>xml应用主外键说明</title><link>http://www.blogjava.net/youngturk/archive/2013/11/15/406356.html</link><dc:creator>youngturk</dc:creator><author>youngturk</author><pubDate>Fri, 15 Nov 2013 02:25:00 GMT</pubDate><guid>http://www.blogjava.net/youngturk/archive/2013/11/15/406356.html</guid><wfw:comment>http://www.blogjava.net/youngturk/comments/406356.html</wfw:comment><comments>http://www.blogjava.net/youngturk/archive/2013/11/15/406356.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youngturk/comments/commentRss/406356.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youngturk/services/trackbacks/406356.html</trackback:ping><description><![CDATA[<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #000000">&lt;</span><span style="color: #000000">record&nbsp;table</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">CkypHead</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;totalFields</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">21</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;tableType</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">vessel</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">primaryKey&nbsp;field</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">lID</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">/&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;!--</span><span style="color: #000000">关别代码</span><span style="color: #000000">--&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">property&nbsp;maxLength</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">6</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;sequence</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">1</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;field</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">CUSTOMS_ID</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;fileInfo</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">receiverCode</span><span style="color: #000000">"</span><span style="color: #000000">/&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;!--</span><span style="color: #000000">舱单进</span><span style="color: #000000">/</span><span style="color: #000000">出口标志</span><span style="color: #000000">--&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">property&nbsp;maxLength</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">1</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;sequence</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">2</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;field</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">I_E_FLAG</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">/&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">&lt;</span><span style="color: #000000">record&nbsp;table</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">CkypContainer</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;totalFields</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">7</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;tableType</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">ctn</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">primaryKey&nbsp;field</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">lID</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">/&gt;--</span><span style="color: #000000">表主键ID<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">foreignKey&nbsp;refTable</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">CkypHead</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;refField</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">lID</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;field</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">lHeadID</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">/&gt;</span><span style="color: #000000">外键链接外键名lHeadID，链接的外键表CkypHead&nbsp;lID<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;!--</span><span style="color: #000000">&nbsp;序号&nbsp;</span><span style="color: #000000">--&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">property&nbsp;maxLength</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">5</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;sequence</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">1</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;field</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">CONTA_SEQ_NO</span><span style="color: #000000">"</span><span style="color: #000000">/&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;!--</span><span style="color: #000000">&nbsp;提运单号&nbsp;</span><span style="color: #000000">--&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">property&nbsp;maxLength</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">20</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;sequence</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">2</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;field</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">BILL_NO</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;fieldType</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">bill</span><span style="color: #000000">"</span><span style="color: #000000">/&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;!--</span><span style="color: #000000">&nbsp;集装箱号&nbsp;</span><span style="color: #000000">--&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">property&nbsp;maxLength</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">11</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;sequence</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">3</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;field</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">CONTA_NO</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;fieldType</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">ctnno</span><span style="color: #000000">"</span><span style="color: #000000">/&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;!--</span><span style="color: #000000">&nbsp;标准箱标志&nbsp;</span><span style="color: #000000">--&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">property&nbsp;maxLength</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">1</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;sequence</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">4</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;field</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">CONTA_SIZE</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">/&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;!--</span><span style="color: #000000">&nbsp;铅封号&nbsp;</span><span style="color: #000000">--&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">property&nbsp;maxLength</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">10</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;sequence</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">5</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;field</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">SEAL_NO</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">/&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;!--</span><span style="color: #000000">&nbsp;规格类型&nbsp;</span><span style="color: #000000">--&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">property&nbsp;maxLength</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">4</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;sequence</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">6</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;field</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">CONTA_TYPE</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">/&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;!--</span><span style="color: #000000">&nbsp;集装箱重量（总重）&nbsp;</span><span style="color: #000000">--&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">property&nbsp;maxLength</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">11</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;sequence</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">7</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;field</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">CONTA_WT</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;type</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">float</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;precision</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">2</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">/&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">record</span><span style="color: #000000">&gt;</span></div><img src ="http://www.blogjava.net/youngturk/aggbug/406356.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youngturk/" target="_blank">youngturk</a> 2013-11-15 10:25 <a href="http://www.blogjava.net/youngturk/archive/2013/11/15/406356.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle字符集设置</title><link>http://www.blogjava.net/youngturk/archive/2013/03/30/397166.html</link><dc:creator>youngturk</dc:creator><author>youngturk</author><pubDate>Sat, 30 Mar 2013 02:35:00 GMT</pubDate><guid>http://www.blogjava.net/youngturk/archive/2013/03/30/397166.html</guid><wfw:comment>http://www.blogjava.net/youngturk/comments/397166.html</wfw:comment><comments>http://www.blogjava.net/youngturk/archive/2013/03/30/397166.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youngturk/comments/commentRss/397166.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youngturk/services/trackbacks/397166.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Oracle 字符集的查看和修改一、什么是Oracle字符集 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Oracle字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包容关系。ORACLE 支持国家语言的体系结构允许你使用本地化语言来存储，处理，检索数据。它使数据库工具，错误消息，排序次序，日期，时间，货币，数字，和日历自动适应本地化语言和平台。...&nbsp;&nbsp;<a href='http://www.blogjava.net/youngturk/archive/2013/03/30/397166.html'>阅读全文</a><img src ="http://www.blogjava.net/youngturk/aggbug/397166.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youngturk/" target="_blank">youngturk</a> 2013-03-30 10:35 <a href="http://www.blogjava.net/youngturk/archive/2013/03/30/397166.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle中如何用SQL检测字段是否包括中文字符</title><link>http://www.blogjava.net/youngturk/archive/2013/02/06/395182.html</link><dc:creator>youngturk</dc:creator><author>youngturk</author><pubDate>Wed, 06 Feb 2013 08:02:00 GMT</pubDate><guid>http://www.blogjava.net/youngturk/archive/2013/02/06/395182.html</guid><wfw:comment>http://www.blogjava.net/youngturk/comments/395182.html</wfw:comment><comments>http://www.blogjava.net/youngturk/archive/2013/02/06/395182.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youngturk/comments/commentRss/395182.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youngturk/services/trackbacks/395182.html</trackback:ping><description><![CDATA[<p>有个问题，没有考虑中文编码字符，由于迁移的表有几千万数据，但是有中文的记录集很少，问我能否找出有中文内容的记录数。首先我想到的是采用检测每个字节ASCII的方式，这样的话需要写一个自定义函数，然后SQL中调用得到结果。但是感觉这个方法估计很耗时，毕竟每个字符都要比较，所以没有去实现。突然想到Oracle有一个编码转换的函数叫Convert，如果一个字符串编码转换前后不一样就表示字符串里面含有非ASCII字符，这样就得到结果。最后写出来测试了一下，确实可行，5500万记录10秒钟就扫描结束。以下是测试用例：</p>
<p>SQL&gt; select *<br />&nbsp; 2&nbsp;&nbsp;&nbsp; from (select 'abcd' c1 from dual<br />&nbsp; 3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; union all<br />&nbsp; 4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; select 'ab测试cd' c1 from dual)<br />&nbsp; 5&nbsp;&nbsp; where c1 &lt;&gt; CONVERT(c1, 'US7ASCII', 'ZHS16GBK');<br />&nbsp;<br />C1<br />--------<br />ab测试cd</p>
<p>CONVERT函数说明：</p>
<p>CONVERT(inputstring,dest_charset,source_charset)</p>
<p>inputstring：要转换的字符串</p>
<p>dest_charset：目标字符集</p>
<p>source_charset：原字符集</p><img src ="http://www.blogjava.net/youngturk/aggbug/395182.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youngturk/" target="_blank">youngturk</a> 2013-02-06 16:02 <a href="http://www.blogjava.net/youngturk/archive/2013/02/06/395182.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>主键的设置方式可以是这样,有待学习啊</title><link>http://www.blogjava.net/youngturk/archive/2013/01/08/393938.html</link><dc:creator>youngturk</dc:creator><author>youngturk</author><pubDate>Tue, 08 Jan 2013 02:24:00 GMT</pubDate><guid>http://www.blogjava.net/youngturk/archive/2013/01/08/393938.html</guid><wfw:comment>http://www.blogjava.net/youngturk/comments/393938.html</wfw:comment><comments>http://www.blogjava.net/youngturk/archive/2013/01/08/393938.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youngturk/comments/commentRss/393938.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youngturk/services/trackbacks/393938.html</trackback:ping><description><![CDATA[<!--StartFragment -->
 
 
<div><img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/youngturk/zhujian.jpg" width="679" longdesc="" height="90" /><br />&nbsp;<br /><br /><!--StartFragment -->


<div><img alt="" src="file:///C:/Documents%20and%20Settings/Administrator/Application%20Data/Tencent/Users/2664282194/QQ/WinTemp/RichOle/E162BX%7BL~O2NY$_FEJ@V8LA.jpg" /> </div></div><img src ="http://www.blogjava.net/youngturk/aggbug/393938.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youngturk/" target="_blank">youngturk</a> 2013-01-08 10:24 <a href="http://www.blogjava.net/youngturk/archive/2013/01/08/393938.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在本数据库中创建DBlink解决同一网段不同数据库间访问</title><link>http://www.blogjava.net/youngturk/archive/2013/01/08/393935.html</link><dc:creator>youngturk</dc:creator><author>youngturk</author><pubDate>Tue, 08 Jan 2013 02:04:00 GMT</pubDate><guid>http://www.blogjava.net/youngturk/archive/2013/01/08/393935.html</guid><wfw:comment>http://www.blogjava.net/youngturk/comments/393935.html</wfw:comment><comments>http://www.blogjava.net/youngturk/archive/2013/01/08/393935.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youngturk/comments/commentRss/393935.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youngturk/services/trackbacks/393935.html</trackback:ping><description><![CDATA[<div>例如:<br />&lt;!-- 从jdbc:oracle:thin:@10.128.5.65:1521:tjgwl1 中跳到(服务器间跳转)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10.128.141.109:1521:tjgwlw数据库后面直接加@tjgwlw--&gt; <br /></div> <img src ="http://www.blogjava.net/youngturk/aggbug/393935.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youngturk/" target="_blank">youngturk</a> 2013-01-08 10:04 <a href="http://www.blogjava.net/youngturk/archive/2013/01/08/393935.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle新表的建立(理解表空间含义)</title><link>http://www.blogjava.net/youngturk/archive/2012/11/30/392275.html</link><dc:creator>youngturk</dc:creator><author>youngturk</author><pubDate>Fri, 30 Nov 2012 05:43:00 GMT</pubDate><guid>http://www.blogjava.net/youngturk/archive/2012/11/30/392275.html</guid><wfw:comment>http://www.blogjava.net/youngturk/comments/392275.html</wfw:comment><comments>http://www.blogjava.net/youngturk/archive/2012/11/30/392275.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youngturk/comments/commentRss/392275.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youngturk/services/trackbacks/392275.html</trackback:ping><description><![CDATA[在oracle数据库已经创建完的情况下,想要创建新的表,可以先创建新用户,和新的表空间<br />然后分配给用户表空间权限即可,不需要创建新的数据库,在本机上..<img src ="http://www.blogjava.net/youngturk/aggbug/392275.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youngturk/" target="_blank">youngturk</a> 2012-11-30 13:43 <a href="http://www.blogjava.net/youngturk/archive/2012/11/30/392275.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ORACLE编程，存储过程，自学笔记（备份）转</title><link>http://www.blogjava.net/youngturk/archive/2012/11/15/391366.html</link><dc:creator>youngturk</dc:creator><author>youngturk</author><pubDate>Thu, 15 Nov 2012 03:28:00 GMT</pubDate><guid>http://www.blogjava.net/youngturk/archive/2012/11/15/391366.html</guid><wfw:comment>http://www.blogjava.net/youngturk/comments/391366.html</wfw:comment><comments>http://www.blogjava.net/youngturk/archive/2012/11/15/391366.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youngturk/comments/commentRss/391366.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youngturk/services/trackbacks/391366.html</trackback:ping><description><![CDATA[<p>--创建过程名称<br />--create procedure 存储过程名字 is begin<br />--create or replace procedure&nbsp; 如果有就替换掉<br />----------------------------------------------<br />案例1：<br />--创建一个表<br />create table mytest(name varchar2(30),passwd varchar2(30));<br />--创建过程<br />create procedure sq_pro1 is<br />begin<br />--执行部分<br />insert into mytest values('zgx','888666');<br />end；</p>
<p>-- / 斜线回车</p>
<p><br />----------------------------------------------<br />如何查看错误信息：<br />show error&nbsp; 回车</p>
<p>--调用存储过程<br />1.exec 过程名(参数1，2....);<br />2.call 过程名(参数1，2....);<br />---------------------------------------------------<br />set serveroutput on;打开输出选项<br />set serveroutput off;关闭输出选项<br />dbms_&nbsp; 是包名的意思！<br />案例2：<br />dbms_output.put_line('helloWorld');&nbsp; <br />-----------------<br />declare<br />&nbsp;v_ename varchar2(5);--定义字符串变量<br />begin<br />&nbsp;--into v_ename意思:把查询出来数据 赋值给 v_ename;&amp;no是执行的时候会弹出输入框<br />&nbsp;select ename into v_ename from emp where empno=&amp;no;<br />&nbsp;--||代表 连接符号；<br />&nbsp;dbms_output.put_line('用户名是：'||v_ename); <br />end;<br />-----------<br />案例3：<br />declare<br />&nbsp;v_ename varchar2(5);--定义字符串变量<br />&nbsp;v_sal number(7,2);--定义字符串变量<br />begin<br />&nbsp;--如果是多个字段，用逗号隔开，顺序必须一样！！<br />&nbsp;select ename,sal into v_ename,v_sal from emp where empno=&amp;no;<br />&nbsp;--||代表 连接符号；<br />&nbsp;dbms_output.put_line('用户名是：'||v_ename||'工资：'||v_sal); <br />end;<br />---------------------<br />--异常的捕获<br />exception<br />when no_data_found then --如果出现no_data_found异常就执行下一句<br />dbms_output.put_line('输入有误！');<br />end;<br />------------<br />过程：<br />案例4：<br />创建带输入参数的过程；<br />create procedure sp_pro3(spNma varchar2,newSal number) is<br />begin<br />&nbsp;update emp set sal=newSal where ename=spName;<br />end;<br />------------<br />函数：<br />函数用于返回特定的数据，当建立函数时，在函数头部要求有return语句；<br />案例5：<br />--输入雇员姓名，返回该雇员的年薪<br />--返回一个number类型；返回值名字是yearSal，类型是number(7,2);<br />create function sp_fun1(spName varchar2) return number is yearSal number(7,2);<br />begin<br />--执行部分<br />select sal*12+nvl(comm,0)*12 into yearSal from emp where enamee=spName;<br />return yearSal;<br />end;<br />调用函数中<br />--随便定义一个值<br />var abc number;<br />--掉用函数把结果赋值给 abc<br />call sp_fun1()'SCOTT' into:abc;<br />-------------<br />包<br />创建包：<br />--创建了一个包 sp_package<br />--声明该包里有一个过程update_sal<br />--生命该包里有一个函数annual_income<br />create package sp_package is<br />&nbsp;procedure update_sal(name,varchar2,newsal number);<br />&nbsp;function annual_income(name varchar2, return number;<br />end;<br />给包sp_package 实现包体--把定义包中的 过程和函数实现；<br />create package body sp_package is<br />procedure update_sal(name,varchar2,newsal number) is<br />begin<br />&nbsp;update emp set sal=newsal where ename=name;<br />end;<br />function annual_income(name varchar2)<br />return number isannual_salary number;<br />begin<br />select sal*12+nvl(comm,0) into annual_salary from emp where ename=name;<br />return annual_salary;<br />end;<br />end;<br />--------------<br />调用包中的过程或函数<br />exec sp_package.update_sal('SCOTT','120');<br />---------------------<br />触发器<br />触发器是指隐含的执行的存储过程。当定义触发器时，必须要指定触发的时间和触发的操作，常用触发包括insert，pudate，delete语句，而触发操作实际就是一个pl/sql块。可以使用create trigger来建立触发器。<br />触发器是非常有用的，可维护数据库的安全和一致性。<br />---------<br />定义并使用变量<br />包括：<br />1.标量类型（scalar）<br />2.符合类型（）</p>
<p>---------<br />标量（scalar）-常用类型<br />语法：<br />identifier [constant] datatype [not null] [:=| default expr]<br />identifier:名称<br />constant：指定常量。需要指定它的初始值，且其值是不能改变的<br />datatype：数据类型<br />not null： 指定变量值不能为null<br />：= 给变量或是常量指定初始值<br />default 用于指定初始值<br />expr：指定初始值的pl/sql表达式，文本值、其他变量、函数等<br />------------<br />标量定义的案例<br />1.定义一个变长字符串<br />v_ename varchar2(10)<br />2.定义一个小数 范围 -9999.99~9999.99<br />v_sal number(6,2)<br />3.定义一个小数并给一个初始值为5.4 :=pl/sql的赋值号<br />v_sal2 number(6,2):=5.4<br />4.定义一个日期类型的数据<br />v_hiredate date;<br />5.定义一个布尔变量，不能为空，初始值为false<br />v_valid boolean not null default false;<br />---------------<br />如何使用标量<br />&nbsp;&nbsp; 定义好变量后，就可以使用这些变量。这里需要说明的是pl/sql块为变量赋值不同于其他的编程语言，需要在等号前面加冒号(:=)</p>
<p>下面以输入员工号，显示雇员名称、工资、个人所得税(税率为0.03为例)。说明变量的使用，看看如何编写：</p>
<p>declare<br />c_tax_rate number(3.2):=0.03; --定义赋值<br />--用户名<br />v_ename varchar2(5);<br />v_sal number(7,2);<br />v_tax_sal number()7,2;<br />begin<br />--执行<br />select ename,sal into v_ename,v_sal from emp where empno=$no;<br />--计算所得税<br />v_tax_sal:=v_sal*c_tax_rate;<br />--输出<br />dbms_output.put_line('姓名是:'||v_ename||'工资：'||v_sal||'所得税：'||v_tax_sal);<br />end;<br />-----<br />标量（scalar）--使用%type类型<br />&nbsp;对于上面的pl/sql块有一个问题：<br />&nbsp;就是如果员工的姓名超过了5字符的话，就会有错误，为了降低pl/sql程序的维护工作量，可以使用%type属性定义变量，这样他会按照数据库列来确定你定义的变量的类型和长度。<br />看看怎么使用。<br />语法： 标识符名 表名.列名%type;</p>
<p>&nbsp;declare<br />&nbsp; v_ename emp.ename%type; --定义变量v_ename 和emp表中列名ename大小类型保持一致；<br />---<br />复合变量（composite）<br />用于存放多个值的变量。<br />包括：<br />1.pl/sql记录<br />2.pl/sql表<br />---------------<br />复合类型-pl/sql记录<br />&nbsp; 类似与高级语言的结构体，需要注意的是，当引用pl/sql记录成员时，必须要加记录变量作为前缀（记录变量.记录成员）<br />如下：<br />declare<br />--定义一个pl/sql记录类型是：emp_record_type，类型包括三个数据name，salary，title；该类型中可以存放三个类型的数据；<br />type emp_record_type is record(name emp.ename%type,salary emp.sal%type,title&nbsp; emp.job%type);</p>
<p>--定义了一个sp_record变量，类型是emp_record_type<br />sp_record emp_record_type;</p>
<p>begin<br />select ename,sal,job into sp_record from emp where empno=7788;<br />dbms_output.put_line('员工名：'||sp_record.name); --显示定义emp_record_type类型中 name的值；<br />end;<br />end;<br />----------------<br />复合类型--pl/sql表<br />&nbsp;相当于高级语言中的数组。但是需要注意的是在高级语言中数组的下标不能为负数，而pl/sql是可以为负数的，并且表元素的下标没有限制。实例如下：<br />declare<br />--定义了一个pl/sql表类型sp_table_type，该类型是用于存放emp.ename%type类型的数组<br />--index by binary_integer标识下标是整数<br />type sp_table_type is table of emp.ename%type index by binary_integer;<br />--定义了一个sp_table变量，变量类型是sp_table_type<br />sp_table sp_table_type;<br />begin<br />--把查询出来的ename放到 table（0）下标为0的数据<br />select ename into sp_table(0) from emp where empno=7788;<br />dbms_output.put_lin('员工名：'||sp_table(0)); --要和存放下标一样<br />end;<br />说明：<br />sp_table_type&nbsp; 是pl/sql表类型<br />emp.ename%type 指定了表的元素的类型和长度<br />sp_table&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 为pl/sql表变量<br />sp_table(0)&nbsp;&nbsp;&nbsp; 表示下标为0的<br />---------------<br />参照变量<br />参照变量是指用于存放数值指针的变量。通过使用参照变量，可以使用得应用程序共享相同对象，从而降低占用的空间。在编写pl/sql程序时，可以使用游标变量和对象类型变量两种参照变量类型<br />游标变量用的最多<br />-----------<br />参照变量---游标变量<br />使用游标时，当定义游标时不需要指定相应的select语句，但是当使用游标时需要指定select语句，这样一个游标就与一个select语句结合了。<br />如下<br />1.请使用pl/sql编写一个块，可以输入部门号，并显示该部门所有员工姓名和他的工资。<br />declare<br />&nbsp;--定义游标类型<br />&nbsp;type sp_emp_cursor is ref cursor；<br />&nbsp;--定义一个游标变量<br />&nbsp;test_cursor sp_emp_cursor；<br />&nbsp;--定义变量<br />&nbsp;v_ename emp。ename%type；<br />&nbsp;v_sal emp。sal%type；<br />begin<br />--执行<br />--打开一个游标test_cursor和一个select结合<br />open test_cursor for select ename,sal from emp where deptno=&amp;no;<br />--循环取出<br />loop<br />&nbsp;--fetch就是取出。取出test_cursor中的数据放到 v_ename,v_sal里面去；<br />&nbsp;fetch test_cursor into v_ename,v_sal；<br />&nbsp;--判断是否test_cursor为空<br />&nbsp;exit when test_cursor%notfound；<br />&nbsp;dbms_output.put_line('名字：'||v_ename||'工资：'||v_sal);<br />end loop；<br />end；</p>
<p><br />2.在1。基础上，如果某个员工的工资低于200元，就增加100元。<br />declare<br />&nbsp;--定义游标类型<br />&nbsp;type sp_emp_cursor is ref cursor；<br />&nbsp;--定义一个游标变量<br />&nbsp;test_cursor sp_emp_cursor；<br />&nbsp;--定义变量<br />&nbsp;v_ename emp。ename%type；<br />&nbsp;v_sal emp。sal%type；<br />begin<br />--执行<br />--打开一个游标test_cursor和一个select结合<br />open test_cursor for select ename,sal from emp where deptno=&amp;no;</p>
<p>--循环取出<br />loop<br />&nbsp;--fetch就是取出。取出test_cursor中的数据放到 v_ename,v_sal里面去；<br />&nbsp;fetch test_cursor into v_ename,v_sal；<br />&nbsp;if v_sal&lt;200 then <br />&nbsp;update emp set sal=sal+100 where ename=v_ename;<br />&nbsp;end if;<br />&nbsp;--判断是否test_cursor为空<br />&nbsp;exit when test_cursor%notfound；<br />&nbsp;dbms_output.put_line('名字：'||v_ename||'工资：'||v_sal);<br />end loop；<br />end；</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>----------<br />条件分支语句<br />if--then，<br />if--then--else，<br />if--then--elsif--else</p>
<p>----<br />循环语句<br />loop --end loop；至少会执行一次。<br />create or replace procedure sp_pro6() is<br />--定义赋值<br />v_num number:=1;<br />begin<br />loop<br />&nbsp;insert into users1 values(v_num,spName);<br />&nbsp;--判断是否要退出循环<br />&nbsp;exit when v_num=10;<br />&nbsp;--自增<br />&nbsp;v_num:=v_num+1;<br />end loop;<br />end;</p>
<p><br />-------------<br />循环语句-while先判断后执行<br />create or replace procedure sp_pro6() is<br />--定义赋值<br />v_num number:=11;<br />begin<br />while v_num&lt;=20 loop<br />&nbsp;insert into users1 values(v_num,spName);<br />&nbsp;v_num:=v_num+1;<br />end loop;<br />end;<br />------------------<br />循环语句--for循环（不建议）<br />begin<br />&nbsp;for i in reverse 1。。10 loop<br />&nbsp;insert into users1 values（i，'aaa'）；<br />&nbsp;end loop;<br />end；<br />-------<br />循环语句--goto,null循环（不建议）<br />declare <br />&nbsp;i int:=1;<br />begin<br />&nbsp;loop<br />&nbsp;dbms_output.put_line('输出i='||i);<br />&nbsp;if i=10 then<br />&nbsp;goto end_loop;<br />&nbsp;end if;<br />&nbsp;i:=i+1;<br />&nbsp;end loop;<br />&nbsp;&lt;&lt;end_loop&gt;&gt;&nbsp; --到i到10后直接跳到该标记<br />dbms_output.put_line('循环结束');<br />end;<br />---------------------------<br />无返回值的存储过程（有输入参数）<br />&nbsp;<br />create table book(<br />&nbsp;bookId number;<br />&nbsp;bookName varchar2(100);<br />&nbsp;publishHouse varchar2(50);<br />);<br />--编写过程<br />--in表示这是一个输入参数，不写默认是in<br />--out 表示一个输出参数<br />create or replace procedure sp_pro7(spBookId in number，spbookName in varchar2,sppublishHouse in varchar2) is<br />begin<br />&nbsp;insert into book values(spBookId,spbookName,sppublishHouse);<br />end;</p>
<p>---------------<br />有返回值的存储过程（有输入和输出参数）</p>
<p>create or replace procedure sp_pro8(ename in number，spName out varchar2) is<br />begin<br />&nbsp;--spName自动返回 因为他是out<br />&nbsp;select ename into spName from emp where empno=spno;<br />end;<br />----------------<br />有返回值是集合数组的存储过程（有输入和输出参数）<br />1.建立一个包<br />--创建包 里面定义一个游标类型；<br />create or replace package testpackage as<br />type test_cursor is ref cursor;<br />end testpackage；<br />2.建立存储过程。<br />create or replace procedure sp_pro8(spNo in number，p_cursor out testpackage.test_cursor) is<br />begin<br />&nbsp;--spName自动返回 因为他是out<br />&nbsp;open p_cursor for select * from emp where deptno=spNo;<br />end;</p>
<p>－－－－－－－－－－－－<br />oracle的分页&nbsp; rn是别名<br />select t1.*，rownum rn from(select * from emp) t1;//多加一个列记录个数<br />select t1.*，rownum rn from(select * from emp) t1 where rownum&lt;10; <br />select * from (select t1.*，rownum rn from(select * from emp) t1 where rownum&lt;10) where rn&gt;=6;</p>
<p>编写oracle的分页 <br />--建立一个包<br />create or replace package testpackage as<br />type test_cursor is ref cursor;<br />end testpackage；<br />--建立存储过程<br />create or replace procedure fenye<br />(tableName in varchar2,<br />pageSize in number, --一页显示几条记录<br />pageNow in number,&nbsp; --显示哪一页<br />myrows out number, --总记录数<br />myPageCount out number,--总页数<br />p_cursor out testpackage.test_cursor --返回的记录集<br />) is<br />--定义部分<br />--定义sql语句 字符串<br />v_sql varchar2(1000);<br />--定义两个整数<br />v_begin number:=(pageNow-1)*pageSize+1;<br />v_end number:=pageNow*pageSize;<br />begin<br />--执行部分<br />v_sql:='select * from (select t1.*，rownum rn from(select * from '||tableName||') t1 where rownum&lt;10'||?||') where rn&gt;='||?||';';<br />--把游标和sql语句关联起来<br />open p_cursor for v_sql;</p>
<p>--计算myrows<br />v_sql:='select count(*) from '||tableName||'';<br />--执行sql，并把返回值，赋值给myrows;<br />execute immediate v_sql int myrows;<br />--计算myPagecount<br />if mod(myrows,pageSize)=0 then --mod()取余数<br />myPageCount:=myrows/pageSize;<br />else<br />myPageCount:=myrows/pagesize+1;<br />end if;</p>
<p>--关闭游标<br />--close p_cursor;<br />end;</p>
<p><br />------------------------<br />例外的分类<br />1.预定义例外用于处理常见的oracle错误<br />2.非预定义例外用于处理预定义例外不能处理的例外&nbsp; 6.53<br />3.自定义例外用于处理与oracle错误无关的其他情况</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><br />------------------------------------------------<br />-----------------------------------------------<br />-------ＪＡＶＡ中-调用无返回值的存储过程-----------------<br />try{<br />&nbsp;Class.forName();<br />&nbsp;Connection ct=DriverManager.getConnerction();<br />&nbsp;//调用无返回值存储过程<br />&nbsp;CallableStatement cs=ct.prepareCall("{call 存储过程名称(?,?,?)}") // ?代表存储过程参数<br />&nbsp;cs.setIn(1,10);<br />&nbsp;cs.setString(2,'java调用存储过程');<br />&nbsp;cs.setString(3,'人民出版社');<br />&nbsp;//执行<br />&nbsp;cs.execute();<br />&nbsp;<br />}catch(Exception e)<br />{<br />&nbsp;e.printStackTrace();<br />}finally{<br />&nbsp;cs.close();<br />&nbsp;ct.close();<br />}</p>
<p>------------------------------------------------<br />-----------------------------------------------<br />------ＪＡＶＡ中--调用有回值的存储过程-----------------<br />try{<br />&nbsp;Class.forName();<br />&nbsp;Connection ct=DriverManager.getConnerction();<br />&nbsp;//调用有返回值存储过程<br />&nbsp;CallableStatement cs=ct.prepareCall("{call 存储过程名称(?,?)}") // ?代表存储过程参数 第一是输入，第二是输出<br />&nbsp;//第一个?输入参数<br />&nbsp;cs.setIn(1,10);<br />&nbsp;//给第二个？输出值赋值<br />&nbsp;cs.registerOutParameter(2,oracle.jdbc.OracleTypes.VARCHAR); //<br />&nbsp;//执行<br />&nbsp;cs.execute();<br />&nbsp;//取出返回值,<br />&nbsp;String name=cs。getString(2);<br />&nbsp;System.out。println("名称是："+name);<br />}catch(Exception e)<br />{<br />&nbsp;e.printStackTrace();<br />}finally{<br />&nbsp;cs.close();<br />&nbsp;ct.close();<br />}</p>
<p>------------------------------------------------<br />-----------------------------------------------<br />-------ＪＡＶＡ中-调用有回值是多个 数组2011-12-5的存储过程-----------------<br />try{<br />&nbsp;Class.forName();<br />&nbsp;Connection ct=DriverManager.getConnerction();<br />&nbsp;//调用有返回值存储过程<br />&nbsp;CallableStatement cs=ct.prepareCall("{call 存储过程名称(?,?)}") // ?代表存储过程参数 第一是输入，第二是输出<br />&nbsp;//第一个?输入参数<br />&nbsp;cs.setIn(1,10);<br />&nbsp;//给第二个？输出值赋值<br />&nbsp;cs.registerOutParameter(2,oracle.jdbc.OracleTypes.cursor); //类型是cursor游标<br />&nbsp;//执行<br />&nbsp;cs.execute();<br />&nbsp;//取出返回值（结果集）<br />&nbsp;ReaultSet rs=(ResultSet)cs.getObject(2); //2是第二？<br />&nbsp;while(rs.next())<br />&nbsp;{<br />&nbsp; int =rs。getInt(1); <br />&nbsp; String name=rs。getString(2);<br />&nbsp; System.out。println("名称是："+name);<br />&nbsp;<br />&nbsp;}</p>
<p>}catch(Exception e)<br />{<br />&nbsp;e.printStackTrace();<br />}finally{<br />&nbsp;cs.close();<br />&nbsp;ct.close();<br />}<br />------------------------------------------------<br />-----------------------------------------------<br />------ＪＡＶＡ中--调用有回值的存储过程-----------------<br />try{<br />&nbsp;Class.forName();<br />&nbsp;Connection ct=DriverManager.getConnerction();<br />&nbsp;//调用有返回值存储过程<br />&nbsp;CallableStatement cs=ct.prepareCall("{call 存储过程名称(?,?)}") // ?代表存储过程参数 第一是输入，第二是输出<br />&nbsp;//第一个?输入参数<br />&nbsp;cs.setIn(1,10);<br />&nbsp;//给第二个？输出值赋值<br />&nbsp;cs.registerOutParameter(2,oracle.jdbc.OracleTypes.VARCHAR); //<br />&nbsp;//执行<br />&nbsp;cs.execute();<br />&nbsp;//取出返回值,<br />&nbsp;String name=cs。getString(2);<br />&nbsp;System.out。println("名称是："+name);<br />}catch(Exception e)<br />{<br />&nbsp;e.printStackTrace();<br />}finally{<br />&nbsp;cs.close();<br />&nbsp;ct.close();<br />}</p>
<p>------------------------------------------------<br />-----------------------------------------------<br />-------ＪＡＶＡ中-测试分页调用存储过程-----------------<br />try{<br />&nbsp;Class.forName();<br />&nbsp;Connection ct=DriverManager.getConnerction();<br />&nbsp;//调用有返回值存储过程<br />&nbsp;CallableStatement cs=ct.prepareCall("{call 分页存储过程名称(?,?,?,?,?,?)}") // ?代表存储过程参数 第一是输入，第二是输出<br />&nbsp;//?输入参数<br />&nbsp;cs.setString(1,'表名'); //表名<br />&nbsp;cs.setInt(2,5); //一页显示几条记录<br />&nbsp;cs.setInt(3,1); //显示第几页<br />&nbsp;//?输出参数<br />&nbsp;//注册总记录数<br />&nbsp;cs.registerOutParameter(4,oracle.jdbc.OracleTypes.INTEGER);<br />&nbsp;//注册总页数<br />&nbsp;cs.registerOutParameter(4,oracle.jdbc.OracleTypes.INTEGER);<br />&nbsp;//注册返回的结果集<br />&nbsp;cs.registerOutParameter(4,oracle.jdbc.OracleTypes.CURSOR); //类型是cursor游标</p>
<p>&nbsp;<br />&nbsp;//执行<br />&nbsp;cs.execute();<br />&nbsp;//取出总记录数<br />&nbsp;int rowNum=cs.getInt(4);//4表示参数中第四个？<br />&nbsp;//总页数<br />&nbsp;int pageCount=cs.getInt(5);<br />&nbsp;//返回的记录结果<br />&nbsp;ReaultSet rs=(ResultSet)cs.getObject(6);<br />&nbsp;while(rs.next())<br />&nbsp;{<br />&nbsp; int =rs。getInt(1); <br />&nbsp; String name=rs。getString(2);<br />&nbsp; System.out。println("名称是："+name);<br />&nbsp;<br />&nbsp;}</p>
<p>}catch(Exception e)<br />{<br />&nbsp;e.printStackTrace();<br />}finally{<br />&nbsp;cs.close();<br />&nbsp;ct.close();<br />}</p>
<p>A . 嵌套表 </p>
<p>1. 声明数组类型 <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; create or replace type tab_array is table of varchar2(38);暂时不要在包中声明该类型 </p>
<p>2. 创建存储过程 <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- 该例子存储过程是在包中创建的,包名 arraydemo <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; procedure testArray(resNumber in tab_array,procResult out tab_array) is <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; begin <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; procResult := new tab_array(); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for i in 1..resNumber.Count loop <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; procResult.EXTEND; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; procResult(i) := resNumber(i) || 'lucifer' || i; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end loop; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end; </p>
<p>3. Java调用代码 <br />&nbsp;&nbsp;&nbsp; //必须使用Oracle的连接和Statement,使用了连接池的必须通过一些方法获取原始的连接 <br />&nbsp;&nbsp;&nbsp; OracleConnection conn = null; <br />&nbsp;&nbsp;&nbsp; OracleCallableStatement stmt = null; <br />&nbsp;&nbsp;&nbsp; String[] param = { "1001", "1002", "1006" }; <br />&nbsp;&nbsp;&nbsp; stmt =(转换类型) conn.prepareCall("{call arraydemo.testArray(?,?)}"); <br />&nbsp;&nbsp;&nbsp; // 类型名必须大写 <br />&nbsp;&nbsp;&nbsp; ArrayDescriptor descriptor = ArrayDescriptor.createDescriptor("TAB_ARRAY", conn); <br />&nbsp;&nbsp;&nbsp; stmt.setARRAY(1, new ARRAY(descriptor,conn,param)); <br />&nbsp;&nbsp;&nbsp; stmt.registerOutParameter(2, OracleTypes.ARRAY, "TAB_ARRAY"); <br />&nbsp;&nbsp;&nbsp; stmt.execute(); <br />&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; ARRAY array = stmt.getARRAY(2); <br />&nbsp;&nbsp;&nbsp; Datum[] data = array.getOracleArray(); <br />&nbsp;&nbsp;&nbsp; for (int i = 0; i &lt; data.length; i++) { <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(i + " : " + new String(data.shareBytes())); <br />&nbsp;&nbsp;&nbsp; } <br />4 . 注意的问题及尚未解决的问题 <br />&nbsp;&nbsp;&nbsp; 抛出:Non supported character set: oracle-character-set-852 异常---解决:添加 nls_charset12.jar 到classpath,该包在oracle/ora92/jdbc/lib目录下 <br />&nbsp;&nbsp;&nbsp; 待解决问题: <br />&nbsp;&nbsp;&nbsp; a) 如何调用在包声明的自定义类型 <br />&nbsp;&nbsp;&nbsp; b) 比较不同声明类型的优缺点,及使用场合 <br />&nbsp;&nbsp;&nbsp; 嵌套表其它应用:http://zhouwf0726.itpub.net/post/9689/212253 </p>
<p>B . 索引表 <br />C . 内置数组 <br />D . 游标方式</p><img src ="http://www.blogjava.net/youngturk/aggbug/391366.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youngturk/" target="_blank">youngturk</a> 2012-11-15 11:28 <a href="http://www.blogjava.net/youngturk/archive/2012/11/15/391366.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle创建自增长序列</title><link>http://www.blogjava.net/youngturk/archive/2012/11/08/391008.html</link><dc:creator>youngturk</dc:creator><author>youngturk</author><pubDate>Thu, 08 Nov 2012 03:17:00 GMT</pubDate><guid>http://www.blogjava.net/youngturk/archive/2012/11/08/391008.html</guid><wfw:comment>http://www.blogjava.net/youngturk/comments/391008.html</wfw:comment><comments>http://www.blogjava.net/youngturk/archive/2012/11/08/391008.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youngturk/comments/commentRss/391008.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youngturk/services/trackbacks/391008.html</trackback:ping><description><![CDATA[<p>CREATE TABLE orders (<br />&nbsp; id number(11) NOT NULL ,<br />&nbsp; username varchar(22) NOT NULL ,<br />&nbsp; kind varchar(22) NOT NULL ,<br />&nbsp; phone varchar(11) DEFAULT '',<br />&nbsp; email varchar(22) DEFAULT '',<br />&nbsp; qq varchar(12) DEFAULT '',<br />&nbsp; name varchar(30) DEFAULT '',<br />&nbsp; address clob,<br />&nbsp; state varchar(30)&nbsp; DEFAULT '未处理',<br />&nbsp; time date DEFAULT '',<br />&nbsp; comname varchar(50) DEFAULT '',<br />&nbsp; comadd varchar(50) DEFAULT '',<br />&nbsp; PRIMARY KEY (id)<br />)</p>
<p>create sequence member_SEQ<br />minvalue 1<br />maxvalue 9999999<br />start with 21<br />increment by 1<br />cache 20;</p>
<p>CREATE OR REPLACE TRIGGER "member_trig"<br />&nbsp; BEFORE INSERT ON admin<br />&nbsp; REFERENCING OLD AS OLD NEW AS NEW FOR EACH ROW<br />DECLARE<br />BEGIN<br />&nbsp; SELECT member_seq.NEXTVAL INTO :NEW.ID FROM DUAL;<br />END member_trig;</p>
<p>&nbsp;</p><img src ="http://www.blogjava.net/youngturk/aggbug/391008.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youngturk/" target="_blank">youngturk</a> 2012-11-08 11:17 <a href="http://www.blogjava.net/youngturk/archive/2012/11/08/391008.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Tomcat5.0连接池配置（oracle / mysql / sqlserver2000）</title><link>http://www.blogjava.net/youngturk/archive/2012/11/07/390915.html</link><dc:creator>youngturk</dc:creator><author>youngturk</author><pubDate>Wed, 07 Nov 2012 01:37:00 GMT</pubDate><guid>http://www.blogjava.net/youngturk/archive/2012/11/07/390915.html</guid><wfw:comment>http://www.blogjava.net/youngturk/comments/390915.html</wfw:comment><comments>http://www.blogjava.net/youngturk/archive/2012/11/07/390915.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youngturk/comments/commentRss/390915.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youngturk/services/trackbacks/390915.html</trackback:ping><description><![CDATA[<p style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">配置一：XML方法</p>
<p style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">1、下载proxool 地址：http://proxool.sourceforge.net<br />&nbsp;&nbsp;&nbsp; 2、解压缩proxool-0.9.0RC2.zip，拷贝lib/proxool-0.9.0RC2.jar到web-info/lib<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; 拷贝jdbc驱动到web-info/lib<br />&nbsp;&nbsp;&nbsp; 3、在web-info下建立文件：proxool.xml<br />&nbsp;&nbsp;&nbsp;&nbsp; 文件内容如下：<br />&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br />&lt;something-else-entirely&gt;<br />&nbsp; &lt;proxool&gt;<br />&nbsp;&nbsp;&nbsp; &lt;alias&gt;<span style="color: rgb(255,0,0)">Develop</span>&lt;/alias&gt;<br />&nbsp;&nbsp;&nbsp; &lt;driver-url&gt;jdbc:oracle:thin:@192.168.100.18:1521:RNMS&lt;/driver-url&gt;<br />&nbsp;&nbsp;&nbsp; &lt;driver-class&gt;oracle.jdbc.driver.OracleDriver&lt;/driver-class&gt;<br />&nbsp;&nbsp;&nbsp; &lt;driver-properties&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="user" value="scmlp"/&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="password" &nbsp;value="scmlpscmlp"/&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/driver-properties&gt;<br />&nbsp;&nbsp;&nbsp; &lt;maximum-connection-count&gt;500&lt;/maximum-connection-count&gt;<br />&nbsp;&nbsp;&nbsp; &lt;house-keeping-test-sql&gt;select CURRENT_DATE&lt;/house-keeping-test-sql&gt;<br />&nbsp; &lt;/proxool&gt;<br />&lt;/something-else-entirely&gt;<br /><br />&nbsp;&nbsp;&nbsp; 4、在web.xml文件内加入以下内容：<br /><br />&lt;servlet&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;servlet-name&gt;proxoolServletConfigurator&lt;/servlet-name&gt;<br />&nbsp;&lt;servlet-class&gt;org.logicalcobwebs.proxool.configuration.ServletConfigurator&lt;/servlet-class&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;init-param&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-name&gt;xmlFile&lt;/param-name&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-value&gt;WEB-INF/proxool.xml&lt;/param-value&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;/init-param&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;load-on-startup&gt;1&lt;/load-on-startup&gt;<br />&nbsp;&nbsp; &lt;/servlet&gt;<br />&lt;!-- proxool提供的管理监控工具，可查看当前数据库连接情况。如果运行不成功，请删除本行 --&gt;<br />&nbsp;&nbsp; &lt;servlet&gt;<br />&nbsp;&nbsp;&nbsp; &lt;servlet-name&gt;Admin&lt;/servlet-name&gt;<br />&nbsp; &nbsp; &nbsp; &lt;servlet-class&gt;org.logicalcobwebs.proxool.admin.servlet.AdminServlet&lt;/servlet-class&gt;<br />&nbsp;&nbsp; &lt;/servlet&gt;<br />&nbsp;&nbsp; &lt;servlet-mapping&gt;<br />&nbsp;&nbsp;&nbsp; &lt;servlet-name&gt;Admin&lt;/servlet-name&gt;<br />&nbsp;&nbsp;&nbsp; &lt;url-pattern&gt;/admin&lt;/url-pattern&gt;<br />&nbsp;&nbsp; &lt;/servlet-mapping&gt;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp; 5、在调用数据库连接代码：<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; Connection conn = DriverManager.getConnection("proxool.<span style="color: rgb(255,0,0)">Develop</span>");<br /><br />&nbsp;&nbsp;&nbsp;&nbsp; 6、利用proxool监控工具查看数据库运行状态。地址：./admin</p>
<p style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">配置二：properties方法</p>
<p style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">1，下载proxool-0.8.3.jar并放到相应的目录，这个应该比较简单了 &nbsp;<span class="Apple-converted-space">&nbsp;</span><br />&nbsp; 2，写一个配置文件放到web-inf目录下，配置文件内容如下： &nbsp;<span class="Apple-converted-space">&nbsp;</span><br />&nbsp; &nbsp; &nbsp; &nbsp; jdbc-0.proxool.alias=bidding &nbsp;<span class="Apple-converted-space">&nbsp;</span><br />&nbsp; &nbsp; &nbsp; &nbsp; jdbc-0.proxool.driver-url=jjdbc:oracle:thin:@127.0.0.1:1521:dbname &nbsp;<span class="Apple-converted-space">&nbsp;</span><br />&nbsp; &nbsp; &nbsp; &nbsp; jdbc-0.proxool.driver-class=oracle.jdbc.driver.oracledriver &nbsp;<span class="Apple-converted-space">&nbsp;</span><br />&nbsp; &nbsp; &nbsp; &nbsp; jdbc-0.user=name &nbsp;<span class="Apple-converted-space">&nbsp;</span><br />&nbsp; &nbsp; &nbsp; &nbsp; jdbc-0.password=pass &nbsp;<span class="Apple-converted-space">&nbsp;</span><br />&nbsp; &nbsp; &nbsp; &nbsp; jdbc-0.proxool.maximum-connection-count=200 &nbsp;<span class="Apple-converted-space">&nbsp;</span><br />&nbsp; &nbsp; &nbsp; &nbsp; jdbc-0.proxool.house-keeping-test-sql=select &nbsp; * &nbsp;<span class="Apple-converted-space">&nbsp;</span><br />&nbsp; 3，在web-inf/web.xml中添加如下代码： &nbsp;<span class="Apple-converted-space">&nbsp;</span><br />&nbsp; &nbsp; &nbsp; &nbsp; &lt;servlet&gt; &nbsp;<span class="Apple-converted-space">&nbsp;</span><br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;servlet-name&gt;servletconfigurator&lt;/servlet-name&gt; &nbsp;<span class="Apple-converted-space">&nbsp;</span><br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;servlet-lass&gt;org.logicalcobwebs.proxool.configuration.servletconfigurator&lt;/servlet-class&gt; &nbsp;<span class="Apple-converted-space">&nbsp;</span><br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;init-param&gt; &nbsp;<span class="Apple-converted-space">&nbsp;</span><br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;param-name&gt;propertyfile&lt;/param-name&gt; &nbsp;<span class="Apple-converted-space">&nbsp;</span><br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;param-value&gt;web-inf/proxool.properties&lt;/param-value&gt; &nbsp;<span class="Apple-converted-space">&nbsp;</span><br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;/init-param&gt; &nbsp;<span class="Apple-converted-space">&nbsp;</span><br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;load-on-startup&gt;1&lt;/load-on-startup&gt; &nbsp;<span class="Apple-converted-space">&nbsp;</span><br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;/servlet&gt; &nbsp; &nbsp;<span class="Apple-converted-space">&nbsp;</span><br />&nbsp; 4，配置就这么简单，下面给你一段怎么得到一个连接代码，其他的应该就比较简单了 &nbsp;<span class="Apple-converted-space">&nbsp;</span><br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; public &nbsp; connection &nbsp; getconnection() &nbsp; { &nbsp;<span class="Apple-converted-space">&nbsp;</span><br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; try &nbsp; { &nbsp; &nbsp;<span class="Apple-converted-space">&nbsp;</span><br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; conn &nbsp; = &nbsp; drivermanager.getconnection("proxool.bidding"); &nbsp;<span class="Apple-converted-space">&nbsp;</span><br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }catch(sqlexception &nbsp; ex){ &nbsp;<span class="Apple-converted-space">&nbsp;</span><br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ex.printstacktrace(); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="Apple-converted-space">&nbsp;</span><br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; finally &nbsp; { &nbsp;<span class="Apple-converted-space">&nbsp;</span><br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; try &nbsp; { &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="Apple-converted-space">&nbsp;</span><br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if &nbsp; (conn &nbsp; != &nbsp; null) &nbsp; { &nbsp;<span class="Apple-converted-space">&nbsp;</span><br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; conn.close(); &nbsp;<span class="Apple-converted-space">&nbsp;</span><br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp;<span class="Apple-converted-space">&nbsp;</span><br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; catch &nbsp; (sqlexception &nbsp; e) &nbsp; { &nbsp;<span class="Apple-converted-space">&nbsp;</span><br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; e.printstacktrace(); &nbsp;<span class="Apple-converted-space">&nbsp;</span><br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; log("problem &nbsp; closing &nbsp; connection"); &nbsp;<span class="Apple-converted-space">&nbsp;</span><br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp;<span class="Apple-converted-space">&nbsp;</span><br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; &nbsp;<span class="Apple-converted-space">&nbsp;</span><br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return &nbsp; conn; &nbsp;<span class="Apple-converted-space">&nbsp;</span><br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /></p><img src ="http://www.blogjava.net/youngturk/aggbug/390915.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youngturk/" target="_blank">youngturk</a> 2012-11-07 09:37 <a href="http://www.blogjava.net/youngturk/archive/2012/11/07/390915.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>报错SQL state [null]; error code [17027]; 流已被关闭; nested exception is java.sql.SQLException: 流已被关闭 </title><link>http://www.blogjava.net/youngturk/archive/2012/10/24/390155.html</link><dc:creator>youngturk</dc:creator><author>youngturk</author><pubDate>Wed, 24 Oct 2012 05:43:00 GMT</pubDate><guid>http://www.blogjava.net/youngturk/archive/2012/10/24/390155.html</guid><wfw:comment>http://www.blogjava.net/youngturk/comments/390155.html</wfw:comment><comments>http://www.blogjava.net/youngturk/archive/2012/10/24/390155.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youngturk/comments/commentRss/390155.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youngturk/services/trackbacks/390155.html</trackback:ping><description><![CDATA[org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:83)<br /><span style="white-space: pre"></span>at org.springframework.orm.hibernate3.HibernateAccessor.convertJdbcAccessException(HibernateAccessor.java:424)<br /><span style="white-space: pre"></span>at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:410)<br /><br /><br />Caused by: java.sql.SQLException: 流已被关闭<br /><span style="white-space: pre"></span>at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:124)<br /><span style="white-space: pre"></span>at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:161)<br /><span style="white-space: pre"></span>at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:226)<br /><span style="white-space: pre"></span>at oracle.jdbc.driver.LongAccessor.getBytes(LongAccessor.java:165)<br /><br /><br />
<p><span style="white-space: pre"></span>... 77 more</p>
<p><br /></p>
<p>解决办法：</p>
<p><br /></p>
<p><span style="white-space: pre"></span>将oracle的long字段，修改成number类型</p>
<p><br /></p>
<p><span style="white-space: pre"></span><strong>java中 &nbsp; &nbsp;double类型 &nbsp;--------- oracle中 &nbsp;number类型</strong></p>
<p><strong>&nbsp; &nbsp; &nbsp; &nbsp; java中 &nbsp; &nbsp;int类型 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;--------- oracle中 &nbsp;integer类型</strong></p><img src ="http://www.blogjava.net/youngturk/aggbug/390155.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youngturk/" target="_blank">youngturk</a> 2012-10-24 13:43 <a href="http://www.blogjava.net/youngturk/archive/2012/10/24/390155.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle权限修改</title><link>http://www.blogjava.net/youngturk/archive/2012/09/02/386808.html</link><dc:creator>youngturk</dc:creator><author>youngturk</author><pubDate>Sun, 02 Sep 2012 10:37:00 GMT</pubDate><guid>http://www.blogjava.net/youngturk/archive/2012/09/02/386808.html</guid><wfw:comment>http://www.blogjava.net/youngturk/comments/386808.html</wfw:comment><comments>http://www.blogjava.net/youngturk/archive/2012/09/02/386808.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youngturk/comments/commentRss/386808.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youngturk/services/trackbacks/386808.html</trackback:ping><description><![CDATA[<a href="http://wenku.baidu.com/view/54431dc1bb4cf7ec4afed073.html">http://wenku.baidu.com/view/54431dc1bb4cf7ec4afed073.html</a>###<img src ="http://www.blogjava.net/youngturk/aggbug/386808.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youngturk/" target="_blank">youngturk</a> 2012-09-02 18:37 <a href="http://www.blogjava.net/youngturk/archive/2012/09/02/386808.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>查询默认表空间名 ，增加表空间大小</title><link>http://www.blogjava.net/youngturk/archive/2012/07/11/382819.html</link><dc:creator>youngturk</dc:creator><author>youngturk</author><pubDate>Wed, 11 Jul 2012 12:11:00 GMT</pubDate><guid>http://www.blogjava.net/youngturk/archive/2012/07/11/382819.html</guid><wfw:comment>http://www.blogjava.net/youngturk/comments/382819.html</wfw:comment><comments>http://www.blogjava.net/youngturk/archive/2012/07/11/382819.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youngturk/comments/commentRss/382819.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youngturk/services/trackbacks/382819.html</trackback:ping><description><![CDATA[<font size="2">select username,default_tablespace from user_users </font><br /><br />
<p><span style="font-size: small"><font size="2"><span style="color: #0000ff">ALTER TABLESPACE APPS_TS_TX_DATA ADD DATAFILE '/d01/dba/vis01data/tx_data14.dbf' SIZE 100M</span>;（增加100M到APPS_TS_TX_DATA表空间）</font></span></p>
<p><span style="font-size: small"><font size="2">注意：执行上面命令是增加tx_data**.dbf文件, **请用&#8220;不存在SQL结果&#8221;里的数字代替，一般为SQL中查询中的最大数字加1。<br /><br /></p>
<p><span style="color: #0000ff"><span style="font-size: xx-small"><strong><span style="font-size: small"><font size="2">1、&nbsp; &lt;!--[endif]--&gt;执行以下SQL语句查找存放表空间的数据文件的路径</font></span></strong></span></span></p>
<p><span style="font-size: small"><font size="2">--Sep 28, 2008&nbsp; Eleven.Xu</font></span></p>
<p><span style="font-size: xx-small"><span style="color: #0000ff"><span style="font-size: small"><font size="2">SELECT ddf.file_name</font></span></span></span></p>
<p><span style="font-size: xx-small"><span style="color: #0000ff"><span style="font-size: small"><font size="2">&nbsp; FROM Dba_Data_Files ddf</font></span></span></span></p>
<p><span style="font-size: xx-small"><span style="color: #0000ff"><span style="font-size: small"><font size="2">&nbsp;where ddf.tablespace_name = 'APPS_TS_TX_DATA'</font></span></span></span></p>
<p><span style="font-size: small"><font size="2">&nbsp;</font></span></p>
<p><span style="color: #0000ff"><span style="font-size: xx-small"><strong><span style="font-size: small"><font size="2">2、用system/manager登录PL/SQL Developer</font></span></strong></span></span></p>
<p><span style="font-size: small"><font size="2">新建一个command窗口</font></span></p>
<p><span style="font-size: small"><font size="2">运行如下SQL语句：</font></span></p>
<p><span style="font-size: small"><font size="2"><span style="color: #0000ff">ALTER TABLESPACE APPS_TS_TX_DATA ADD DATAFILE '/d01/dba/vis01data/tx_data14.dbf' SIZE 100M</span>;（增加100M到APPS_TS_TX_DATA表空间）</font></span></p>
<p><span style="font-size: small"><font size="2">注意：执行上面命令是增加tx_data**.dbf文件, **请用&#8220;不存在SQL结果&#8221;里的数字代替，一般为SQL中查询中的最大数字加1。</font></span></p>
<p></font></span></p><img src ="http://www.blogjava.net/youngturk/aggbug/382819.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youngturk/" target="_blank">youngturk</a> 2012-07-11 20:11 <a href="http://www.blogjava.net/youngturk/archive/2012/07/11/382819.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DBlink关于from a@dblink</title><link>http://www.blogjava.net/youngturk/archive/2012/07/02/381985.html</link><dc:creator>youngturk</dc:creator><author>youngturk</author><pubDate>Mon, 02 Jul 2012 05:55:00 GMT</pubDate><guid>http://www.blogjava.net/youngturk/archive/2012/07/02/381985.html</guid><wfw:comment>http://www.blogjava.net/youngturk/comments/381985.html</wfw:comment><comments>http://www.blogjava.net/youngturk/archive/2012/07/02/381985.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youngturk/comments/commentRss/381985.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youngturk/services/trackbacks/381985.html</trackback:ping><description><![CDATA[example:<a href="http://www.ixpub.net/thread-1361302-1-1.html">http://www.ixpub.net/thread-1361302-1-1.html<br /></a><br /><br /><br /><img src ="http://www.blogjava.net/youngturk/aggbug/381985.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youngturk/" target="_blank">youngturk</a> 2012-07-02 13:55 <a href="http://www.blogjava.net/youngturk/archive/2012/07/02/381985.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>powerDesigner 导入sql 生成数据模型</title><link>http://www.blogjava.net/youngturk/archive/2012/06/29/381784.html</link><dc:creator>youngturk</dc:creator><author>youngturk</author><pubDate>Fri, 29 Jun 2012 02:26:00 GMT</pubDate><guid>http://www.blogjava.net/youngturk/archive/2012/06/29/381784.html</guid><wfw:comment>http://www.blogjava.net/youngturk/comments/381784.html</wfw:comment><comments>http://www.blogjava.net/youngturk/archive/2012/06/29/381784.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youngturk/comments/commentRss/381784.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youngturk/services/trackbacks/381784.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">将sql文件导入到pdm文件&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;PDM中的逆向工程是指从现有DBMS的用户数据库或现有数据库SQL脚本中生成PDM的过程。逆向工程有两种对象：1）通过ODBC数据源连接数据库&nbsp;2)&nbsp;现有数据库sql脚本。&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;具体的操作如下：&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;1、&nbsp;数据库已创建完毕，访问用户和密码设置完成。数据库为Oracle9i。&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;2、&nbsp;ODBC数据源已由oracle&nbsp;的Net&nbsp;Configuration&nbsp;Assistant&nbsp;创建，本地网络命名服务&#8220;Database&#8221;。&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;3、&nbsp;sql脚本示例create.sql。&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;4、&nbsp;Powerdesigner已安装完成。&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;一、&nbsp;通过数据源连接数据库逆向工程生成PDM&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;1、&nbsp;配置用户数据库连接参数&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;选择Database-&gt;configure&nbsp;connections,转到system&nbsp;dsn标签，点击Add按钮，选数据库类型Oracle，点击完成。&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;显示如下：输入DataSource&nbsp;Name&#8220;PDMTest&#8221;；输入ServerName&#8220;Database&#8221;，&nbsp;配置完成。&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;点击&#8220;Test&nbsp;Connect&#8221;输入ServerName&#8220;Database&#8221;，用户名和密码，以后每次连接，选择Database-&gt;connect，选择odbc数据源，输入ServerName&#8220;Database&#8221;，用户名和密码。&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;若无提示，则说明连接成功。同时，可以通过Database-&gt;Connection&nbsp;Information&nbsp;查看连接信息。&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;2、&nbsp;设置逆向工程选项，生成pdm&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;创建一个PDM文件，选择与之匹配的数据库类型&#8220;oracle9i&#8221;。&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;选择Database-&gt;Reverse&nbsp;Engineer&nbsp;Database，弹出Database&nbsp;Reverse&nbsp;Engineering对话框，选Using&nbsp;an&nbsp;ODBC&nbsp;data&nbsp;source选ODBC数据源&#8220;PDMTest&#8221;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;点击确定后，显示此数据库中所有表、视图、用户。根据需要选择后，转换成pdm。&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;3、&nbsp;查看数据&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;对于生成好的PDM，选择一个表图形符号，点击右键，选择View&nbsp;Data，就可以访问表中的数据了。&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;mysql同理&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;comment只能导入comment段，无法导入name段，要导入name,试试erstudio.&nbsp; <br /><br /><br />方法二<br /><div>http://blog.csdn.net/hedongyang/article/details/1609489</div><br /></span></div><img src ="http://www.blogjava.net/youngturk/aggbug/381784.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youngturk/" target="_blank">youngturk</a> 2012-06-29 10:26 <a href="http://www.blogjava.net/youngturk/archive/2012/06/29/381784.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>找回commit前的数据集用 as of timestamp</title><link>http://www.blogjava.net/youngturk/archive/2012/06/27/381604.html</link><dc:creator>youngturk</dc:creator><author>youngturk</author><pubDate>Wed, 27 Jun 2012 07:20:00 GMT</pubDate><guid>http://www.blogjava.net/youngturk/archive/2012/06/27/381604.html</guid><wfw:comment>http://www.blogjava.net/youngturk/comments/381604.html</wfw:comment><comments>http://www.blogjava.net/youngturk/archive/2012/06/27/381604.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youngturk/comments/commentRss/381604.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youngturk/services/trackbacks/381604.html</trackback:ping><description><![CDATA[用法：<br />select * from tableName as of timestamp to_timestamp('20120627143000','yyyymmddHH24miss');<img src ="http://www.blogjava.net/youngturk/aggbug/381604.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youngturk/" target="_blank">youngturk</a> 2012-06-27 15:20 <a href="http://www.blogjava.net/youngturk/archive/2012/06/27/381604.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>PowerDesigner 生成数据字典</title><link>http://www.blogjava.net/youngturk/archive/2012/06/11/380498.html</link><dc:creator>youngturk</dc:creator><author>youngturk</author><pubDate>Mon, 11 Jun 2012 07:07:00 GMT</pubDate><guid>http://www.blogjava.net/youngturk/archive/2012/06/11/380498.html</guid><wfw:comment>http://www.blogjava.net/youngturk/comments/380498.html</wfw:comment><comments>http://www.blogjava.net/youngturk/archive/2012/06/11/380498.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youngturk/comments/commentRss/380498.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youngturk/services/trackbacks/380498.html</trackback:ping><description><![CDATA[<div><div>打开 PowerDesigner 打开一个数据模型 CDM 或 PDM</div><div>选择 Report &#8594; Reports</div><div>点击 New Report 新建一个报告</div><div>输入报告名，选择中文，标准报告</div><div>这时显示出来的左边是可使用的项目，右边是报告中已经包含的项目，若是只要数据字典，可以只保留 Title-Tables</div><div>在网上搜到了一个简单的数据字典模板项目如下：</div><div></div><div>+ Title-Tables</div><div>+--+ Table-表格%ITEM%</div><div>+--+--- Table Card-表格%ITEM%的卡片</div><div>+--+--- Table Description-表格%ITEM%的说明</div><div>+--+--- Table Check Constraint Name-表格%ITEM%的约束名称</div><div>+--+--- List of all Dependencies-表格%PARENT%的依赖清单</div><div>+--+--- List of Table Columns-表格%PARENT%的列清单</div><div>+--+--+ Table Column-表格%PARENT%的列%ITEM%</div><div>+--+--+--- Table Columns Card-表格%PARENT%的列%ITEM%的卡片</div><div>+--+--+--- Table Columns Description-表格%PARENT%的列%ITEM%的说明</div><div>+--+--+--- Table Columns Check Constraint Name-表格%PARENT%的列%ITEM%的约束名称</div><div>+--+--+--- List of all Dependencies-列%PARENT%的依赖清单</div><div>+--+--- List of Table Keys-表格%PARENT%的键清单</div><div>+--+--+ Table Key-表格%PARENT%的键的%ITEM%</div><div>+--+--+--- Table Key Card-表格%PARENT%的键%ITEM%的卡片</div><div>+--+--+--- Table Key Description-表格%PARENT%的键%ITEM%的说明</div><div>+--+--+--- List of Columns of Table Key-键%PARENT%的列清单</div><div>+--+--+--- List of all Dependen</div><div></div><div>在这里编辑好报告的格式后，选择 Report &#8594; Generate HTML 或 Generate RTF 生成报告即可</div></div><img src ="http://www.blogjava.net/youngturk/aggbug/380498.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youngturk/" target="_blank">youngturk</a> 2012-06-11 15:07 <a href="http://www.blogjava.net/youngturk/archive/2012/06/11/380498.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle本地网络服务名配置</title><link>http://www.blogjava.net/youngturk/archive/2012/06/05/380016.html</link><dc:creator>youngturk</dc:creator><author>youngturk</author><pubDate>Tue, 05 Jun 2012 05:53:00 GMT</pubDate><guid>http://www.blogjava.net/youngturk/archive/2012/06/05/380016.html</guid><wfw:comment>http://www.blogjava.net/youngturk/comments/380016.html</wfw:comment><comments>http://www.blogjava.net/youngturk/archive/2012/06/05/380016.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youngturk/comments/commentRss/380016.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youngturk/services/trackbacks/380016.html</trackback:ping><description><![CDATA[<div>1，用vpn可以登录公司内网，当用户名，密码登录上去了以后即现在的环境就是公司局域网的了<br />可以配置：<br />database.url=jdbc:oracle:thin:@11,21,123.0:1521:tianjin<br /><!--StartFragment -->

<div>TJGWL61&nbsp;=//网络服务名，随便<br />&nbsp;&nbsp;(DESCRIPTION&nbsp;=<br />&nbsp;&nbsp;&nbsp;&nbsp;(ADDRESS_LIST&nbsp;=<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(ADDRESS&nbsp;=&nbsp;(PROTOCOL&nbsp;=&nbsp;TCP)(HOST&nbsp;=&nbsp;10.138.5.61)(PORT&nbsp;=&nbsp;1521))<br />&nbsp;&nbsp;&nbsp;&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;(CONNECT_DATA&nbsp;=<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(SERVICE_NAME&nbsp;=&nbsp;tianjin)，数据库名<br />&nbsp;&nbsp;&nbsp;&nbsp;)<br />&nbsp;&nbsp;) </div></div><img src ="http://www.blogjava.net/youngturk/aggbug/380016.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youngturk/" target="_blank">youngturk</a> 2012-06-05 13:53 <a href="http://www.blogjava.net/youngturk/archive/2012/06/05/380016.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>触发器 trigger</title><link>http://www.blogjava.net/youngturk/archive/2012/06/03/379880.html</link><dc:creator>youngturk</dc:creator><author>youngturk</author><pubDate>Sun, 03 Jun 2012 15:06:00 GMT</pubDate><guid>http://www.blogjava.net/youngturk/archive/2012/06/03/379880.html</guid><wfw:comment>http://www.blogjava.net/youngturk/comments/379880.html</wfw:comment><comments>http://www.blogjava.net/youngturk/archive/2012/06/03/379880.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youngturk/comments/commentRss/379880.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youngturk/services/trackbacks/379880.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">create&nbsp;or&nbsp;replace&nbsp;trigger&nbsp;tr_in<br />&nbsp;&nbsp;before&nbsp;insert&nbsp;on&nbsp;doptin&nbsp;&nbsp;<br />&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;each&nbsp;row<br />declare<br />&nbsp;&nbsp;v_count&nbsp;number;<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;</span><span style="color: #000000; ">--</span><span style="color: #000000; ">&nbsp;local&nbsp;variables&nbsp;here<br />begin<br />&nbsp;&nbsp;select&nbsp;count(</span><span style="color: #000000; ">*</span><span style="color: #000000; ">)&nbsp;into&nbsp;v_count&nbsp;from&nbsp;dopt&nbsp;<br />&nbsp;&nbsp;where&nbsp;doptid&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">:</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">.proid;<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;v_count&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">&nbsp;then<br />&nbsp;&nbsp;&nbsp;&nbsp;insert&nbsp;into&nbsp;dopt(非变异表)&nbsp;values(sq_dopt.nextval,:</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">.proid,:</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">.innum);<br />&nbsp;&nbsp;</span><span style="color: #0000FF; ">else</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;update&nbsp;dopt&nbsp;set&nbsp;dopt.doptnum&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;doptnum</span><span style="color: #000000; ">+</span><span style="color: #000000; ">:</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">.innum&nbsp;where&nbsp;proid&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;:</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">.proid;<br />&nbsp;&nbsp;end&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;</span><span style="color: #000000; ">--</span><span style="color: #000000; ">检测是否第一次入库记录，如果第一次入库，则在dopt表中<br />&nbsp;&nbsp;</span><span style="color: #000000; ">--</span><span style="color: #000000; ">建立一条记录，否则修改dopt表中库存数量<br />&nbsp;&nbsp;exception&nbsp;when&nbsp;others&nbsp;then<br />&nbsp;&nbsp;&nbsp;&nbsp;dbms_output.put_line(sqlerrm);<br />end&nbsp;tr_in;<br /><br /><br /></span><span style="color: #000000; ">--------------------</span><span style="color: #000000; "><br /><br /><br />create&nbsp;or&nbsp;replace&nbsp;trigger&nbsp;tr_out<br />&nbsp;&nbsp;before&nbsp;insert&nbsp;on&nbsp;doptout&nbsp;&nbsp;</span><span style="color: #000000; ">--</span><span style="color: #000000; ">触发表<br />&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;each&nbsp;row<br />declare<br />&nbsp;&nbsp;v_num&nbsp;number;<br />&nbsp;&nbsp;</span><span style="color: #000000; ">--</span><span style="color: #000000; ">&nbsp;local&nbsp;variables&nbsp;here<br />begin<br />&nbsp;&nbsp;select&nbsp;dopt.doptnum&nbsp;into&nbsp;v_num&nbsp;from&nbsp;dopt&nbsp;where&nbsp;dopt.proid&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;:</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">.proid;<br />&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;:</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">.outnum&nbsp;</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;v_num&nbsp;then<br />&nbsp;&nbsp;&nbsp;&nbsp;raise_application_error(</span><span style="color: #000000; ">-</span><span style="color: #000000; ">20001</span><span style="color: #000000; ">,</span><span style="color: #000000; ">'</span><span style="color: #000000; ">库存不足</span><span style="color: #000000; ">'</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;</span><span style="color: #0000FF; ">else</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;update&nbsp;dopt&nbsp;set&nbsp;doptnum&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;doptnum&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">&nbsp;:</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">.outnum&nbsp;where&nbsp;doptid&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;:</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">.proid;<br />&nbsp;&nbsp;end&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">;<br />end&nbsp;tr_out;<br /><br /><br /><br /></span><span style="color: #000000; ">---------------------------------------</span><span style="color: #000000; "><br /></span><span style="color: #000000; ">--</span><span style="color: #000000; ">1触发事件&nbsp;insert&nbsp;delete&nbsp;update<br /></span><span style="color: #000000; ">--</span><span style="color: #000000; ">2触发时机<br /></span><span style="color: #000000; ">--</span><span style="color: #000000; ">对dml语句之前还是之后让他工作<br /></span><span style="color: #000000; ">--</span><span style="color: #000000; ">3触发表，触发器为之工作的表<br /></span><span style="color: #000000; ">--</span><span style="color: #000000; ">4触发类型：<br /></span><span style="color: #000000; ">--</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">4</span><span style="color: #000000; ">.1行级，语句级触发器即（表级触发器）<br />create&nbsp;or&nbsp;replace&nbsp;trigger&nbsp;tr_row_after<br />&nbsp;&nbsp;after&nbsp;update&nbsp;on&nbsp;emp&nbsp;&nbsp;<br />&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;each&nbsp;row<br />declare<br />&nbsp;&nbsp;</span><span style="color: #000000; ">--</span><span style="color: #000000; ">&nbsp;local&nbsp;variables&nbsp;here<br />begin<br />&nbsp;&nbsp;dbms_output.put_line(</span><span style="color: #000000; ">'</span><span style="color: #000000; ">&#215;&#215;行级后触发器工作&#215;&#215;</span><span style="color: #000000; ">'</span><span style="color: #000000; ">);<br />end&nbsp;tr_row_after;&nbsp;<br /><br /></span><span style="color: #000000; ">-------------------</span><span style="color: #000000; "><br />create&nbsp;or&nbsp;replace&nbsp;trigger&nbsp;tr_row_before<br />&nbsp;&nbsp;before&nbsp;update&nbsp;on&nbsp;emp&nbsp;&nbsp;<br />&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;each&nbsp;row<br />declare<br />&nbsp;&nbsp;</span><span style="color: #000000; ">--</span><span style="color: #000000; ">&nbsp;local&nbsp;variables&nbsp;here<br />begin<br />&nbsp;&nbsp;dbms_output.put_line(</span><span style="color: #000000; ">'</span><span style="color: #000000; ">row&nbsp;before&nbsp;trigger&nbsp;test</span><span style="color: #000000; ">'</span><span style="color: #000000; ">);<br />end&nbsp;tr_row_before;<br /></span><span style="color: #000000; ">----------------------------------------</span><span style="color: #000000; "><br />create&nbsp;or&nbsp;replace&nbsp;trigger&nbsp;tr_tab_before<br />&nbsp;&nbsp;before&nbsp;update&nbsp;on&nbsp;emp&nbsp;&nbsp;<br />&nbsp;&nbsp;<br />declare<br />&nbsp;&nbsp;</span><span style="color: #000000; ">--</span><span style="color: #000000; ">&nbsp;local&nbsp;variables&nbsp;here<br />begin<br />&nbsp;&nbsp;dbms_output.put_line(</span><span style="color: #000000; ">'</span><span style="color: #000000; ">table&nbsp;&nbsp;grade&nbsp;before&nbsp;working</span><span style="color: #000000; ">'</span><span style="color: #000000; ">);<br />end&nbsp;tr_tab_before;<br /></span><span style="color: #000000; ">-------------------------</span><span style="color: #000000; "><br />create&nbsp;or&nbsp;replace&nbsp;trigger&nbsp;tr_tab_after<br />&nbsp;&nbsp;before&nbsp;update&nbsp;on&nbsp;emp&nbsp;&nbsp;<br />&nbsp;&nbsp;<br />declare<br />&nbsp;&nbsp;</span><span style="color: #000000; ">--</span><span style="color: #000000; ">&nbsp;local&nbsp;variables&nbsp;here<br />begin<br />&nbsp;&nbsp;dbms_output.put_line(</span><span style="color: #000000; ">'</span><span style="color: #000000; ">table&nbsp;&nbsp;grade&nbsp;after&nbsp;working</span><span style="color: #000000; ">'</span><span style="color: #000000; ">);<br />end&nbsp;tr_tab_after;<br /></span><span style="color: #000000; ">------------------------------------------</span><span style="color: #000000; ">执行结果:<br />table&nbsp;&nbsp;grade&nbsp;after&nbsp;working<br />table&nbsp;&nbsp;grade&nbsp;before&nbsp;working<br />row&nbsp;before&nbsp;trigger&nbsp;test<br />row&nbsp;after&nbsp;trigger&nbsp;test<br />row&nbsp;before&nbsp;trigger&nbsp;test<br />row&nbsp;after&nbsp;trigger&nbsp;test<br />row&nbsp;before&nbsp;trigger&nbsp;test<br />row&nbsp;after&nbsp;trigger&nbsp;test<br /></span><span style="color: #000000; ">----------------------</span><span style="color: #000000; "><br /></span><span style="color: #000000; ">-----------</span><span style="color: #000000; ">触发操作（触发器中语句块<br /></span><span style="color: #000000; ">---</span><span style="color: #000000; ">周末不能对员工表做操作<br /><br />create&nbsp;or&nbsp;replace&nbsp;trigger&nbsp;tr_emp2_in_up_de<br />&nbsp;&nbsp;before&nbsp;insert&nbsp;or&nbsp;update&nbsp;or&nbsp;delete&nbsp;on&nbsp;emp2&nbsp;&nbsp;<br />&nbsp;&nbsp;<br />declare<br />&nbsp;&nbsp;v_day&nbsp;varchar2(</span><span style="color: #000000; ">20</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;</span><span style="color: #000000; ">--</span><span style="color: #000000; ">&nbsp;local&nbsp;variables&nbsp;here<br />begin<br />&nbsp;&nbsp;select&nbsp;to_char(sysdate,</span><span style="color: #000000; ">'</span><span style="color: #000000; ">dy</span><span style="color: #000000; ">'</span><span style="color: #000000; ">)&nbsp;into&nbsp;v_day&nbsp;from&nbsp;dual;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;inserting&nbsp;then<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;raise_application_error(</span><span style="color: #000000; ">-</span><span style="color: #000000; ">20001</span><span style="color: #000000; ">,</span><span style="color: #000000; ">'</span><span style="color: #000000; ">have&nbsp;the&nbsp;rest&nbsp;day&nbsp;can&nbsp;not&nbsp;control&nbsp;employ</span><span style="color: #000000; ">'</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;elseif&nbsp;updating&nbsp;then<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;raise_application_error(</span><span style="color: #000000; ">-</span><span style="color: #000000; ">20001</span><span style="color: #000000; ">,</span><span style="color: #000000; ">'</span><span style="color: #000000; ">have&nbsp;the&nbsp;rest&nbsp;day&nbsp;not&nbsp;control&nbsp;employ</span><span style="color: #000000; ">'</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;elseif&nbsp;deleting&nbsp;then<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;raise_application_error(</span><span style="color: #000000; ">-</span><span style="color: #000000; ">20001</span><span style="color: #000000; ">,</span><span style="color: #000000; ">'</span><span style="color: #000000; ">have&nbsp;the&nbsp;rest&nbsp;day&nbsp;cnot&nbsp;control&nbsp;employ</span><span style="color: #000000; ">'</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">;<br /><br />end&nbsp;tr_emp2_in_up_de;<br /></span><span style="color: #000000; ">---------</span><span style="color: #000000; ">触发器执行<br /></span><span style="color: #000000; ">--</span><span style="color: #000000; ">ml操作请求－－－》触发器工作－－－》dml操作结束－－－－》commit&nbsp;or&nbsp;roback<br /></span><span style="color: #000000; ">--</span><span style="color: #000000; ">触发器不能还有事务控制语句；commit&nbsp;roback<br /></span><span style="color: #000000; ">---</span><span style="color: #000000; ">不能含有ddl语句，因为ddl语句会自动提交；<br /></span><span style="color: #000000; ">---</span><span style="color: #000000; ">触发器代码大小不能超过512k，可以使用触发器调用过程或者函数调用，解决较大代码调用问题<br /></span><span style="color: #000000; ">---</span><span style="color: #000000; ">注意，触发器都是在dml结束前执行&nbsp;，delete中&nbsp;：old指删除的要操作de旧记录，insert中：new指要插入的新记录<br /></span><span style="color: #000000; ">--</span><span style="color: #000000; ">after，与&nbsp;before触发器的区别，update即可以：</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">，又可以：old，他们只能在行集触发器中使用..<br /></span><span style="color: #000000; ">--</span><span style="color: #000000; ">行级before触发器可以修改：new的值，而行级后after触发器则不行<br /></span><span style="color: #000000; ">--</span><span style="color: #000000; ">1触发时机，before比after先执行，<br /></span><span style="color: #000000; ">--</span><span style="color: #000000; ">2</span><span style="color: #000000; ">－定义取编号触发器<br />create&nbsp;or&nbsp;replace&nbsp;trigger&nbsp;tr_teb_before<br />&nbsp;&nbsp;before&nbsp;insert&nbsp;on&nbsp;teb&nbsp;&nbsp;<br />&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;each&nbsp;row<br />declare<br />&nbsp;&nbsp;</span><span style="color: #000000; ">--</span><span style="color: #000000; ">&nbsp;local&nbsp;variables&nbsp;here<br />&nbsp;&nbsp;v_num&nbsp;number;<br />begin<br />&nbsp;&nbsp;&nbsp;select&nbsp;sq_teb.nextval&nbsp;into&nbsp;v_num&nbsp;from&nbsp;dual;<br />&nbsp;&nbsp;&nbsp;:</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">.tebid&nbsp;:</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;v_num;<br />end&nbsp;tr_teb_before;<br /></span><span style="color: #000000; ">---</span><span style="color: #000000; ">instead&nbsp;of&nbsp;触发器&nbsp;视图触发器&nbsp;做修改操作，视图只是用来查询的，一旦用修改则用instead&nbsp;of触发器<br /></span><span style="color: #000000; ">---</span><span style="color: #000000; ">多表复杂视图&nbsp;不能通过dml操作修改，<br /></span><span style="color: #000000; ">--</span><span style="color: #000000; ">和普通dml触发器的区别：instead&nbsp;of&nbsp;操作会中断dml操作<br /></span><span style="color: #000000; ">--</span><span style="color: #000000; ">普通触发器是dml操作事务的一部分<br /></span><span style="color: #000000; ">--</span><span style="color: #000000; ">instead&nbsp;of触发器会结束当前dml操作<br /></span><span style="color: #000000; ">--</span><span style="color: #000000; ">dml操作请求（即dml操作结束）－－－》instead&nbsp;of触发器工作，&nbsp;set&nbsp;serveroutput&nbsp;on;insert&nbsp;into&nbsp;v_teb2&nbsp;values(</span><span style="color: #000000; ">1</span><span style="color: #000000; ">,</span><span style="color: #000000; ">'</span><span style="color: #000000; ">a</span><span style="color: #000000; ">'</span><span style="color: #000000; ">);<br />create&nbsp;or&nbsp;replace&nbsp;trigger&nbsp;tr_teb2<br />&nbsp;&nbsp;instead&nbsp;of&nbsp;insert&nbsp;on&nbsp;v_teb2&nbsp;&nbsp;<br />&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;each&nbsp;row<br />declare<br />&nbsp;&nbsp;</span><span style="color: #000000; ">--</span><span style="color: #000000; ">&nbsp;local&nbsp;variables&nbsp;here<br />begin<br />&nbsp;&nbsp;dbms_output.put_line(</span><span style="color: #000000; ">'</span><span style="color: #000000; ">instead&nbsp;of&nbsp;trigger&nbsp;working</span><span style="color: #000000; ">'</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;insert&nbsp;into&nbsp;teb2&nbsp;values(sq_teb.nextval,</span><span style="color: #000000; ">'</span><span style="color: #000000; ">trigger&nbsp;working</span><span style="color: #000000; ">'</span><span style="color: #000000; ">);<br />end&nbsp;tr_teb2;<br /><br /></span><span style="color: #000000; ">----</span><span style="color: #000000; ">约束表，触发表，触发器工作的表，example：部门表就是员工表的约束表<br /></span><span style="color: #000000; ">----</span><span style="color: #000000; ">变异表，就是dml操作过程的触发表<br /></span><span style="color: #000000; ">----</span><span style="color: #000000; ">旧数据－－脏数据－－》新数据<br /></span><span style="color: #000000; ">---</span><span style="color: #0000FF; ">long</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">double</span><span style="color: #000000; ">&nbsp;8b&nbsp;&nbsp;</span><span style="color: #000000; ">1101</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0100</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">-----</span><span style="color: #000000; ">1021</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">2121</span><span style="color: #000000; ">-----&gt;</span><span style="color: #000000; ">1200</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">1323</span><span style="color: #000000; "><br /></span><span style="color: #000000; ">----</span><span style="color: #000000; ">DML开始操作－－》行级触发器工作－－－》end结束操作。<br /></span><span style="color: #000000; ">----</span><span style="color: #000000; ">每个部门最多6人，6人后，不允许往这个部门添加员工，和修改其他部门为这个部门员工<br /></span><span style="color: #000000; ">----</span><span style="color: #000000; ">行级触发器不能读取变异表，<br /></span><span style="color: #000000; ">---</span><span style="color: #000000; ">触发表：对于触发器而言，就是触发器为之定义的表<br /></span><span style="color: #000000; ">----</span><span style="color: #000000; ">变异表：就是当前dml操作所影响的表（经常来说触发表就是变异表）<br />create&nbsp;or&nbsp;replace&nbsp;trigger&nbsp;tri_emp<br />&nbsp;&nbsp;before&nbsp;insert&nbsp;or&nbsp;update&nbsp;on&nbsp;emp3&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;each&nbsp;row<br />declare<br />&nbsp;&nbsp;</span><span style="color: #000000; ">--</span><span style="color: #000000; ">&nbsp;local&nbsp;variables&nbsp;hereer<br />&nbsp;&nbsp;v_count&nbsp;number;<br />begin<br />&nbsp;&nbsp;select&nbsp;count(</span><span style="color: #000000; ">*</span><span style="color: #000000; ">)&nbsp;into&nbsp;v_count&nbsp;from&nbsp;emp3(本表：(即变异表行级触发器不允许读取))&nbsp;where&nbsp;emp3.deptno&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;:</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">.deptno;<br />&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;v_count&nbsp;</span><span style="color: #000000; ">&gt;=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">6</span><span style="color: #000000; ">&nbsp;then<br />&nbsp;&nbsp;&nbsp;&nbsp;raise_application_error(</span><span style="color: #000000; ">-</span><span style="color: #000000; ">20001</span><span style="color: #000000; ">,</span><span style="color: #000000; ">'</span><span style="color: #000000; ">every&nbsp;dept&nbsp;can&nbsp;not&nbsp;over&nbsp;6&nbsp;peaple</span><span style="color: #000000; ">'</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;end&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">;<br />end&nbsp;tri;<br /><br /></span><span style="color: #000000; ">---</span><span style="color: #000000; ">矛盾；行级触发器不允许查询变异表，而表级触发器不允许使用：</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">。<br /></span><span style="color: #000000; ">----</span><span style="color: #000000; ">解决方案：<br /></span><span style="color: #000000; ">--</span><span style="color: #000000; ">1</span><span style="color: #000000; ">，建立包，定义一个共同变量，用来存放部门编号变量<br />create&nbsp;or&nbsp;replace&nbsp;</span><span style="color: #0000FF; ">package</span><span style="color: #000000; ">&nbsp;pak_deptno&nbsp;is<br />&nbsp;&nbsp;v_deptno&nbsp;number;<br />end&nbsp;pak_deptno;<br /></span><span style="color: #000000; ">--</span><span style="color: #000000; ">2</span><span style="color: #000000; ">，建立一个行级前或者后触发器，仅仅将操作行的部门编号放入包中。<br />create&nbsp;or&nbsp;replace&nbsp;trigger&nbsp;tri_row_emp3<br />&nbsp;&nbsp;after&nbsp;insert&nbsp;or&nbsp;update&nbsp;on&nbsp;emp3&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;each&nbsp;row<br />declare<br />&nbsp;<br />begin<br />&nbsp;&nbsp;pak_deptno.v_deptno:</span><span style="color: #000000; ">=</span><span style="color: #000000; ">:</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">.deptno;<br />end&nbsp;tri_row_emp3;<br /></span><span style="color: #000000; ">--</span><span style="color: #000000; ">3</span><span style="color: #000000; ">，建立一个表级后触发器中查询变异表，来确定是否可以添加.<br />create&nbsp;or&nbsp;replace&nbsp;trigger&nbsp;tri_table_emp<br />&nbsp;&nbsp;after&nbsp;insert&nbsp;or&nbsp;update&nbsp;on&nbsp;emp3&nbsp;&nbsp;&nbsp;<br />declare<br />&nbsp;&nbsp;</span><span style="color: #000000; ">--</span><span style="color: #000000; ">&nbsp;local&nbsp;variables&nbsp;hereer<br />&nbsp;&nbsp;v_count&nbsp;number;<br />begin<br />&nbsp;&nbsp;select&nbsp;count(</span><span style="color: #000000; ">*</span><span style="color: #000000; ">)&nbsp;into&nbsp;v_count&nbsp;from&nbsp;emp3&nbsp;where&nbsp;emp3.deptno&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;pak_deptno.v_deptno;<br />&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;v_count&nbsp;</span><span style="color: #000000; ">&gt;=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">6</span><span style="color: #000000; ">&nbsp;then<br />&nbsp;&nbsp;&nbsp;&nbsp;raise_application_error(</span><span style="color: #000000; ">-</span><span style="color: #000000; ">20001</span><span style="color: #000000; ">,</span><span style="color: #000000; ">'</span><span style="color: #000000; ">every&nbsp;dept&nbsp;can&nbsp;not&nbsp;over&nbsp;6&nbsp;peaple</span><span style="color: #000000; ">'</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;end&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">;<br />end&nbsp;tri_table_emp;<br /><br /><br /></span><span style="color: #000000; ">----</span><span style="color: #000000; ">如果是一条insert语句，仅仅插入一行记录，则oracle中行级触发器允许查询变异表..<br /></span><span style="color: #000000; ">---</span><span style="color: #000000; ">insert&nbsp;into&nbsp;emp3&nbsp;select&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">&nbsp;from&nbsp;emp&nbsp;where&nbsp;deptno</span><span style="color: #000000; ">=</span><span style="color: #000000; ">10</span><span style="color: #000000; ">;</span></div><img src ="http://www.blogjava.net/youngturk/aggbug/379880.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youngturk/" target="_blank">youngturk</a> 2012-06-03 23:06 <a href="http://www.blogjava.net/youngturk/archive/2012/06/03/379880.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>增加表列项 alter table</title><link>http://www.blogjava.net/youngturk/archive/2012/05/28/379355.html</link><dc:creator>youngturk</dc:creator><author>youngturk</author><pubDate>Mon, 28 May 2012 05:54:00 GMT</pubDate><guid>http://www.blogjava.net/youngturk/archive/2012/05/28/379355.html</guid><wfw:comment>http://www.blogjava.net/youngturk/comments/379355.html</wfw:comment><comments>http://www.blogjava.net/youngturk/archive/2012/05/28/379355.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youngturk/comments/commentRss/379355.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youngturk/services/trackbacks/379355.html</trackback:ping><description><![CDATA[<span style="color: red;">alter table</span> test <span style="color: red;">add</span> ( test_column varchar2(20) ) <br /><span style="color: red;">comment on column</span> test_column <span style="color: red;">is</span> 'test'<img src ="http://www.blogjava.net/youngturk/aggbug/379355.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youngturk/" target="_blank">youngturk</a> 2012-05-28 13:54 <a href="http://www.blogjava.net/youngturk/archive/2012/05/28/379355.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>comment on 作用</title><link>http://www.blogjava.net/youngturk/archive/2012/05/10/377757.html</link><dc:creator>youngturk</dc:creator><author>youngturk</author><pubDate>Thu, 10 May 2012 01:28:00 GMT</pubDate><guid>http://www.blogjava.net/youngturk/archive/2012/05/10/377757.html</guid><wfw:comment>http://www.blogjava.net/youngturk/comments/377757.html</wfw:comment><comments>http://www.blogjava.net/youngturk/archive/2012/05/10/377757.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youngturk/comments/commentRss/377757.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youngturk/services/trackbacks/377757.html</trackback:ping><description><![CDATA[comment on table&nbsp; table_name is '.........';对表进行说明<br />comment on column table.columnName is '........'; 对表中列进行说明<br /><img src ="http://www.blogjava.net/youngturk/aggbug/377757.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youngturk/" target="_blank">youngturk</a> 2012-05-10 09:28 <a href="http://www.blogjava.net/youngturk/archive/2012/05/10/377757.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle9i获得 database.url=jdbc:oracle:thin@</title><link>http://www.blogjava.net/youngturk/archive/2012/05/09/377714.html</link><dc:creator>youngturk</dc:creator><author>youngturk</author><pubDate>Wed, 09 May 2012 08:47:00 GMT</pubDate><guid>http://www.blogjava.net/youngturk/archive/2012/05/09/377714.html</guid><wfw:comment>http://www.blogjava.net/youngturk/comments/377714.html</wfw:comment><comments>http://www.blogjava.net/youngturk/archive/2012/05/09/377714.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youngturk/comments/commentRss/377714.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youngturk/services/trackbacks/377714.html</trackback:ping><description><![CDATA[<div>database.url获得:<br />从oracle9i中找到获得路径：oracle\ora90\network\ADMIN下面找到tnsnames.ora文件<br />里面的database名称即是 <br />TJGWL = <br />（ description = <br />&nbsp;&nbsp;&nbsp;&nbsp; (address_list = (<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;address = (protocol = tcp)(host = localhost)(port = 1521))<br />)<br />&nbsp;&nbsp;&nbsp;&nbsp;(connect_data =&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(service_name = TJGWL))<br />）</div><img src ="http://www.blogjava.net/youngturk/aggbug/377714.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youngturk/" target="_blank">youngturk</a> 2012-05-09 16:47 <a href="http://www.blogjava.net/youngturk/archive/2012/05/09/377714.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>tomcat 发布部署</title><link>http://www.blogjava.net/youngturk/archive/2012/05/09/377704.html</link><dc:creator>youngturk</dc:creator><author>youngturk</author><pubDate>Wed, 09 May 2012 07:25:00 GMT</pubDate><guid>http://www.blogjava.net/youngturk/archive/2012/05/09/377704.html</guid><wfw:comment>http://www.blogjava.net/youngturk/comments/377704.html</wfw:comment><comments>http://www.blogjava.net/youngturk/archive/2012/05/09/377704.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youngturk/comments/commentRss/377704.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youngturk/services/trackbacks/377704.html</trackback:ping><description><![CDATA[<div>在apache下conf目录下找到server.xml文件进行相应的设置修改<br /><br />修改发布端口：<br />&lt;<span style="background-color: yellow">connector </span><span style="color: red">port="8080"</span> maxHttpHeaderSize="8192"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; maxThreads="150" minSpareThreads="25" maxSpareThreads="75"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; enableLookups="false" redirectPort="8443" acceptCount="100"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; connectionTimeout="20000" disableUploadTimeout="true" /&gt;<br /><br />修改发布上下文:<br />&lt;<span style="color: red">context </span><span style="color: red">pass="/sp"</span> reloadable="true" <span style="color: red">docBace</span>="D:\java\workspaces\helios\newshpt"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: red">workDir</span>="="D:\java\workspaces\helios\newsh\work" /&gt;<br /><span style="color: red">属性：</span><strong style="color: red">path</strong><span style="color: red">、含义</span>：相对于Web应用程序应映射Web服务器根目录("/")的URI路径。把该属性设置为空字符出("")表示该Web应用程序应为根Web应用程序。 
<p>&nbsp;</p>
<p>&nbsp;&nbsp; 除非Context元素处于<a href="http://www.gootry.com/wangzhuan/article/101201162653/447">server.xml</a>文件中否则不能设置该属性、默认值：无，除了在用context XML片段文件部署Context的时候，在这种情况下，path被设置为该文件的名称，但不含.xml扩展名。</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp; 通过复制WAR文件到Web应用程序的目录中进行部署时也是这样处理，path被设置为WAR文件名，但不含.war扩展名<br /><span style="color: red">属性：</span><strong style="color: red">reloadable</strong><span style="color: red">、</span>含义：该标志启用或禁用对该网页内容重新加载Web应用程序类、默认值：false<br /><span style="color: red">属性：</span><strong style="color: red">workDir</strong>、含义：Web应用程序的临时文件目录的路径名。如果不设置该属性，则表示继承Host的workDir、默认值：None</p></div><img src ="http://www.blogjava.net/youngturk/aggbug/377704.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youngturk/" target="_blank">youngturk</a> 2012-05-09 15:25 <a href="http://www.blogjava.net/youngturk/archive/2012/05/09/377704.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle 创建视图</title><link>http://www.blogjava.net/youngturk/archive/2012/05/04/377396.html</link><dc:creator>youngturk</dc:creator><author>youngturk</author><pubDate>Fri, 04 May 2012 08:47:00 GMT</pubDate><guid>http://www.blogjava.net/youngturk/archive/2012/05/04/377396.html</guid><wfw:comment>http://www.blogjava.net/youngturk/comments/377396.html</wfw:comment><comments>http://www.blogjava.net/youngturk/archive/2012/05/04/377396.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youngturk/comments/commentRss/377396.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youngturk/services/trackbacks/377396.html</trackback:ping><description><![CDATA[<div>create or replace VIEW my_viewTable<br />(firstColumn ,secondColumn) as select firstC,secondC from myTable<br />with check option <br />with read only </div><img src ="http://www.blogjava.net/youngturk/aggbug/377396.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youngturk/" target="_blank">youngturk</a> 2012-05-04 16:47 <a href="http://www.blogjava.net/youngturk/archive/2012/05/04/377396.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle 视图</title><link>http://www.blogjava.net/youngturk/archive/2012/05/03/377314.html</link><dc:creator>youngturk</dc:creator><author>youngturk</author><pubDate>Thu, 03 May 2012 12:50:00 GMT</pubDate><guid>http://www.blogjava.net/youngturk/archive/2012/05/03/377314.html</guid><wfw:comment>http://www.blogjava.net/youngturk/comments/377314.html</wfw:comment><comments>http://www.blogjava.net/youngturk/archive/2012/05/03/377314.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youngturk/comments/commentRss/377314.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youngturk/services/trackbacks/377314.html</trackback:ping><description><![CDATA[视图的作用 ：<br />用户可以通过视图以不同形式来显示基表中的数据，视图的强大之处在于它能够根据不同用户的需要来对基表中的数据进行整理。<br />
<p>可更新的连接视图 </p>
<p>连接视图是指在一个视图的定义查询的from字句中引用了多个表或视图。而可更新的连接视图是指能够执行 UPDATE，INSERT，和 DELETE 操作的连接视图。为了保证视图是可更新的，其定义中不能包含以下语法结构： </p>
<p>集合操作符 <br />DISTINCT 操作符 <br />聚合函数或分析型函数 <br />GROUP BY，ORDER BY，CONNECT BY，或 START WITH 字句 <br />在 SELECT 之后的列表中使用集合表达式 <br />在 SELECT 之后的列表中使用子查询 <br />连接（join）（但是有例外情况） <br />对于不可更新的视图，可以利用 INSTEAD OF 触发器对其数据进行修改。</p><img src ="http://www.blogjava.net/youngturk/aggbug/377314.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youngturk/" target="_blank">youngturk</a> 2012-05-03 20:50 <a href="http://www.blogjava.net/youngturk/archive/2012/05/03/377314.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>创建用户</title><link>http://www.blogjava.net/youngturk/archive/2012/04/27/376905.html</link><dc:creator>youngturk</dc:creator><author>youngturk</author><pubDate>Fri, 27 Apr 2012 15:24:00 GMT</pubDate><guid>http://www.blogjava.net/youngturk/archive/2012/04/27/376905.html</guid><wfw:comment>http://www.blogjava.net/youngturk/comments/376905.html</wfw:comment><comments>http://www.blogjava.net/youngturk/archive/2012/04/27/376905.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youngturk/comments/commentRss/376905.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youngturk/services/trackbacks/376905.html</trackback:ping><description><![CDATA[创建表空间<br />create <span style="color: red">tablespace</span> test<br /><span style="color: red">datafile</span> 'd:\ORACLE90\oradata\test.dbf' size 50M<br />default storage (<span style="color: red">initial</span> 500k //<br />next 500k<br />min<span style="color: red">extent</span>s 1 //存储区<br />max<span style="color: red">extent</span>s unlimited<br />pctincrease 0 );<br /><br />创建&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: red">用户名</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: red">密码</span><br />create user <span style="color: red">sklee </span>identified by <span style="color: red">sklee </span>default tablespace test;<br /><br />grant resource , connect to sklee; //给用户源文件 ， 连接的权限<br /><br />
<h4>权限相关</h4>
<blockquote style="margin-right: 0px" dir="ltr">
<div><code>
<div><font color="#0000ff"><strong>grant</strong></font> dba <font color="#0000ff"><strong>to</strong></font> dding;<font color="#333399">-</font><font color="#333399">-</font>授予DBA权限&nbsp;<br /><font color="#0000ff"><strong>grant</strong></font> unlimited tablespace <font color="#0000ff"><strong>to</strong></font> dding;<font color="#333399">-</font><font color="#333399">-</font>授予不限制的表空间&nbsp;<br /><font color="#0000ff"><strong>grant</strong></font> <font color="#0000ff"><strong>select</strong></font> <font color="#0000ff"><strong>any</strong></font> <font color="#0000ff"><strong>table</strong></font> <font color="#0000ff"><strong>to</strong></font> dding;<font color="#333399">-</font><font color="#333399">-</font>授予查询任何表&nbsp;<br /><font color="#0000ff"><strong>grant</strong></font> <font color="#0000ff"><strong>select</strong></font> <font color="#0000ff"><strong>any</strong></font> <font color="#0000ff"><strong>dictionary</strong></font> <font color="#0000ff"><strong>to</strong></font> dding;</div></code></div></blockquote><br /><br /><img src ="http://www.blogjava.net/youngturk/aggbug/376905.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youngturk/" target="_blank">youngturk</a> 2012-04-27 23:24 <a href="http://www.blogjava.net/youngturk/archive/2012/04/27/376905.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle安装 注册用户名 表空间</title><link>http://www.blogjava.net/youngturk/archive/2012/04/27/376901.html</link><dc:creator>youngturk</dc:creator><author>youngturk</author><pubDate>Fri, 27 Apr 2012 14:55:00 GMT</pubDate><guid>http://www.blogjava.net/youngturk/archive/2012/04/27/376901.html</guid><wfw:comment>http://www.blogjava.net/youngturk/comments/376901.html</wfw:comment><comments>http://www.blogjava.net/youngturk/archive/2012/04/27/376901.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youngturk/comments/commentRss/376901.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youngturk/services/trackbacks/376901.html</trackback:ping><description><![CDATA[<br /><br />sp plus注册时候<br />用户名：SYSTEM<br />口令：manager<br />主机字符串：TJGWJ（即创建的数据库名）<br /><br />注册用户名 表空间<br />表空间是数据库的逻辑划分，一个表空间只能属于一个数据库。所有的数据库对象都存放在指定的表空间中。但主要存放的是表， 所以称作表空间。<br /><br />在数据库设计的时候，我们建议数据库管理员按如下顺序设置表空间。 
<div class="spctrl"></div>　　<strong>第一步：建立表空间。</strong> 
<div class="spctrl"></div>　　在设计数据库的时候，首先需要设计表空间。我们需要考虑，是只建立一个表空间呢，还是需要建立多个表空间，以及各个表空间的存放位置、磁盘限额等等。 
<div class="spctrl"></div>　　到底设计多少个表空间合理，没有统一的说法，这主要根据企业的实际需求去判断。如企业需要对用户进行磁盘限额控制的，则就需要根据用户的数量来设置表空间。当企业的数据容量比较大，而其又对数据库的性能有比较高的要求时，就需要根据不同类型的数据，设置不同的表空间，以提高其输入输出性能。 
<div class="spctrl"></div>　　<strong>第二步：建立用户，并制定用户的默认表空间。</strong> 
<div class="spctrl"></div>　　在建立用户的时候，我们建议数据库管理员要指定用户的默认表空间。因为我们在利用CREATE语句创建数据库对象，如数据库表的时候，其默认是存储在数据库的当前默认空间。若不指定用户默认表空间的话，则用户每次创建数据库对象的时候，都要指定表空间，显然，这并不是很合理。 
<div class="spctrl"></div>　　另外要注意，不同的表空间有不同的权限控制。用户对于表空间A具有完全控制权限，可能对于表空间B就只有查询权限，甚至连连接的权限的都没有。所以，合理为用户配置表空间的访问权限，也是提高数据库安全性的一个方法。<img src ="http://www.blogjava.net/youngturk/aggbug/376901.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youngturk/" target="_blank">youngturk</a> 2012-04-27 22:55 <a href="http://www.blogjava.net/youngturk/archive/2012/04/27/376901.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle 左右连接 外连接</title><link>http://www.blogjava.net/youngturk/archive/2012/04/25/376596.html</link><dc:creator>youngturk</dc:creator><author>youngturk</author><pubDate>Wed, 25 Apr 2012 07:49:00 GMT</pubDate><guid>http://www.blogjava.net/youngturk/archive/2012/04/25/376596.html</guid><wfw:comment>http://www.blogjava.net/youngturk/comments/376596.html</wfw:comment><comments>http://www.blogjava.net/youngturk/archive/2012/04/25/376596.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/youngturk/comments/commentRss/376596.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youngturk/services/trackbacks/376596.html</trackback:ping><description><![CDATA[<span style="color: red">1</span>左连接 <span style="color: red">slect</span> a.a,b.b<span style="color: red">&nbsp;from </span>table a <span style="color: red">left join </span>table b&nbsp; <span style="color: red">on</span> a.c=b.d <span style="color: red">where</span> a.m='123'<br />&nbsp; 显示左边(table a <span style="color: red">left </span>)全部的和右边与左边相同的<br />&nbsp; 符号表示：b.d(+) = a.c<br /><br /><span style="color: red">2右</span>连接 <span style="color: red">slect</span> a.a,b.b<span style="color: red">&nbsp;from </span>table b <span style="color: red">right join </span>table b&nbsp; <span style="color: red">on</span> a.c=b.d <span style="color: red">where</span> a.m='123'<br />&nbsp; 显示右边(table b <span style="color: red">right </span>)全部的和左边与右边相同的<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b.d = a.c(+)<br /><br />3 内连接&nbsp; 普通的连接 <span style="color: red">slect </span>a.a , b.b <span style="color: red">from</span> table a , table b <span style="color: red">where</span> a.a = b. b<br /><br />4 全外连接 两个表全部显示&nbsp;<span style="color: red">slect </span>a.a , b.b <span style="color: red">from</span> table a ,<span style="color: red">outer join&nbsp;</span>table b<span style="color: red"> on</span> a.a = b.b&nbsp;<br />&nbsp; 显示把所有的左连接 和 右连接的并集<br />&nbsp;&nbsp;<span style="color: red">(+)不能用于实现完全外连接<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/youngturk/24429/oracle左右连接.jpg" width="627" height="635" /></span><br /><img src ="http://www.blogjava.net/youngturk/aggbug/376596.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youngturk/" target="_blank">youngturk</a> 2012-04-25 15:49 <a href="http://www.blogjava.net/youngturk/archive/2012/04/25/376596.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>