﻿<?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-Owen-随笔分类-DataBase</title><link>http://www.blogjava.net/absolutedo/category/36433.html</link><description>宝剑锋从磨砺出,梅花香自苦寒来。</description><language>zh-cn</language><lastBuildDate>Sat, 27 Nov 2010 18:24:02 GMT</lastBuildDate><pubDate>Sat, 27 Nov 2010 18:24:02 GMT</pubDate><ttl>60</ttl><item><title>ORA-00054:resource busy and acquire with nowait specified(资源正忙，需指定nowait)解决方法</title><link>http://www.blogjava.net/absolutedo/archive/2010/11/27/339196.html</link><dc:creator>iowen</dc:creator><author>iowen</author><pubDate>Sat, 27 Nov 2010 06:55:00 GMT</pubDate><guid>http://www.blogjava.net/absolutedo/archive/2010/11/27/339196.html</guid><wfw:comment>http://www.blogjava.net/absolutedo/comments/339196.html</wfw:comment><comments>http://www.blogjava.net/absolutedo/archive/2010/11/27/339196.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/absolutedo/comments/commentRss/339196.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/absolutedo/services/trackbacks/339196.html</trackback:ping><description><![CDATA[通过存储过程向数据库一下子插入了一千万(10000000)条记录，结果等了很长时间，PL/SQL都没有响应，我又瞎折腾了下，结果执行了好几次，导致数据库假死了，我只有删除当前的会话，从网上找到相关的脚本代码。<br />
<br />
<br />
1&gt; 通过此语句查询正在锁定的SESSION_ID: <br />
<br />
<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"><span style="color: #008080">1</span><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #0000ff">SELECT</span><span style="color: #000000">&nbsp;&nbsp;SESSION_ID&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">FROM</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;V$LOCKED_OBJECT,USER_OBJECTS&nbsp;&nbsp;</span><span style="color: #0000ff">WHERE</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;V$LOCKED_OBJECT.</span><span style="color: #ff00ff">OBJECT_ID</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;USER_OBJECTS.</span><span style="color: #ff00ff">OBJECT_ID</span></div>
<br />
<p><br />
2&gt; 通过第一步查询到的SESSION_ID查询SERIAL#<br />
</p>
<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"><span style="color: #008080">1</span><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #0000ff">SELECT</span><span style="color: #000000">&nbsp;SERIAL#&nbsp;</span><span style="color: #0000ff">FROM</span><span style="color: #000000">&nbsp;V$SESSION&nbsp;&nbsp;</span><span style="color: #0000ff">WHERE</span><span style="color: #000000">&nbsp;SID</span><span style="color: #808080">=</span><span style="color: #ff0000">'</span><span style="color: #ff0000">12</span><span style="color: #ff0000">'</span><span style="color: #000000">(此处</span><span style="color: #ff0000">'</span><span style="color: #ff0000">12</span><span style="color: #ff0000">'</span><span style="color: #000000">为上面查询到的</span><span style="color: #ff0000">'</span><span style="color: #ff0000">SESSION_ID</span><span style="color: #ff0000">'</span><span style="color: #000000">)</span></div>
<p><br />
&nbsp;3&gt;&nbsp;根据1,2步查询到的SESSION_ID和SERIAL#执行<br />
</p>
<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"><span style="color: #008080">1</span><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #0000ff">ALTER</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;SYSTEM&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">KILL</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;SESSION&nbsp;&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #ff0000">12,154</span><span style="color: #ff0000">'</span><span style="color: #000000">(12为SESSION_ID的值,&nbsp;154为SERIAL#的值)</span></div>
<br />
4&gt; 如果利用上面的命令杀死一个进程后，进程状态被置为"killed"，但是锁定的资源很长时间没有被释放，那么还可以在os一级再杀死相应的进程(线程)，首先执行下面的语句获得当前进程(线程)的标示PID：<br />
<br />
<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"><span style="color: #008080">1</span><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #0000ff">select</span><span style="color: #000000">&nbsp;spid,&nbsp;osuser,&nbsp;s.program&nbsp;<br />
</span><span style="color: #008080">2</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">from</span><span style="color: #000000">&nbsp;v$session&nbsp;s,v$process&nbsp;p<br />
</span><span style="color: #008080">3</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">where</span><span style="color: #000000">&nbsp;s.paddr</span><span style="color: #808080">=</span><span style="color: #000000">p.addr&nbsp;</span><span style="color: #808080">and</span><span style="color: #000000">&nbsp;s.sid</span><span style="color: #808080">=</span><span style="color: #800000; font-weight: bold">12</span><span style="color: #000000">&nbsp;(12是上面的SESSION_ID)</span></div>
<br />
<p>然后在OS通过任务管理器找到对应的进程，在杀死这个进程(线程)</p>
<img src ="http://www.blogjava.net/absolutedo/aggbug/339196.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/absolutedo/" target="_blank">iowen</a> 2010-11-27 14:55 <a href="http://www.blogjava.net/absolutedo/archive/2010/11/27/339196.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>存储过程学习-批量插入10000条数据进数据库</title><link>http://www.blogjava.net/absolutedo/archive/2010/11/27/339194.html</link><dc:creator>iowen</dc:creator><author>iowen</author><pubDate>Sat, 27 Nov 2010 06:41:00 GMT</pubDate><guid>http://www.blogjava.net/absolutedo/archive/2010/11/27/339194.html</guid><wfw:comment>http://www.blogjava.net/absolutedo/comments/339194.html</wfw:comment><comments>http://www.blogjava.net/absolutedo/archive/2010/11/27/339194.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/absolutedo/comments/commentRss/339194.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/absolutedo/services/trackbacks/339194.html</trackback:ping><description><![CDATA[最近在学习存储过程，以前在项目中没有怎么接触过！<br />
<br />
我通过存储过程像数据库中批量添加一千万(100000000)条记录,结果PL/SQL很长时间没有反映，结果不得已通过脚本杀掉当前进程，我重新通过存储过程插入10000条数据。<br />
<br />
建表脚本：<br />
<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"><span style="color: #008080">&nbsp;1</span><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #008080">--</span><span style="color: #008080">删除用户表</span><span style="color: #008080"><br />
</span><span style="color: #008080">&nbsp;2</span><span style="color: #008080"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">DROP</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">TABLE</span><span style="color: #000000">&nbsp;T_PORTAL_USER;<br />
</span><span style="color: #008080">&nbsp;3</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
</span><span style="color: #008080">&nbsp;4</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #008080">--</span><span style="color: #008080">创建用户表</span><span style="color: #008080"><br />
</span><span style="color: #008080">&nbsp;5</span><span style="color: #008080"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">CREATE</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">TABLE</span><span style="color: #000000">&nbsp;T_PORTAL_USER<br />
</span><span style="color: #008080">&nbsp;6</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />(<br />
</span><span style="color: #008080">&nbsp;7</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;id&nbsp;</span><span style="color: #000000; font-weight: bold">NUMBER</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">PRIMARY</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">KEY</span><span style="color: #000000">,&nbsp;</span><span style="color: #008080">--</span><span style="color: #008080">&nbsp;用户表示</span><span style="color: #008080"><br />
</span><span style="color: #008080">&nbsp;8</span><span style="color: #008080"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;username&nbsp;</span><span style="color: #000000; font-weight: bold">VARCHAR2</span><span style="color: #000000">(</span><span style="color: #800000; font-weight: bold">24</span><span style="color: #000000">)&nbsp;</span><span style="color: #808080">NOT</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">NULL</span><span style="color: #000000">,</span><span style="color: #008080">--</span><span style="color: #008080">&nbsp;用户名</span><span style="color: #008080"><br />
</span><span style="color: #008080">&nbsp;9</span><span style="color: #008080"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;password&nbsp;</span><span style="color: #000000; font-weight: bold">VARCHAR2</span><span style="color: #000000">(</span><span style="color: #800000; font-weight: bold">24</span><span style="color: #000000">)&nbsp;</span><span style="color: #808080">NOT</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">NULL</span><span style="color: #000000">,</span><span style="color: #008080">--</span><span style="color: #008080">&nbsp;密码</span><span style="color: #008080"><br />
</span><span style="color: #008080">10</span><span style="color: #008080"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;realname&nbsp;</span><span style="color: #000000; font-weight: bold">VARCHAR2</span><span style="color: #000000">(</span><span style="color: #800000; font-weight: bold">24</span><span style="color: #000000">)&nbsp;</span><span style="color: #808080">NOT</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">NULL</span><span style="color: #000000">,</span><span style="color: #008080">--</span><span style="color: #008080">&nbsp;真实姓名</span><span style="color: #008080"><br />
</span><span style="color: #008080">11</span><span style="color: #008080"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;sex&nbsp;</span><span style="color: #000000; font-weight: bold">VARCHAR2</span><span style="color: #000000">(</span><span style="color: #800000; font-weight: bold">2</span><span style="color: #000000">)&nbsp;</span><span style="color: #0000ff">DEFAULT</span><span style="color: #000000">&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #ff0000">0</span><span style="color: #ff0000">'</span><span style="color: #000000">,</span><span style="color: #008080">--</span><span style="color: #008080">&nbsp;性别&nbsp;"0":Male&nbsp;"1":Female</span><span style="color: #008080"><br />
</span><span style="color: #008080">12</span><span style="color: #008080"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;registerDate&nbsp;</span><span style="color: #000000; font-weight: bold">TIMESTAMP</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">NOT</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">NULL</span><span style="color: #000000">,</span><span style="color: #008080">--</span><span style="color: #008080">&nbsp;注册日期</span><span style="color: #008080"><br />
</span><span style="color: #008080">13</span><span style="color: #008080"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;state&nbsp;</span><span style="color: #000000; font-weight: bold">VARCHAR2</span><span style="color: #000000">(</span><span style="color: #800000; font-weight: bold">2</span><span style="color: #000000">)&nbsp;</span><span style="color: #808080">NOT</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">NULL</span><span style="color: #000000">&nbsp;</span><span style="color: #008080">--</span><span style="color: #008080">&nbsp;账号状态&nbsp;"0":启用&nbsp;&nbsp;"1":注销</span><span style="color: #008080"><br />
</span><span style="color: #008080">14</span><span style="color: #008080"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">)<br />
</span><span style="color: #008080">15</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
</span><span style="color: #008080">16</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #008080">--</span><span style="color: #008080">删除用户表序列</span><span style="color: #008080"><br />
</span><span style="color: #008080">17</span><span style="color: #008080"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">DROP</span><span style="color: #000000">&nbsp;SEQUENCE&nbsp;SEQ_T_PORTAL_USER;<br />
</span><span style="color: #008080">18</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
</span><span style="color: #008080">19</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #008080">--</span><span style="color: #008080">创建用户表序列</span><span style="color: #008080"><br />
</span><span style="color: #008080">20</span><span style="color: #008080"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">CREATE</span><span style="color: #000000">&nbsp;SEQUENCE&nbsp;SEQ_T_PORTAL_USER<br />
</span><span style="color: #008080">21</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />START&nbsp;</span><span style="color: #0000ff">WITH</span><span style="color: #000000">&nbsp;</span><span style="color: #800000; font-weight: bold">1</span><span style="color: #000000"><br />
</span><span style="color: #008080">22</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />INCREMENT&nbsp;</span><span style="color: #0000ff">BY</span><span style="color: #000000">&nbsp;</span><span style="color: #800000; font-weight: bold">1</span><span style="color: #000000"><br />
</span><span style="color: #008080">23</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />NOMAXVALUE<br />
</span><span style="color: #008080">24</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />CACHE&nbsp;</span><span style="color: #800000; font-weight: bold">20</span></div>
<br />
<br />
-- 批量新增一万条用户<br />
<br />
<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"><span style="color: #008080">&nbsp;1</span><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #008080">--</span><span style="color: #008080">&nbsp;批量新增一万条用户</span><span style="color: #008080"><br />
</span><span style="color: #008080">&nbsp;2</span><span style="color: #008080"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">CREATE</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">OR</span><span style="color: #000000">&nbsp;</span><span style="color: #ff00ff">REPLACE</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">PROCEDURE</span><span style="color: #000000">&nbsp;PROC_USER_CREATE_BAT<br />
</span><span style="color: #008080">&nbsp;3</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">AS</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;4</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;startTime&nbsp;</span><span style="color: #000000; font-weight: bold">VARCHAR2</span><span style="color: #000000">(</span><span style="color: #800000; font-weight: bold">32</span><span style="color: #000000">);</span><span style="color: #008080">--</span><span style="color: #008080">开始时间</span><span style="color: #008080"><br />
</span><span style="color: #008080">&nbsp;5</span><span style="color: #008080"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;endTime&nbsp;</span><span style="color: #000000; font-weight: bold">VARCHAR2</span><span style="color: #000000">(</span><span style="color: #800000; font-weight: bold">32</span><span style="color: #000000">);</span><span style="color: #008080">--</span><span style="color: #008080">结束时间</span><span style="color: #008080"><br />
</span><span style="color: #008080">&nbsp;6</span><span style="color: #008080"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">BEGIN</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;7</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">SELECT</span><span style="color: #000000">&nbsp;TO_CHAR(SYSDATE,</span><span style="color: #ff0000">'</span><span style="color: #ff0000">yyyy-mm-dd&nbsp;hh24:mi:ss:ff</span><span style="color: #ff0000">'</span><span style="color: #000000">)&nbsp;</span><span style="color: #0000ff">INTO</span><span style="color: #000000">&nbsp;startTime&nbsp;</span><span style="color: #0000ff">FROM</span><span style="color: #000000">&nbsp;DUAL;<br />
</span><span style="color: #008080">&nbsp;8</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;DBMS_OUTPUT.PUT_LINE(</span><span style="color: #ff0000">'</span><span style="color: #ff0000">Start&nbsp;Time:&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #808080">||</span><span style="color: #000000">startTime);<br />
</span><span style="color: #008080">&nbsp;9</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">FOR</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #808080">in</span><span style="color: #000000">&nbsp;</span><span style="color: #800000; font-weight: bold">1</span><span style="color: #000000">..</span><span style="color: #800000; font-weight: bold">10000</span><span style="color: #000000">&nbsp;LOOP<br />
</span><span style="color: #008080">10</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">INSERT</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">INTO</span><span style="color: #000000">&nbsp;T_PORTAL_USER&nbsp;</span><span style="color: #0000ff">VALUES</span><span style="color: #000000">(SEQ_T_PORTAL_USER.NEXTVAL,</span><span style="color: #ff0000">'</span><span style="color: #ff0000">owen</span><span style="color: #ff0000">'</span><span style="color: #808080">||</span><span style="color: #000000">i,</span><span style="color: #ff0000">'</span><span style="color: #ff0000">123456</span><span style="color: #ff0000">'</span><span style="color: #000000">,</span><span style="color: #ff0000">'</span><span style="color: #ff0000">gekunjin</span><span style="color: #ff0000">'</span><span style="color: #808080">||</span><span style="color: #000000">i,</span><span style="color: #ff0000">'</span><span style="color: #ff0000">0</span><span style="color: #ff0000">'</span><span style="color: #000000">,sysdate,</span><span style="color: #ff0000">'</span><span style="color: #ff0000">0</span><span style="color: #ff0000">'</span><span style="color: #000000">);<br />
</span><span style="color: #008080">11</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">END</span><span style="color: #000000">&nbsp;LOOP;<br />
</span><span style="color: #008080">12</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">SELECT</span><span style="color: #000000">&nbsp;TO_CHAR(SYSDATE,</span><span style="color: #ff0000">'</span><span style="color: #ff0000">yyyy-mm-dd&nbsp;hh24:mi:ss:ff</span><span style="color: #ff0000">'</span><span style="color: #000000">)&nbsp;</span><span style="color: #0000ff">INTO</span><span style="color: #000000">&nbsp;endTime&nbsp;</span><span style="color: #0000ff">FROM</span><span style="color: #000000">&nbsp;DUAL;<br />
</span><span style="color: #008080">13</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;DBMS_OUTPUT.PUT_LINE(</span><span style="color: #ff0000">'</span><span style="color: #ff0000">End&nbsp;Time:&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #808080">||</span><span style="color: #000000">endTime);<br />
</span><span style="color: #008080">14</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">END</span><span style="color: #000000">&nbsp;PROC_USER_CREATE_BAT;</span></div>
<img src ="http://www.blogjava.net/absolutedo/aggbug/339194.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/absolutedo/" target="_blank">iowen</a> 2010-11-27 14:41 <a href="http://www.blogjava.net/absolutedo/archive/2010/11/27/339194.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一道SQL面试题</title><link>http://www.blogjava.net/absolutedo/archive/2009/08/17/291432.html</link><dc:creator>iowen</dc:creator><author>iowen</author><pubDate>Mon, 17 Aug 2009 02:14:00 GMT</pubDate><guid>http://www.blogjava.net/absolutedo/archive/2009/08/17/291432.html</guid><wfw:comment>http://www.blogjava.net/absolutedo/comments/291432.html</wfw:comment><comments>http://www.blogjava.net/absolutedo/archive/2009/08/17/291432.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/absolutedo/comments/commentRss/291432.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/absolutedo/services/trackbacks/291432.html</trackback:ping><description><![CDATA[有这样两个表：<br />
table_a:<br />
<br />
id&nbsp; &nbsp; &nbsp; &nbsp; name&nbsp; &nbsp; &nbsp; &nbsp; val <br />
1&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; aaa&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;30 <br />
2&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; aaa&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;40 <br />
3&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; aaa&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;50 <br />
1&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; bbb&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;35 <br />
2&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; bbb&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;45 <br />
3&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; bbb&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;55 <br />
<br />
table_b: <br />
name&nbsp; &nbsp; &nbsp; &nbsp; val1&nbsp; &nbsp; &nbsp; &nbsp; val2&nbsp; &nbsp; &nbsp; &nbsp; val3 <br />
aaa&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 30&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; 40&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;50 <br />
bbb&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 35&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; 45&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;55 <br />
<br />
请用一个SQL语句实现table_a到table_b的转化。<br />
<br />
<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #008080">&nbsp;1</span><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">create</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">table</span><span style="color: #000000">&nbsp;tb(id&nbsp;</span><span style="font-weight: bold; color: #000000">int</span><span style="color: #000000">,&nbsp;name&nbsp;</span><span style="font-weight: bold; color: #000000">varchar</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">10</span><span style="color: #000000">),&nbsp;val&nbsp;</span><span style="font-weight: bold; color: #000000">int</span><span style="color: #000000">)<br />
</span><span style="color: #008080">&nbsp;2</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">insert</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">into</span><span style="color: #000000">&nbsp;tb&nbsp;</span><span style="color: #0000ff">values</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000">&nbsp;,&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #ff0000">aaa</span><span style="color: #ff0000">'</span><span style="color: #000000">&nbsp;,&nbsp;</span><span style="font-weight: bold; color: #800000">30</span><span style="color: #000000">&nbsp;)<br />
</span><span style="color: #008080">&nbsp;3</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">insert</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">into</span><span style="color: #000000">&nbsp;tb&nbsp;</span><span style="color: #0000ff">values</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">2</span><span style="color: #000000">&nbsp;,&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #ff0000">aaa</span><span style="color: #ff0000">'</span><span style="color: #000000">&nbsp;,&nbsp;</span><span style="font-weight: bold; color: #800000">40</span><span style="color: #000000">&nbsp;)<br />
</span><span style="color: #008080">&nbsp;4</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">insert</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">into</span><span style="color: #000000">&nbsp;tb&nbsp;</span><span style="color: #0000ff">values</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">3</span><span style="color: #000000">&nbsp;,&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #ff0000">aaa</span><span style="color: #ff0000">'</span><span style="color: #000000">&nbsp;,&nbsp;</span><span style="font-weight: bold; color: #800000">50</span><span style="color: #000000">&nbsp;)<br />
</span><span style="color: #008080">&nbsp;5</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">insert</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">into</span><span style="color: #000000">&nbsp;tb&nbsp;</span><span style="color: #0000ff">values</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000">&nbsp;,&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #ff0000">bbb</span><span style="color: #ff0000">'</span><span style="color: #000000">&nbsp;,&nbsp;</span><span style="font-weight: bold; color: #800000">35</span><span style="color: #000000">&nbsp;)<br />
</span><span style="color: #008080">&nbsp;6</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">insert</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">into</span><span style="color: #000000">&nbsp;tb&nbsp;</span><span style="color: #0000ff">values</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">2</span><span style="color: #000000">&nbsp;,&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #ff0000">bbb</span><span style="color: #ff0000">'</span><span style="color: #000000">&nbsp;,&nbsp;</span><span style="font-weight: bold; color: #800000">45</span><span style="color: #000000">&nbsp;)<br />
</span><span style="color: #008080">&nbsp;7</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">insert</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">into</span><span style="color: #000000">&nbsp;tb&nbsp;</span><span style="color: #0000ff">values</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">3</span><span style="color: #000000">&nbsp;,&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #ff0000">bbb</span><span style="color: #ff0000">'</span><span style="color: #000000">&nbsp;,&nbsp;</span><span style="font-weight: bold; color: #800000">55</span><span style="color: #000000">&nbsp;)<br />
</span><span style="color: #008080">&nbsp;8</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">go</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;9</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">10</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #008080">--</span><span style="color: #008080">sql&nbsp;2000静态，指ID只有1,2,3</span><span style="color: #008080"><br />
</span><span style="color: #008080">11</span><span style="color: #008080"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">select</span><span style="color: #000000">&nbsp;name&nbsp;,&nbsp;<br />
</span><span style="color: #008080">12</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #ff00ff">sum</span><span style="color: #000000">(</span><span style="color: #ff00ff">case</span><span style="color: #000000">&nbsp;id&nbsp;</span><span style="color: #0000ff">when</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">then</span><span style="color: #000000">&nbsp;val&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #800000">0</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">end</span><span style="color: #000000">)&nbsp;</span><span style="color: #ff0000">[</span><span style="color: #ff0000">val1</span><span style="color: #ff0000">]</span><span style="color: #000000">,<br />
</span><span style="color: #008080">13</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #ff00ff">sum</span><span style="color: #000000">(</span><span style="color: #ff00ff">case</span><span style="color: #000000">&nbsp;id&nbsp;</span><span style="color: #0000ff">when</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #800000">2</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">then</span><span style="color: #000000">&nbsp;val&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #800000">0</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">end</span><span style="color: #000000">)&nbsp;</span><span style="color: #ff0000">[</span><span style="color: #ff0000">val2</span><span style="color: #ff0000">]</span><span style="color: #000000">,<br />
</span><span style="color: #008080">14</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #ff00ff">sum</span><span style="color: #000000">(</span><span style="color: #ff00ff">case</span><span style="color: #000000">&nbsp;id&nbsp;</span><span style="color: #0000ff">when</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #800000">3</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">then</span><span style="color: #000000">&nbsp;val&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #800000">0</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">end</span><span style="color: #000000">)&nbsp;</span><span style="color: #ff0000">[</span><span style="color: #ff0000">val3</span><span style="color: #ff0000">]</span><span style="color: #000000"><br />
</span><span style="color: #008080">15</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">from</span><span style="color: #000000">&nbsp;tb<br />
</span><span style="color: #008080">16</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">group</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">by</span><span style="color: #000000">&nbsp;name<br />
</span><span style="color: #008080">17</span><span style="color: #000000"><img id="Codehighlighter1_514_705_Open_Image" onclick="this.style.display='none'; Codehighlighter1_514_705_Open_Text.style.display='none'; Codehighlighter1_514_705_Closed_Image.style.display='inline'; Codehighlighter1_514_705_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_514_705_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_514_705_Closed_Text.style.display='none'; Codehighlighter1_514_705_Open_Image.style.display='inline'; Codehighlighter1_514_705_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_514_705_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">/**/</span><span id="Codehighlighter1_514_705_Open_Text"><span style="color: #008080">/*</span><span style="color: #008080"><br />
</span><span style="color: #008080">18</span><span style="color: #008080"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;val1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;val2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;val3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">19</span><span style="color: #008080"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />----------&nbsp;-----------&nbsp;-----------&nbsp;-----------&nbsp;<br />
</span><span style="color: #008080">20</span><span style="color: #008080"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />aaa&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;30&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;40&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;50<br />
</span><span style="color: #008080">21</span><span style="color: #008080"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />bbb&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;35&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;45&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;55<br />
</span><span style="color: #008080">22</span><span style="color: #008080"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">23</span><span style="color: #008080"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />（所影响的行数为&nbsp;2&nbsp;行）<br />
</span><span style="color: #008080">24</span><span style="color: #008080"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" /></span><span style="color: #008080">*/</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">25</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">26</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #008080">--</span><span style="color: #008080">sql&nbsp;2000动态，指ID不确定</span><span style="color: #008080"><br />
</span><span style="color: #008080">27</span><span style="color: #008080"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">declare</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@sql</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #000000">varchar</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">8000</span><span style="color: #000000">)<br />
</span><span style="color: #008080">28</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">set</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@sql</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #ff0000">select&nbsp;name&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #000000"><br />
</span><span style="color: #008080">29</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">select</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@sql</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@sql</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">+</span><span style="color: #000000">&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #ff0000">&nbsp;,&nbsp;sum(case&nbsp;id&nbsp;when&nbsp;</span><span style="color: #ff0000">'''</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">+</span><span style="color: #000000">&nbsp;</span><span style="color: #ff00ff">cast</span><span style="color: #000000">(id&nbsp;</span><span style="color: #0000ff">as</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #000000">varchar</span><span style="color: #000000">)&nbsp;</span><span style="color: #808080">+</span><span style="color: #000000">&nbsp;</span><span style="color: #ff0000">'''</span><span style="color: #ff0000">&nbsp;then&nbsp;val&nbsp;else&nbsp;0&nbsp;end)&nbsp;[val</span><span style="color: #ff0000">'</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">+</span><span style="color: #000000">&nbsp;</span><span style="color: #ff00ff">cast</span><span style="color: #000000">(id&nbsp;</span><span style="color: #0000ff">as</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #000000">varchar</span><span style="color: #000000">)&nbsp;</span><span style="color: #808080">+</span><span style="color: #000000">&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #ff0000">]</span><span style="color: #ff0000">'</span><span style="color: #000000"><br />
</span><span style="color: #008080">30</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">from</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">select</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">distinct</span><span style="color: #000000">&nbsp;id&nbsp;</span><span style="color: #0000ff">from</span><span style="color: #000000">&nbsp;tb)&nbsp;</span><span style="color: #0000ff">as</span><span style="color: #000000">&nbsp;a<br />
</span><span style="color: #008080">31</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">set</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@sql</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@sql</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">+</span><span style="color: #000000">&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #ff0000">&nbsp;from&nbsp;tb&nbsp;group&nbsp;by&nbsp;name</span><span style="color: #ff0000">'</span><span style="color: #000000"><br />
</span><span style="color: #008080">32</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">exec</span><span style="color: #000000">(</span><span style="color: #008000">@sql</span><span style="color: #000000">)&nbsp;<br />
</span><span style="color: #008080">33</span><span style="color: #000000"><img id="Codehighlighter1_1004_1180_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1004_1180_Open_Text.style.display='none'; Codehighlighter1_1004_1180_Closed_Image.style.display='inline'; Codehighlighter1_1004_1180_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1004_1180_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1004_1180_Closed_Text.style.display='none'; Codehighlighter1_1004_1180_Open_Image.style.display='inline'; Codehighlighter1_1004_1180_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_1004_1180_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">/**/</span><span id="Codehighlighter1_1004_1180_Open_Text"><span style="color: #008080">/*</span><span style="color: #008080"><br />
</span><span style="color: #008080">34</span><span style="color: #008080"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;val1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;val2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;val3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">35</span><span style="color: #008080"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />----------&nbsp;-----------&nbsp;-----------&nbsp;-----------&nbsp;<br />
</span><span style="color: #008080">36</span><span style="color: #008080"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />aaa&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;30&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;40&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;50<br />
</span><span style="color: #008080">37</span><span style="color: #008080"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />bbb&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;35&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;45&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;55<br />
</span><span style="color: #008080">38</span><span style="color: #008080"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" /></span><span style="color: #008080">*/</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">39</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">40</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">41</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">drop</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">table</span><span style="color: #000000">&nbsp;tb<br />
</span><span style="color: #008080">42</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<br />
<br />
<img src ="http://www.blogjava.net/absolutedo/aggbug/291432.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/absolutedo/" target="_blank">iowen</a> 2009-08-17 10:14 <a href="http://www.blogjava.net/absolutedo/archive/2009/08/17/291432.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>sql中 with rollup 、with cube、grouping 统计函数用法 </title><link>http://www.blogjava.net/absolutedo/archive/2009/08/17/291426.html</link><dc:creator>iowen</dc:creator><author>iowen</author><pubDate>Mon, 17 Aug 2009 01:51:00 GMT</pubDate><guid>http://www.blogjava.net/absolutedo/archive/2009/08/17/291426.html</guid><wfw:comment>http://www.blogjava.net/absolutedo/comments/291426.html</wfw:comment><comments>http://www.blogjava.net/absolutedo/archive/2009/08/17/291426.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/absolutedo/comments/commentRss/291426.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/absolutedo/services/trackbacks/291426.html</trackback:ping><description><![CDATA[<dt>SQL code
<dd>
<pre>
<div><!-- Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--><span style="color: #0000ff">with</span><span style="color: #000000"> rollup 、</span><span style="color: #0000ff">with</span><span style="color: #000000"> cube、</span><span style="color: #ff00ff">grouping</span><span style="color: #000000">
CUBE 和 ROLLUP 之间的区别在于：
CUBE 生成的结果集显示了所选列中值的所有组合的聚合。
ROLLUP 生成的结果集显示了所选列中值的某一层次结构的聚合。
</span><span style="color: #ff00ff">grouping</span><span style="color: #000000">:
当用 CUBE 或 ROLLUP 运算符添加行时，附加的列输出值为1，当所添加的行不是由 CUBE 或 ROLLUP 产生时，附加列值为0。
</span><span style="color: #008080">--</span><span style="color: #008080">例如</span><span style="color: #008080">
</span><span style="color: #0000ff">DECLARE</span><span style="color: #000000"> </span><span style="color: #008000">@T</span><span style="color: #000000"> </span><span style="color: #0000ff">TABLE</span><span style="color: #000000">(名称 </span><span style="color: #0000ff">VARCHAR</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000">) , 出版商 </span><span style="color: #0000ff">VARCHAR</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">10</span><span style="color: #000000">),  价格1  </span><span style="color: #0000ff">INT</span><span style="color: #000000">, 价格2 </span><span style="color: #0000ff">INT</span><span style="color: #000000">)
</span><span style="color: #0000ff">INSERT</span><span style="color: #000000"> </span><span style="color: #008000">@T</span><span style="color: #000000">
</span><span style="color: #0000ff">SELECT</span><span style="color: #000000"> </span><span style="color: #ff0000">'</span><span style="color: #ff0000">a</span><span style="color: #ff0000">'</span><span style="color: #000000">,  </span><span style="color: #ff0000">'</span><span style="color: #ff0000">北京</span><span style="color: #ff0000">'</span><span style="color: #000000">,  </span><span style="font-weight: bold; color: #800000">11</span><span style="color: #000000">,  </span><span style="font-weight: bold; color: #800000">22</span><span style="color: #000000"> </span><span style="color: #0000ff">UNION</span><span style="color: #000000"> </span><span style="color: #808080">ALL</span><span style="color: #000000">
</span><span style="color: #0000ff">SELECT</span><span style="color: #000000"> </span><span style="color: #ff0000">'</span><span style="color: #ff0000">a</span><span style="color: #ff0000">'</span><span style="color: #000000">,  </span><span style="color: #ff0000">'</span><span style="color: #ff0000">四川</span><span style="color: #ff0000">'</span><span style="color: #000000">,  </span><span style="font-weight: bold; color: #800000">22</span><span style="color: #000000">,  </span><span style="font-weight: bold; color: #800000">33</span><span style="color: #000000"> </span><span style="color: #0000ff">UNION</span><span style="color: #000000"> </span><span style="color: #808080">ALL</span><span style="color: #000000">
</span><span style="color: #0000ff">SELECT</span><span style="color: #000000"> </span><span style="color: #ff0000">'</span><span style="color: #ff0000">b</span><span style="color: #ff0000">'</span><span style="color: #000000">,  </span><span style="color: #ff0000">'</span><span style="color: #ff0000">四川</span><span style="color: #ff0000">'</span><span style="color: #000000">,  </span><span style="font-weight: bold; color: #800000">12</span><span style="color: #000000">,  </span><span style="font-weight: bold; color: #800000">23</span><span style="color: #000000"> </span><span style="color: #0000ff">UNION</span><span style="color: #000000"> </span><span style="color: #808080">ALL</span><span style="color: #000000">
</span><span style="color: #0000ff">SELECT</span><span style="color: #000000"> </span><span style="color: #ff0000">'</span><span style="color: #ff0000">b</span><span style="color: #ff0000">'</span><span style="color: #000000">,  </span><span style="color: #ff0000">'</span><span style="color: #ff0000">北京</span><span style="color: #ff0000">'</span><span style="color: #000000">,  </span><span style="font-weight: bold; color: #800000">10</span><span style="color: #000000">,  </span><span style="font-weight: bold; color: #800000">20</span><span style="color: #000000"> </span><span style="color: #0000ff">UNION</span><span style="color: #000000"> </span><span style="color: #808080">ALL</span><span style="color: #000000">
</span><span style="color: #0000ff">SELECT</span><span style="color: #000000"> </span><span style="color: #ff0000">'</span><span style="color: #ff0000">b</span><span style="color: #ff0000">'</span><span style="color: #000000">,  </span><span style="color: #ff0000">'</span><span style="color: #ff0000">昆明</span><span style="color: #ff0000">'</span><span style="color: #000000">,  </span><span style="font-weight: bold; color: #800000">20</span><span style="color: #000000">,  </span><span style="font-weight: bold; color: #800000">30</span><span style="color: #000000">
</span><span style="color: #0000ff">SELECT</span><span style="color: #000000">
名称,
出版商,
</span><span style="color: #ff00ff">SUM</span><span style="color: #000000">(价格1) </span><span style="color: #0000ff">AS</span><span style="color: #000000"> 价格1,
</span><span style="color: #ff00ff">SUM</span><span style="color: #000000">(价格2) </span><span style="color: #0000ff">AS</span><span style="color: #000000"> 价格2,
</span><span style="color: #ff00ff">GROUPING</span><span style="color: #000000">(名称) </span><span style="color: #0000ff">AS</span><span style="color: #000000"> CHECK名称,
</span><span style="color: #ff00ff">GROUPING</span><span style="color: #000000">(出版商) </span><span style="color: #0000ff">AS</span><span style="color: #000000"> CHECK出版商
</span><span style="color: #0000ff">FROM</span><span style="color: #000000"> </span><span style="color: #008000">@T</span><span style="color: #000000"> </span><span style="color: #0000ff">GROUP</span><span style="color: #000000"> </span><span style="color: #0000ff">BY</span><span style="color: #000000"> 名称,出版商 </span><span style="color: #0000ff">WITH</span><span style="color: #000000"> CUBE
</span><span style="color: #008080">/*</span><span style="color: #008080">
名称   出版商        价格1         价格2         CHECK名称 CHECK出版商
---- ---------- ----------- ----------- ------- --------
a    北京         11          22          0       0
a    四川         22          33          0       0
a    NULL       33          55          0       1
b    北京         10          20          0       0
b    昆明         20          30          0       0
b    四川         12          23          0       0
b    NULL       42          73          0       1
NULL NULL       75          128         1       1
NULL 北京         21          42          1       0
NULL 昆明         20          30          1       0
NULL 四川         34          56          1       0
（所影响的行数为 11 行）
</span><span style="color: #008080">*/</span><span style="color: #000000">
</span><span style="color: #008080">--</span><span style="color: #008080">分析</span><span style="color: #008080">
/*</span><span style="color: #008080">group by 两列：名称有两个类别A,B;所有由CUBE运算而生成行的是
名称   出版商        价格1         价格2         CHECK名称 CHECK出版商
---- ---------- ----------- ----------- ------- --------
a    NULL       33          55          0       1
b    NULL       42          73          0       1
出版商有三个类别，所有由CUBE运算而生成行的是
名称   出版商        价格1         价格2         CHECK名称 CHECK出版商
---- ---------- ----------- ----------- ------- --------
NULL 北京         21          42          1       0
NULL 昆明         20          30          1       0
NULL 四川         34          56          1       0
以及
NULL NULL       75          128         1       1
</span><span style="color: #008080">*/</span><span style="color: #000000">
</span><span style="color: #0000ff">SELECT</span><span style="color: #000000">
名称,
出版商,
</span><span style="color: #ff00ff">SUM</span><span style="color: #000000">(价格1) </span><span style="color: #0000ff">AS</span><span style="color: #000000"> 价格1,
</span><span style="color: #ff00ff">SUM</span><span style="color: #000000">(价格2) </span><span style="color: #0000ff">AS</span><span style="color: #000000"> 价格2
</span><span style="color: #0000ff">FROM</span><span style="color: #000000"> </span><span style="color: #008000">@T</span><span style="color: #000000"> </span><span style="color: #0000ff">GROUP</span><span style="color: #000000"> </span><span style="color: #0000ff">BY</span><span style="color: #000000"> 名称,出版商 </span><span style="color: #0000ff">WITH</span><span style="color: #000000"> ROLLUP
</span><span style="color: #008080">/*</span><span style="color: #008080">
名称   出版商        价格1         价格2
---- ---------- ----------- -----------
a    北京         11          22
a    四川         22          33
a    NULL       33          55
b    北京         10          20
b    昆明         20          30
b    四川         12          23
b    NULL       42          73
NULL NULL       75          128
</span><span style="color: #008080">*/</span></div>
</pre>
</dd>
<img src ="http://www.blogjava.net/absolutedo/aggbug/291426.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/absolutedo/" target="_blank">iowen</a> 2009-08-17 09:51 <a href="http://www.blogjava.net/absolutedo/archive/2009/08/17/291426.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于GUID生成函数的不同数据库间的支持[Reship]</title><link>http://www.blogjava.net/absolutedo/archive/2009/06/03/279861.html</link><dc:creator>iowen</dc:creator><author>iowen</author><pubDate>Wed, 03 Jun 2009 09:40:00 GMT</pubDate><guid>http://www.blogjava.net/absolutedo/archive/2009/06/03/279861.html</guid><wfw:comment>http://www.blogjava.net/absolutedo/comments/279861.html</wfw:comment><comments>http://www.blogjava.net/absolutedo/archive/2009/06/03/279861.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/absolutedo/comments/commentRss/279861.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/absolutedo/services/trackbacks/279861.html</trackback:ping><description><![CDATA[1:MS SQL Server中，有NEWID函数，返回的数据类型为UniqueIdentifier，长度为36。<br />
<br />
/*<br />
例子:<br />
declare @i uniqueidentifier<br />
select @i=newid()<br />
begin<br />
&nbsp;print cast(@i as varchar(50))<br />
end<br />
*/<br />
<br />
2:Oracle中，有SYS_GUID函数，返回数据类型为char，长度为32。<br />
/*<br />
select sys_guid() from dual<br />
*/<br />
<br />
DB2中，没有产生GUID的函数，有一替代的函数generate_unique，返回的数据类型为CHAR FOR BIT，长度为13。<br />
<br />
SYBASE中，也有NEWID()函数，返回的数据类型为char，长度为36。<br />
<br />
评述，GUID在保证数据记录Primary Key唯一性，作用很大，DB2不支持这一函数，商用主流数据库中，DB2最差。MS SQL Server还有直接支持GUID的数据类型，支持最好。SYBASE的文档作得最差，在其文档中无法查到NEWID函数，但是可以使用。<br />
<br />
<br />
<a href="http://www.cnblogs.com/jobs/archive/2004/07/26/27533.html"><font color="#000000">转至:</font>http://www.cnblogs.com/jobs/archive/2004/07/26/27533.html</a>
 <img src ="http://www.blogjava.net/absolutedo/aggbug/279861.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/absolutedo/" target="_blank">iowen</a> 2009-06-03 17:40 <a href="http://www.blogjava.net/absolutedo/archive/2009/06/03/279861.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>数据库学习  ORA-12545:因目标主机或对象不存在，连接失败</title><link>http://www.blogjava.net/absolutedo/archive/2009/02/09/253856.html</link><dc:creator>iowen</dc:creator><author>iowen</author><pubDate>Mon, 09 Feb 2009 02:16:00 GMT</pubDate><guid>http://www.blogjava.net/absolutedo/archive/2009/02/09/253856.html</guid><wfw:comment>http://www.blogjava.net/absolutedo/comments/253856.html</wfw:comment><comments>http://www.blogjava.net/absolutedo/archive/2009/02/09/253856.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/absolutedo/comments/commentRss/253856.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/absolutedo/services/trackbacks/253856.html</trackback:ping><description><![CDATA[<p>1.搜索oracle安装目录，找到这俩个文件 tnsnames.ora 和 listener.ora ，还有一个大写的TNSNAMES.ORA不用管它。他们的路径如下：如 盘符:\oracle\ora92\network\admin&nbsp; 他们在同一个目录里，编辑这俩个文件，把里面的Host= 的地方改为你的计算机名就行了。(<span style="color: red"><strong>注意有多个，看仔细了。<font color="#ff0000">或者改成IP,下次改了IP注意再修改要统一)<br />
</font></strong></span><br />
2.如果这时登陆的话，肯定会提示你没有监听器，那是监听的服务没有开，到计算机的服务那进入服务的方法：控制面板-〉管理工具-〉服务（俩个齿轮的那个图标），然后找到OracleOraHome92TNSListener这个服务，把它启动了，就好了。</p>
 <img src ="http://www.blogjava.net/absolutedo/aggbug/253856.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/absolutedo/" target="_blank">iowen</a> 2009-02-09 10:16 <a href="http://www.blogjava.net/absolutedo/archive/2009/02/09/253856.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SQLServer  SQL分页语句</title><link>http://www.blogjava.net/absolutedo/archive/2008/12/03/244141.html</link><dc:creator>iowen</dc:creator><author>iowen</author><pubDate>Wed, 03 Dec 2008 08:00:00 GMT</pubDate><guid>http://www.blogjava.net/absolutedo/archive/2008/12/03/244141.html</guid><wfw:comment>http://www.blogjava.net/absolutedo/comments/244141.html</wfw:comment><comments>http://www.blogjava.net/absolutedo/archive/2008/12/03/244141.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/absolutedo/comments/commentRss/244141.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/absolutedo/services/trackbacks/244141.html</trackback:ping><description><![CDATA[<p>Here i take jobs table of pubs databse for example,details as follow:&nbsp;<br />
<br />
select top eachpage *&nbsp; from&nbsp; jobs where job_id not in ( select top <span style="color: red">(eachpage*(currentpage-1))&nbsp; </span>job_id from jobs order by job_id desc)) order by job_id desc;<br />
<br />
explain:<br />
1. eachpage : the number of each page show the recorder<br />
2.currentpage: current page<br />
<br />
notice:<br />
the red line in the sentence,you should take care of it, because Microsoft SQLServer&nbsp; TOP Function can't support the expression .it can only support <span style="color: red">a number. <br />
</span>so before you prepare to buildup the sql sentence ,you should alread calculate the result of the expression about <span style="color: red">(eachpage*(currentpage-1))&nbsp; </span>.<br />
<br />
Example:<br />
set&nbsp; eachpage=3<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; currentpage=5<br />
&nbsp;so&nbsp; <span style="color: red">(eachpage*(currentpage-1))&nbsp;=12</span><br />
select top 3 * from jobs where (job_id not in (select top 12 job_id from jobs order by job_id desc)) order by job_id desc<br />
<br />
<br />
</p>
      <img src ="http://www.blogjava.net/absolutedo/aggbug/244141.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/absolutedo/" target="_blank">iowen</a> 2008-12-03 16:00 <a href="http://www.blogjava.net/absolutedo/archive/2008/12/03/244141.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>