<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>恋恋风尘 &#187; Database</title>
	<atom:link href="http://leeawan.cn/category/database/feed/" rel="self" type="application/rss+xml" />
	<link>http://leeawan.cn</link>
	<description>Dust in The Wind</description>
	<lastBuildDate>Fri, 25 Jun 2010 13:11:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>ORACLE UPDATE语句语法与性能分析的一点看法</title>
		<link>http://leeawan.cn/2010/06/oracle_update_syntax/</link>
		<comments>http://leeawan.cn/2010/06/oracle_update_syntax/#comments</comments>
		<pubDate>Fri, 25 Jun 2010 11:52:33 +0000</pubDate>
		<dc:creator>leeawan</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[未分类]]></category>

		<guid isPermaLink="false">http://leeawan.cn/?p=268</guid>
		<description><![CDATA[转自:老骆驼空间站 为了方便起见,建立了以下简单模型,和构造了部分测试数据: 在某个业务受理子系统BSS中， &#8211;客户资料表 create table customers&#160; (&#160;&#160; customer_id&#160; &#160;number(8)&#160; &#160; not null,&#160; -- 客户标示&#160;&#160; city_name&#160; &#160; &#160;varchar2(10) not null,&#160; -- 所在城市&#160;&#160; customer_type char(2)&#160; &#160; &#160; not null,&#160; -- 客户类型&#160;&#160; ...&#160; )&#160; create unique index PK_customers on customers (customer_id) 由于某些原因，客户所在城市这个信息并不什么准确，但是在 客户服务部的CRM子系统中，通过主动服务获取了部分客户20%的所在 城市等准确信息，于是你将该部分信息提取至一张临时表中： create table tmp_cust_city&#160; (&#160;&#160; customer_id&#160; &#160; number(8) not null,&#160;&#160; citye_name&#160; &#160; &#160;varchar2(10) not [...]]]></description>
			<content:encoded><![CDATA[<p>转自:<a href="http://blog.csdn.net/gisfarmer/archive/2009/02/23/3925531.aspx">老骆驼空间站</a><br />
为了方便起见,建立了以下简单模型,和构造了部分测试数据:<br />
在某个业务受理子系统BSS中，<br />
&#8211;客户资料表</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">create</span><span style="color: Gray;"> </span><span style="color: Green;">table</span><span style="color: Gray;"> </span><span style="color: Blue;">customers</span><span style="color: Gray;"><br />&nbsp; </span><span style="color: Olive;">(</span><span style="color: Gray;"><br />&nbsp;&nbsp; </span><span style="color: Blue;">customer_id</span><span style="color: Gray;">&nbsp; &nbsp;</span><span style="color: #00008b;">number</span><span style="color: Olive;">(</span><span style="color: Maroon;">8</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">not</span><span style="color: Gray;"> </span><span style="color: Green;">null</span><span style="color: Gray;">,&nbsp; </span><span style="color: #ffa500;">-- 客户标示</span><span style="color: Gray;"><br />&nbsp;&nbsp; </span><span style="color: Blue;">city_name</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp;</span><span style="color: Blue;">varchar2</span><span style="color: Olive;">(</span><span style="color: Maroon;">10</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">not</span><span style="color: Gray;"> </span><span style="color: Green;">null</span><span style="color: Gray;">,&nbsp; </span><span style="color: #ffa500;">-- 所在城市</span><span style="color: Gray;"><br />&nbsp;&nbsp; </span><span style="color: Blue;">customer_type</span><span style="color: Gray;"> </span><span style="color: Green;">char</span><span style="color: Olive;">(</span><span style="color: Maroon;">2</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; </span><span style="color: Green;">not</span><span style="color: Gray;"> </span><span style="color: Green;">null</span><span style="color: Gray;">,&nbsp; </span><span style="color: #ffa500;">-- 客户类型</span><span style="color: Gray;"><br />&nbsp;&nbsp; ...<br />&nbsp; </span><span style="color: Olive;">)</span><span style="color: Gray;"><br />&nbsp; </span><span style="color: Green;">create</span><span style="color: Gray;"> </span><span style="color: Green;">unique</span><span style="color: Gray;"> </span><span style="color: Blue;">index</span><span style="color: Gray;"> </span><span style="color: Blue;">PK_customers</span><span style="color: Gray;"> </span><span style="color: Green;">on</span><span style="color: Gray;"> </span><span style="color: Blue;">customers</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: Blue;">customer_id</span><span style="color: Olive;">)</span></div></div>
<p>  由于某些原因，客户所在城市这个信息并不什么准确，但是在<br />
  客户服务部的CRM子系统中，通过主动服务获取了部分客户20%的所在<br />
  城市等准确信息，于是你将该部分信息提取至一张临时表中：</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">create</span><span style="color: Gray;"> </span><span style="color: Green;">table</span><span style="color: Gray;"> </span><span style="color: Blue;">tmp_cust_city</span><span style="color: Gray;"><br />&nbsp; </span><span style="color: Olive;">(</span><span style="color: Gray;"><br />&nbsp;&nbsp; </span><span style="color: Blue;">customer_id</span><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #00008b;">number</span><span style="color: Olive;">(</span><span style="color: Maroon;">8</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">not</span><span style="color: Gray;"> </span><span style="color: Green;">null</span><span style="color: Gray;">,<br />&nbsp;&nbsp; </span><span style="color: Blue;">citye_name</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp;</span><span style="color: Blue;">varchar2</span><span style="color: Olive;">(</span><span style="color: Maroon;">10</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">not</span><span style="color: Gray;"> </span><span style="color: Green;">null</span><span style="color: Gray;">，<br />&nbsp;&nbsp; </span><span style="color: Blue;">customer_type</span><span style="color: Gray;">&nbsp; </span><span style="color: Green;">char</span><span style="color: Olive;">(</span><span style="color: Maroon;">2</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp; &nbsp;</span><span style="color: Green;">not</span><span style="color: Gray;"> </span><span style="color: Green;">null</span><span style="color: Gray;"><br />&nbsp; </span><span style="color: Olive;">)</span></div></div>
<p>1) 最简单的形式<br />
   &#8211;经确认customers表中所有customer_id小于1000均为&#8217;北京&#8217;<br />
   &#8211;1000以内的均是公司走向全国之前的本城市的老客户:)</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">update</span><span style="color: Gray;"> </span><span style="color: Blue;">customers</span><span style="color: Gray;"><br />&nbsp;&nbsp; </span><span style="color: Green;">set</span><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">city_name</span><span style="color: Gray;">=</span><span style="color: #8b0000;">'</span><span style="color: Red;">北京</span><span style="color: #8b0000;">'</span><span style="color: Gray;"><br />&nbsp;&nbsp; </span><span style="color: Green;">where</span><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">customer_id</span><span style="color: Gray;">&lt;</span><span style="color: Maroon;">1000</span></div></div>
<p>2) 两表(多表)关联update &#8212; 仅在where字句中的连接<br />
   &#8211;这次提取的数据都是VIP，且包括新增的,所以顺便更新客户类别</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">update</span><span style="color: Gray;"> </span><span style="color: Blue;">customers</span><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">a</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #ffa500;">-- 使用别名</span><span style="color: Gray;"><br />&nbsp;&nbsp; </span><span style="color: Green;">set</span><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">customer_type</span><span style="color: Gray;">=</span><span style="color: #8b0000;">'</span><span style="color: Red;">01</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> --</span><span style="color: Maroon;">01</span><span style="color: Gray;"> 为</span><span style="color: Blue;">vip</span><span style="color: Gray;">，</span><span style="color: Maroon;">00</span><span style="color: Gray;">为普通<br />&nbsp;&nbsp; </span><span style="color: Green;">where</span><span style="color: Gray;">&nbsp; </span><span style="color: #00008b;">exists</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Maroon;">1</span><span style="color: Gray;"> <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">from</span><span style="color: Gray;">&nbsp; &nbsp;</span><span style="color: Blue;">tmp_cust_city</span><span style="color: Gray;"> </span><span style="color: Blue;">b</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">where</span><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">b</span><span style="color: Gray;">.</span><span style="color: Blue;">customer_id</span><span style="color: Gray;">=</span><span style="color: Blue;">a</span><span style="color: Gray;">.</span><span style="color: Blue;">customer_id</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">)</span></div></div>
<p><span id="more-268"></span><br />
3) 两表(多表)关联update &#8212; 被修改值由另一个表运算而来</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">update</span><span style="color: Gray;"> </span><span style="color: Blue;">customers</span><span style="color: Gray;"> </span><span style="color: Blue;">a</span><span style="color: Gray;">&nbsp; &nbsp;</span><span style="color: #ffa500;">-- 使用别名</span><span style="color: Gray;"><br />&nbsp;&nbsp; </span><span style="color: Green;">set</span><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">city_name</span><span style="color: Gray;">=</span><span style="color: Olive;">(</span><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">b</span><span style="color: Gray;">.</span><span style="color: Blue;">city_name</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">tmp_cust_city</span><span style="color: Gray;"> </span><span style="color: Blue;">b</span><span style="color: Gray;"> </span><span style="color: Green;">where</span><span style="color: Gray;"> </span><span style="color: Blue;">b</span><span style="color: Gray;">.</span><span style="color: Blue;">customer_id</span><span style="color: Gray;">=</span><span style="color: Blue;">a</span><span style="color: Gray;">.</span><span style="color: Blue;">customer_id</span><span style="color: Olive;">)</span><span style="color: Gray;"><br />&nbsp;&nbsp; </span><span style="color: Green;">where</span><span style="color: Gray;">&nbsp; </span><span style="color: #00008b;">exists</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Maroon;">1</span><span style="color: Gray;"> <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">from</span><span style="color: Gray;">&nbsp; &nbsp;</span><span style="color: Blue;">tmp_cust_city</span><span style="color: Gray;"> </span><span style="color: Blue;">b</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">where</span><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">b</span><span style="color: Gray;">.</span><span style="color: Blue;">customer_id</span><span style="color: Gray;">=</span><span style="color: Blue;">a</span><span style="color: Gray;">.</span><span style="color: Blue;">customer_id</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">)</span></div></div>
<p>   &#8212; update 超过2个值</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">update</span><span style="color: Gray;"> </span><span style="color: Blue;">customers</span><span style="color: Gray;"> </span><span style="color: Blue;">a</span><span style="color: Gray;">&nbsp; &nbsp;</span><span style="color: #ffa500;">-- 使用别名</span><span style="color: Gray;"><br />&nbsp;&nbsp; </span><span style="color: Green;">set</span><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">(</span><span style="color: Blue;">city_name</span><span style="color: Gray;">,</span><span style="color: Blue;">customer_type</span><span style="color: Olive;">)</span><span style="color: Gray;">=</span><span style="color: Olive;">(</span><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">b</span><span style="color: Gray;">.</span><span style="color: Blue;">city_name</span><span style="color: Gray;">,</span><span style="color: Blue;">b</span><span style="color: Gray;">.</span><span style="color: Blue;">customer_type</span><span style="color: Gray;"> <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">from</span><span style="color: Gray;">&nbsp; &nbsp;</span><span style="color: Blue;">tmp_cust_city</span><span style="color: Gray;"> </span><span style="color: Blue;">b</span><span style="color: Gray;"> <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">where</span><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">b</span><span style="color: Gray;">.</span><span style="color: Blue;">customer_id</span><span style="color: Gray;">=</span><span style="color: Blue;">a</span><span style="color: Gray;">.</span><span style="color: Blue;">customer_id</span><span style="color: Olive;">)</span><span style="color: Gray;"><br />&nbsp;&nbsp; </span><span style="color: Green;">where</span><span style="color: Gray;">&nbsp; </span><span style="color: #00008b;">exists</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Maroon;">1</span><span style="color: Gray;"> <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">from</span><span style="color: Gray;">&nbsp; &nbsp;</span><span style="color: Blue;">tmp_cust_city</span><span style="color: Gray;"> </span><span style="color: Blue;">b</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">where</span><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">b</span><span style="color: Gray;">.</span><span style="color: Blue;">customer_id</span><span style="color: Gray;">=</span><span style="color: Blue;">a</span><span style="color: Gray;">.</span><span style="color: Blue;">customer_id</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">)</span></div></div>
<p>   注意在这个语句中  =(select b.city_name,b.customer_type<br />
 from   tmp_cust_city b<br />
 where  b.customer_id=a.customer_id)<br />
   与<br />
 (select 1 from   tmp_cust_city b<br />
  where  b.customer_id=a.customer_id)<br />
是两个独立的子查询，查看执行计划可知，对b表/索引扫描了2篇；如果舍弃where条件，则默认对A表进行全表更新，但由于(select b.city_name from tmp_cust_city b where where  b.customer_id=a.customer_id)有可能不能提供&#8221;足够多&#8221;值，因为tmp_cust_city只是一部分客户的信息，所以报错（如果指定的列&#8211;city_name可以为NULL则另当别论）;</p>
<p>01407, 00000, &#8220;cannot update (%s) to NULL&#8221;<br />
// *Cause:<br />
// *Action:<br />
   一个替代的方法可以采用：</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">update</span><span style="color: Gray;"> </span><span style="color: Blue;">customers</span><span style="color: Gray;"> </span><span style="color: Blue;">a</span><span style="color: Gray;">&nbsp; &nbsp;</span><span style="color: #ffa500;">-- 使用别名</span><span style="color: Gray;"><br />&nbsp;&nbsp; </span><span style="color: Green;">set</span><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">city_name</span><span style="color: Gray;">=</span><span style="color: Blue;">nvl</span><span style="color: Olive;">((</span><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">b</span><span style="color: Gray;">.</span><span style="color: Blue;">city_name</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">tmp_cust_city</span><span style="color: Gray;"> </span><span style="color: Blue;">b</span><span style="color: Gray;"> </span><span style="color: Green;">where</span><span style="color: Gray;"> </span><span style="color: Blue;">b</span><span style="color: Gray;">.</span><span style="color: Blue;">customer_id</span><span style="color: Gray;">=</span><span style="color: Blue;">a</span><span style="color: Gray;">.</span><span style="color: Blue;">customer_id</span><span style="color: Olive;">)</span><span style="color: Gray;">,</span><span style="color: Blue;">a</span><span style="color: Gray;">.</span><span style="color: Blue;">city_name</span><span style="color: Olive;">)</span><span style="color: Gray;"><br />&nbsp;&nbsp; --或者<br />&nbsp;&nbsp; </span><span style="color: Green;">set</span><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">city_name</span><span style="color: Gray;">=</span><span style="color: Blue;">nvl</span><span style="color: Olive;">((</span><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">b</span><span style="color: Gray;">.</span><span style="color: Blue;">city_name</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">tmp_cust_city</span><span style="color: Gray;"> </span><span style="color: Blue;">b</span><span style="color: Gray;"> </span><span style="color: Green;">where</span><span style="color: Gray;"> </span><span style="color: Blue;">b</span><span style="color: Gray;">.</span><span style="color: Blue;">customer_id</span><span style="color: Gray;">=</span><span style="color: Blue;">a</span><span style="color: Gray;">.</span><span style="color: Blue;">customer_id</span><span style="color: Olive;">)</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">未知</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"><br />&nbsp;</span><span style="color: #ffa500;">-- 当然这不符合业务逻辑了</span></div></div>
<p>4) 上述3)在一些情况下，因为B表的纪录只有A表的20-30%的纪录数，考虑A表使用INDEX的情况，使用cursor也许会比关联update带来更好的性能：</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">set</span><span style="color: Gray;"> </span><span style="color: Blue;">serveroutput</span><span style="color: Gray;"> </span><span style="color: Green;">on</span><span style="color: Gray;"><br /></span><span style="color: Green;">declare</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp;</span><span style="color: Green;">cursor</span><span style="color: Gray;"> </span><span style="color: Blue;">city_cur</span><span style="color: Gray;"> </span><span style="color: Green;">is</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp;</span><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">customer_id</span><span style="color: Gray;">,</span><span style="color: Blue;">city_name</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp;</span><span style="color: Green;">from</span><span style="color: Gray;">&nbsp; &nbsp;</span><span style="color: Blue;">tmp_cust_city</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp;</span><span style="color: Green;">order</span><span style="color: Gray;"> </span><span style="color: Green;">by</span><span style="color: Gray;"> </span><span style="color: Blue;">customer_id</span><span style="color: Gray;">;<br /></span><span style="color: Green;">begin</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp;</span><span style="color: Green;">for</span><span style="color: Gray;"> </span><span style="color: Blue;">my_cur</span><span style="color: Gray;"> </span><span style="color: Green;">in</span><span style="color: Gray;"> </span><span style="color: Blue;">city_cur</span><span style="color: Gray;"> </span><span style="color: Blue;">loop</span><span style="color: Gray;"><br />&nbsp;<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">update</span><span style="color: Gray;"> </span><span style="color: Blue;">customers</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">set</span><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">city_name</span><span style="color: Gray;">=</span><span style="color: Blue;">my_cur</span><span style="color: Gray;">.</span><span style="color: Blue;">city_name</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">where</span><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">customer_id</span><span style="color: Gray;">=</span><span style="color: Blue;">my_cur</span><span style="color: Gray;">.</span><span style="color: Blue;">customer_id</span><span style="color: Gray;">;<br />&nbsp;&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">/** 此处也可以单条/分批次提交，避免锁表情况 **/</span><span style="color: Gray;"><br /></span><span style="color: #ffa500;">--&nbsp; &nbsp; &nbsp;if mod(city_cur%rowcount,10000)=0 then</span><span style="color: Gray;"><br /></span><span style="color: #ffa500;">--&nbsp; &nbsp; &nbsp; &nbsp; dbms_output.put_line('----');</span><span style="color: Gray;"><br /></span><span style="color: #ffa500;">--&nbsp; &nbsp; &nbsp; &nbsp; commit;</span><span style="color: Gray;"><br /></span><span style="color: #ffa500;">--&nbsp; &nbsp; &nbsp;end if;</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp;</span><span style="color: Green;">end</span><span style="color: Gray;"> </span><span style="color: Blue;">loop</span><span style="color: Gray;">;<br /></span><span style="color: Green;">end</span><span style="color: Gray;">;</span></div></div>
<p>5) 关联update的一个特例以及性能再探讨<br />
   在oracle的update语句语法中，除了可以update表之外，也可以是视图，所以有以下1个特例：</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">update</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">a</span><span style="color: Gray;">.</span><span style="color: Blue;">city_name</span><span style="color: Gray;">,</span><span style="color: Blue;">b</span><span style="color: Gray;">.</span><span style="color: Blue;">city_name</span><span style="color: Gray;"> </span><span style="color: Green;">as</span><span style="color: Gray;"> </span><span style="color: Blue;">new_name</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">from</span><span style="color: Gray;">&nbsp; &nbsp;</span><span style="color: Blue;">customers</span><span style="color: Gray;"> </span><span style="color: Blue;">a</span><span style="color: Gray;">,<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">tmp_cust_city</span><span style="color: Gray;"> </span><span style="color: Blue;">b</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">where</span><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">b</span><span style="color: Gray;">.</span><span style="color: Blue;">customer_id</span><span style="color: Gray;">=</span><span style="color: Blue;">a</span><span style="color: Gray;">.</span><span style="color: Blue;">customer_id</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">)</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp;</span><span style="color: Green;">set</span><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">city_name</span><span style="color: Gray;">=</span><span style="color: Blue;">new_name</span></div></div>
<p>这样能避免对B表或其索引的2次扫描，但前提是 A(customer_id) b(customer_id)必需是unique index或primary key。否则报错：<br />
01779, 00000, &#8220;cannot modify a column which maps to a non key-preserved table&#8221;<br />
// *Cause: An attempt was made to insert or update columns of a join view which<br />
// map to a non-key-preserved table.<br />
// *Action: Modify the underlying base tables directly.</p>
<p>6）oracle另一个常见错误<br />
   回到3)情况,由于某些原因，tmp_cust_city customer_id 不是唯一index/primary key</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">update</span><span style="color: Gray;"> </span><span style="color: Blue;">customers</span><span style="color: Gray;"> </span><span style="color: Blue;">a</span><span style="color: Gray;">&nbsp; &nbsp;</span><span style="color: #ffa500;">-- 使用别名</span><span style="color: Gray;"><br /></span><span style="color: Green;">set</span><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">city_name</span><span style="color: Gray;">=</span><span style="color: Olive;">(</span><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">b</span><span style="color: Gray;">.</span><span style="color: Blue;">city_name</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">tmp_cust_city</span><span style="color: Gray;"> </span><span style="color: Blue;">b</span><span style="color: Gray;"> </span><span style="color: Green;">where</span><span style="color: Gray;"> </span><span style="color: Blue;">b</span><span style="color: Gray;">.</span><span style="color: Blue;">customer_id</span><span style="color: Gray;">=</span><span style="color: Blue;">a</span><span style="color: Gray;">.</span><span style="color: Blue;">customer_id</span><span style="color: Olive;">)</span><span style="color: Gray;"><br />&nbsp;&nbsp; </span><span style="color: Green;">where</span><span style="color: Gray;">&nbsp; </span><span style="color: #00008b;">exists</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Maroon;">1</span><span style="color: Gray;"> <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">from</span><span style="color: Gray;">&nbsp; &nbsp;</span><span style="color: Blue;">tmp_cust_city</span><span style="color: Gray;"> </span><span style="color: Blue;">b</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">where</span><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">b</span><span style="color: Gray;">.</span><span style="color: Blue;">customer_id</span><span style="color: Gray;">=</span><span style="color: Blue;">a</span><span style="color: Gray;">.</span><span style="color: Blue;">customer_id</span><span style="color: Olive;">)</span></div></div>
<p>当对于一个给定的a.customer_id<br />
(select b.city_name from tmp_cust_city b where b.customer_id=a.customer_id)返回多余1条的情况，则会报如下错误：<br />
01427, 00000, &#8220;single-row subquery returns more than one row&#8221;<br />
// *Cause:<br />
// *Action:</p>
<p>   一个比较简单近似于不负责任的做法是</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">update</span><span style="color: Gray;"> </span><span style="color: Blue;">customers</span><span style="color: Gray;"> </span><span style="color: Blue;">a</span><span style="color: Gray;">&nbsp; &nbsp;</span><span style="color: #ffa500;">-- 使用别名</span><span style="color: Gray;"><br /></span><span style="color: Green;">set</span><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">city_name</span><span style="color: Gray;">=</span><span style="color: Olive;">(</span><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">b</span><span style="color: Gray;">.</span><span style="color: Blue;">city_name</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">tmp_cust_city</span><span style="color: Gray;"> </span><span style="color: Blue;">b</span><span style="color: Gray;"> </span><span style="color: Green;">where</span><span style="color: Gray;"> </span><span style="color: Blue;">b</span><span style="color: Gray;">.</span><span style="color: Blue;">customer_id</span><span style="color: Gray;">=</span><span style="color: Blue;">a</span><span style="color: Gray;">.</span><span style="color: Blue;">customer_id</span><span style="color: Gray;"> </span><span style="color: Green;">and</span><span style="color: Gray;"> </span><span style="color: Blue;">rownum</span><span style="color: Gray;">=</span><span style="color: Maroon;">1</span><span style="color: Olive;">)</span></div></div>
<p>如何理解 01427 错误，在一个很复杂的多表连接update的语句，经常因考虑不周，出现这个错误，仍已上述例子来描述，一个比较简便的方法就是将A表代入 值表达式 中,使用group by 和having 字句查看重复的纪录<br />
   (select b.customer_id,b.city_name,count(*)<br />
    from tmp_cust_city b,customers a<br />
    where b.customer_id=a.customer_id<br />
    group by b.customer_id,b.city_name<br />
    having count(*)>=2<br />
   )</p>
]]></content:encoded>
			<wfw:commentRss>http://leeawan.cn/2010/06/oracle_update_syntax/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oracle The Account is Locked的解决方法</title>
		<link>http://leeawan.cn/2010/06/oracle_the_account_is_locked/</link>
		<comments>http://leeawan.cn/2010/06/oracle_the_account_is_locked/#comments</comments>
		<pubDate>Fri, 25 Jun 2010 11:38:05 +0000</pubDate>
		<dc:creator>leeawan</dc:creator>
				<category><![CDATA[Database]]></category>

		<guid isPermaLink="false">http://leeawan.cn/?p=265</guid>
		<description><![CDATA[转自：你是编程高手吗的空间 第一种 ORA-28000: the account is locked 第一步：使用PL/SQL，登录名为system,数据库名称不变，选择类型的时候把Normal修改为Sysdba; 第二步：选择myjob,查看users; 第三步：选择system,右击点击“编辑”； 第四步：修改密码，把“帐户被锁住”的勾去掉； 第五步：点击“应用”再点击“关闭”； 第六步：重新登录就可以通过验证了； 第二种 ALTER USER username ACCOUNT UNLOCK; 第三种 在plsql developer中要是以scott/tiger登录时提示ora-28000 the account is locked。 解决办法： 新装完Oracle10g后，用scott/tiger测试，会出现以下错误提示： oracle10g the account is locked oracle10g the password has expired 原因：默认Oracle10g的scott不能登陆。 解决： conn sys/sys as sysdba; //以DBA的身份登录alter user scott account unlock;// 然后解锁conn scott/tiger //弹出一个修改密码的对话框，修改一下密码就可以了 在运行里面输入cmd在DOS模式下输入sqlplus，以system用户名登录，密码是刚装oracle时自己填写的密码orcl，登录进去以后。 SQL&#62; conn [...]]]></description>
			<content:encoded><![CDATA[<p>转自：<a href="http://hi.baidu.com/%C4%E3%CA%C7%B1%E0%B3%CC%B8%DF%CA%D6%C2%F0/blog/item/4637a4d1371a1d85a0ec9c52.html">你是编程高手吗的空间</a></p>
<p>第一种<br />
ORA-28000: the account is locked<br />
第一步：使用PL/SQL，登录名为system,数据库名称不变，选择类型的时候把Normal修改为Sysdba;<br />
第二步：选择myjob,查看users;<br />
第三步：选择system,右击点击“编辑”；<br />
第四步：修改密码，把“帐户被锁住”的勾去掉；<br />
第五步：点击“应用”再点击“关闭”；<br />
第六步：重新登录就可以通过验证了；<br />
第二种<br />
ALTER USER username ACCOUNT UNLOCK;</p>
<p>第三种<br />
在plsql developer中要是以scott/tiger登录时提示ora-28000 the account is locked。<br />
解决办法：<br />
新装完Oracle10g后，用scott/tiger测试，会出现以下错误提示：<br />
oracle10g the account is locked<br />
oracle10g the password has expired<br />
原因：默认Oracle10g的scott不能登陆。<br />
解决：</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Blue;">conn</span><span style="color: Gray;"> </span><span style="color: Blue;">sys</span><span style="color: Gray;">/</span><span style="color: Blue;">sys</span><span style="color: Gray;"> </span><span style="color: Green;">as</span><span style="color: Gray;"> </span><span style="color: Blue;">sysdba</span><span style="color: Gray;">; //以</span><span style="color: Blue;">DBA</span><span style="color: Gray;">的身份登录<br /></span><span style="color: Green;">alter</span><span style="color: Gray;"> </span><span style="color: Green;">user</span><span style="color: Gray;"> </span><span style="color: Blue;">scott</span><span style="color: Gray;"> </span><span style="color: Blue;">account</span><span style="color: Gray;"> </span><span style="color: Blue;">unlock</span><span style="color: Gray;">;// 然后解锁<br /></span><span style="color: Blue;">conn</span><span style="color: Gray;"> </span><span style="color: Blue;">scott</span><span style="color: Gray;">/</span><span style="color: Blue;">tiger</span><span style="color: Gray;"> //弹出一个修改密码的对话框，修改一下密码就可以了</span></div></div>
<p><span id="more-265"></span><br />
在运行里面输入cmd在DOS模式下输入sqlplus，以system用户名登录，密码是刚装oracle时自己填写的密码orcl，登录进去以后。</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">SQL</span><span style="color: Gray;">&gt; </span><span style="color: Blue;">conn</span><span style="color: Gray;"> </span><span style="color: Blue;">sys</span><span style="color: Gray;">/</span><span style="color: Blue;">sys</span><span style="color: Gray;"> </span><span style="color: Green;">as</span><span style="color: Gray;"> </span><span style="color: Blue;">sysdba</span><span style="color: Gray;">;&nbsp; &nbsp; &nbsp; &nbsp;（分号是必须的但是我是以</span><span style="color: #00008b;">system</span><span style="color: Gray;">登录的所在这不应该写</span><span style="color: Blue;">conn</span><span style="color: Gray;"> </span><span style="color: Blue;">sys</span><span style="color: Gray;">/</span><span style="color: Blue;">sys</span><span style="color: Gray;"> </span><span style="color: Green;">as</span><span style="color: Gray;"> </span><span style="color: Blue;">sysdba</span><span style="color: Gray;">应该写</span><span style="color: Blue;">conn</span><span style="color: Gray;"> </span><span style="color: #00008b;">system</span><span style="color: Gray;">/</span><span style="color: Blue;">orcl</span><span style="color: Gray;"> </span><span style="color: Green;">as</span><span style="color: Gray;"> </span><span style="color: Blue;">sysdba</span><span style="color: Gray;">;）<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">Connected</span><span style="color: Gray;">.<br /></span><span style="color: Green;">SQL</span><span style="color: Gray;">&gt; </span><span style="color: Green;">alter</span><span style="color: Gray;"> </span><span style="color: Green;">user</span><span style="color: Gray;"> </span><span style="color: Blue;">scott</span><span style="color: Gray;"> </span><span style="color: Blue;">account</span><span style="color: Gray;"> </span><span style="color: Blue;">unlock</span><span style="color: Gray;">;<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">User</span><span style="color: Gray;"> </span><span style="color: Blue;">altered</span><span style="color: Gray;">.<br /></span><span style="color: Green;">SQL</span><span style="color: Gray;">&gt; </span><span style="color: Green;">commit</span><span style="color: Gray;">;<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">Commit</span><span style="color: Gray;"> </span><span style="color: Blue;">complete</span><span style="color: Gray;">.<br /></span><span style="color: Green;">SQL</span><span style="color: Gray;">&gt; </span><span style="color: Blue;">conn</span><span style="color: Gray;"> </span><span style="color: Blue;">scott</span><span style="color: Gray;">/</span><span style="color: Blue;">tiger</span><span style="color: Gray;">//请输入新密码，并确认后</span><span style="color: Blue;">OK</span><span style="color: Gray;"><br /></span><span style="color: Blue;">Password</span><span style="color: Gray;"> </span><span style="color: Blue;">changed</span><span style="color: Gray;"><br /></span><span style="color: Blue;">Connected</span><span style="color: Gray;">.</span></div></div>
]]></content:encoded>
			<wfw:commentRss>http://leeawan.cn/2010/06/oracle_the_account_is_locked/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>oracle 数据导入导出</title>
		<link>http://leeawan.cn/2010/06/oracle_import_export/</link>
		<comments>http://leeawan.cn/2010/06/oracle_import_export/#comments</comments>
		<pubDate>Sun, 13 Jun 2010 12:14:19 +0000</pubDate>
		<dc:creator>leeawan</dc:creator>
				<category><![CDATA[Database]]></category>

		<guid isPermaLink="false">http://leeawan.cn/?p=263</guid>
		<description><![CDATA[exp 将数据库内的各对象以二进制方式下载成dmp文件，方便数据迁移。 &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- buffer：下载数据缓冲区，以字节为单位，缺省依赖操作系统 consistent：下载期间所涉及的数据保持read only，缺省为n direct：使用直通方式 ，缺省为n feeback：显示处理记录条数，缺省为0，即不显示 file：输出文件，缺省为expdat.dmp filesize：输出文件大小，缺省为操作系统最大值 indexes：是否下载索引，缺省为n，这是指索引的定义而非数据，exp不下载索引数据 log：log文件，缺省为无，在标准输出显示 owner：指明下载的用户名 query：选择记录的一个子集 rows：是否下载表记录 tables：输出的表名列表 &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- 导出整个实例 exp dbuser/oracle@oradb file=oradb.dmp log=oradb.log full=y consistent=y direct=y user应具有dba权限 导出某个用户所有对象 exp dbuser/oracle@oradb file=dbuser.dmp log=dbuser.log owner=dbuser buffer=4096000 feedback=10000 导出一张或几张表 exp dbuser/oracle@oradb file=dbuser.dmp log=dbuser.log tables=table1,table2 buffer=4096000 feedback=10000 导出某张表的部分数据 exp dbuser/oracle@oradb file=dbuser.dmp log=dbuser.log tables=table1 buffer=4096000 feedback=10000 query=\”where col1=\’…\’ and col2 [...]]]></description>
			<content:encoded><![CDATA[<p><strong>exp</strong><br />
将数据库内的各对象以二进制方式下载成dmp文件，方便数据迁移。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
buffer：下载数据缓冲区，以字节为单位，缺省依赖操作系统<br />
consistent：下载期间所涉及的数据保持read only，缺省为n<br />
direct：使用直通方式 ，缺省为n<br />
feeback：显示处理记录条数，缺省为0，即不显示<br />
file：输出文件，缺省为expdat.dmp<br />
filesize：输出文件大小，缺省为操作系统最大值<br />
indexes：是否下载索引，缺省为n，这是指索引的定义而非数据，exp不下载索引数据<br />
log：log文件，缺省为无，在标准输出显示<br />
owner：指明下载的用户名<br />
query：选择记录的一个子集<br />
rows：是否下载表记录<br />
tables：输出的表名列表<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
导出整个实例</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Blue;">exp</span><span style="color: Gray;"> </span><span style="color: Blue;">dbuser</span><span style="color: Gray;">/</span><span style="color: Blue;">oracle</span><span style="color: Gray;">@</span><span style="color: Blue;">oradb</span><span style="color: Gray;"> </span><span style="color: Blue;">file</span><span style="color: Gray;">=</span><span style="color: Blue;">oradb</span><span style="color: Gray;">.</span><span style="color: Blue;">dmp</span><span style="color: Gray;"> </span><span style="color: Blue;">log</span><span style="color: Gray;">=</span><span style="color: Blue;">oradb</span><span style="color: Gray;">.</span><span style="color: Blue;">log</span><span style="color: Gray;"> </span><span style="color: Green;">full</span><span style="color: Gray;">=</span><span style="color: Blue;">y</span><span style="color: Gray;"> </span><span style="color: Blue;">consistent</span><span style="color: Gray;">=</span><span style="color: Blue;">y</span><span style="color: Gray;"> </span><span style="color: Blue;">direct</span><span style="color: Gray;">=</span><span style="color: Blue;">y</span></div></div>
<p>user应具有dba权限<br />
导出某个用户所有对象</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Blue;">exp</span><span style="color: Gray;"> </span><span style="color: Blue;">dbuser</span><span style="color: Gray;">/</span><span style="color: Blue;">oracle</span><span style="color: Gray;">@</span><span style="color: Blue;">oradb</span><span style="color: Gray;"> </span><span style="color: Blue;">file</span><span style="color: Gray;">=</span><span style="color: Blue;">dbuser</span><span style="color: Gray;">.</span><span style="color: Blue;">dmp</span><span style="color: Gray;"> </span><span style="color: Blue;">log</span><span style="color: Gray;">=</span><span style="color: Blue;">dbuser</span><span style="color: Gray;">.</span><span style="color: Blue;">log</span><span style="color: Gray;"> </span><span style="color: Blue;">owner</span><span style="color: Gray;">=</span><span style="color: Blue;">dbuser</span><span style="color: Gray;"> </span><span style="color: Blue;">buffer</span><span style="color: Gray;">=</span><span style="color: Maroon;">4096000</span><span style="color: Gray;"> </span><span style="color: Blue;">feedback</span><span style="color: Gray;">=</span><span style="color: Maroon;">10000</span></div></div>
<p>导出一张或几张表</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Blue;">exp</span><span style="color: Gray;"> </span><span style="color: Blue;">dbuser</span><span style="color: Gray;">/</span><span style="color: Blue;">oracle</span><span style="color: Gray;">@</span><span style="color: Blue;">oradb</span><span style="color: Gray;"> </span><span style="color: Blue;">file</span><span style="color: Gray;">=</span><span style="color: Blue;">dbuser</span><span style="color: Gray;">.</span><span style="color: Blue;">dmp</span><span style="color: Gray;"> </span><span style="color: Blue;">log</span><span style="color: Gray;">=</span><span style="color: Blue;">dbuser</span><span style="color: Gray;">.</span><span style="color: Blue;">log</span><span style="color: Gray;"> </span><span style="color: Blue;">tables</span><span style="color: Gray;">=</span><span style="color: Blue;">table1</span><span style="color: Gray;">,</span><span style="color: Blue;">table2</span><span style="color: Gray;"> </span><span style="color: Blue;">buffer</span><span style="color: Gray;">=</span><span style="color: Maroon;">4096000</span><span style="color: Gray;"> </span><span style="color: Blue;">feedback</span><span style="color: Gray;">=</span><span style="color: Maroon;">10000</span></div></div>
<p>导出某张表的部分数据</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Blue;">exp</span><span style="color: Gray;"> </span><span style="color: Blue;">dbuser</span><span style="color: Gray;">/</span><span style="color: Blue;">oracle</span><span style="color: Gray;">@</span><span style="color: Blue;">oradb</span><span style="color: Gray;"> </span><span style="color: Blue;">file</span><span style="color: Gray;">=</span><span style="color: Blue;">dbuser</span><span style="color: Gray;">.</span><span style="color: Blue;">dmp</span><span style="color: Gray;"> </span><span style="color: Blue;">log</span><span style="color: Gray;">=</span><span style="color: Blue;">dbuser</span><span style="color: Gray;">.</span><span style="color: Blue;">log</span><span style="color: Gray;"> </span><span style="color: Blue;">tables</span><span style="color: Gray;">=</span><span style="color: Blue;">table1</span><span style="color: Gray;"> </span><span style="color: Blue;">buffer</span><span style="color: Gray;">=</span><span style="color: Maroon;">4096000</span><span style="color: Gray;"> </span><span style="color: Blue;">feedback</span><span style="color: Gray;">=</span><span style="color: Maroon;">10000</span><span style="color: Gray;"> </span><span style="color: Blue;">query</span><span style="color: Gray;">=\”</span><span style="color: Green;">where</span><span style="color: Gray;"> </span><span style="color: Blue;">col1</span><span style="color: Gray;">=\’…\’ </span><span style="color: Green;">and</span><span style="color: Gray;"> </span><span style="color: Blue;">col2</span><span style="color: Gray;"> \&lt;…\”</span></div></div>
<p>不可用于嵌套表<br />
以多个固定大小文件方式导出某张表</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Blue;">exp</span><span style="color: Gray;"> </span><span style="color: Blue;">dbuser</span><span style="color: Gray;">/</span><span style="color: Blue;">oracle</span><span style="color: Gray;">@</span><span style="color: Blue;">oradb</span><span style="color: Gray;"> </span><span style="color: Blue;">file</span><span style="color: Gray;">=</span><span style="color: Maroon;">1.</span><span style="color: Blue;">dmp</span><span style="color: Gray;">,</span><span style="color: Maroon;">2.</span><span style="color: Blue;">dmp</span><span style="color: Gray;">,</span><span style="color: Maroon;">3.</span><span style="color: Blue;">dmp</span><span style="color: Gray;">,… </span><span style="color: Blue;">filesize</span><span style="color: Gray;">=</span><span style="color: Maroon;">1000</span><span style="color: #00008b;">m</span><span style="color: Gray;"> </span><span style="color: Blue;">tables</span><span style="color: Gray;">=</span><span style="color: Blue;">emp</span><span style="color: Gray;"> </span><span style="color: Blue;">buffer</span><span style="color: Gray;">=</span><span style="color: Maroon;">4096000</span><span style="color: Gray;"> </span><span style="color: Blue;">feedback</span><span style="color: Gray;">=</span><span style="color: Maroon;">10000</span></div></div>
<p>这种做法通常用在：表数据量较大，单个dump文件可能会超出文件系统的限制<br />
直通路径方式<br />
direct=y，取代buffer选项，query选项不可用<br />
有利于提高下载速度<br />
consistent选项<br />
自export启动后，consistent=y冻结来自其它会话的对export操作的数据对象的更新，这样可以保证dump结果的一致性。但这个过程不能太长，以免回滚段和联机日志消耗完<br />
<span id="more-263"></span></p>
<p><strong>imp</strong><br />
将exp下载的dmp文件上载到数据库内。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
buffer：上载数据缓冲区，以字节为单位，缺省依赖操作系统<br />
commit：上载数据缓冲区中的记录上载后是否执行提交<br />
feeback：显示处理记录条数，缺省为0，即不显示<br />
file：输入文件，缺省为expdat.dmp<br />
filesize：输入文件大小，缺省为操作系统最大值<br />
fromuser：指明来源用户方<br />
ignore：是否忽略对象创建错误，缺省为n，在上载前对象已被建立往往是一个正常现象，所以此选项建议设为y<br />
indexes：是否上载索引，缺省为n，这是指索引的定义而非数据，如果上载时索引已建立，此选项即使为n也无效，imp自动更新索引数据<br />
log：log文件，缺省为无，在标准输出显示<br />
rows：是否上载表记录<br />
tables：输入的表名列表<br />
touser：指明目的用户方<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
导入整个实例</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Blue;">imp</span><span style="color: Gray;"> </span><span style="color: Blue;">dbuser</span><span style="color: Gray;">/</span><span style="color: Blue;">oracle</span><span style="color: Gray;">@</span><span style="color: Blue;">oradb</span><span style="color: Gray;"> </span><span style="color: Blue;">file</span><span style="color: Gray;">=</span><span style="color: Blue;">oradb</span><span style="color: Gray;">.</span><span style="color: Blue;">dmp</span><span style="color: Gray;"> </span><span style="color: Blue;">log</span><span style="color: Gray;">=</span><span style="color: Blue;">oradb</span><span style="color: Gray;">.</span><span style="color: Blue;">log</span><span style="color: Gray;"> </span><span style="color: Green;">full</span><span style="color: Gray;">=</span><span style="color: Blue;">y</span><span style="color: Gray;"> </span><span style="color: Blue;">buffer</span><span style="color: Gray;">=</span><span style="color: Maroon;">4096000</span><span style="color: Gray;"> </span><span style="color: Green;">commit</span><span style="color: Gray;">=</span><span style="color: Blue;">y</span><span style="color: Gray;"> </span><span style="color: Green;">ignore</span><span style="color: Gray;">=</span><span style="color: Blue;">y</span><span style="color: Gray;"> </span><span style="color: Blue;">feedback</span><span style="color: Gray;">=</span><span style="color: Maroon;">10000</span></div></div>
<p>导入某个用户所有对象</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Blue;">imp</span><span style="color: Gray;"> </span><span style="color: Blue;">dbuser</span><span style="color: Gray;">/</span><span style="color: Blue;">oracle</span><span style="color: Gray;">@</span><span style="color: Blue;">oradb</span><span style="color: Gray;"> </span><span style="color: Blue;">file</span><span style="color: Gray;">=</span><span style="color: Blue;">dbuser</span><span style="color: Gray;">.</span><span style="color: Blue;">dmp</span><span style="color: Gray;"> </span><span style="color: Blue;">log</span><span style="color: Gray;">=</span><span style="color: Blue;">dbuser</span><span style="color: Gray;">.</span><span style="color: Blue;">log</span><span style="color: Gray;"> </span><span style="color: Blue;">fromuser</span><span style="color: Gray;">=</span><span style="color: Blue;">dbuser</span><span style="color: Gray;"> </span><span style="color: Blue;">touser</span><span style="color: Gray;">=</span><span style="color: Blue;">dbuser2</span><span style="color: Gray;"> </span><span style="color: Blue;">buffer</span><span style="color: Gray;">=</span><span style="color: Maroon;">2048000</span><span style="color: Gray;"> </span><span style="color: Green;">commit</span><span style="color: Gray;">=</span><span style="color: Blue;">y</span><span style="color: Gray;"> </span><span style="color: Green;">ignore</span><span style="color: Gray;">=</span><span style="color: Blue;">y</span><span style="color: Gray;"> </span><span style="color: Blue;">feedback</span><span style="color: Gray;">=</span><span style="color: Maroon;">10000</span></div></div>
<p>导入一张或几张表</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Blue;">imp</span><span style="color: Gray;"> </span><span style="color: Blue;">dbuser2</span><span style="color: Gray;">/</span><span style="color: Blue;">oracle</span><span style="color: Gray;"> </span><span style="color: Blue;">file</span><span style="color: Gray;">=</span><span style="color: Green;">user</span><span style="color: Gray;">.</span><span style="color: Blue;">dmp</span><span style="color: Gray;"> </span><span style="color: Blue;">log</span><span style="color: Gray;">=</span><span style="color: Green;">user</span><span style="color: Gray;">.</span><span style="color: Blue;">log</span><span style="color: Gray;"> </span><span style="color: Blue;">tables</span><span style="color: Gray;">=</span><span style="color: Blue;">table1</span><span style="color: Gray;">,</span><span style="color: Blue;">table2</span><span style="color: Gray;"> </span><span style="color: Blue;">fromuser</span><span style="color: Gray;">=</span><span style="color: Blue;">dbuser</span><span style="color: Gray;"> </span><span style="color: Blue;">touser</span><span style="color: Gray;">=</span><span style="color: Blue;">dbuser2</span><span style="color: Gray;"> </span><span style="color: Blue;">buffer</span><span style="color: Gray;">=</span><span style="color: Maroon;">2048000</span><span style="color: Gray;"> </span><span style="color: Green;">commit</span><span style="color: Gray;">=</span><span style="color: Blue;">y</span><span style="color: Gray;"> </span><span style="color: Green;">ignore</span><span style="color: Gray;">=</span><span style="color: Blue;">y</span><span style="color: Gray;"> </span><span style="color: Blue;">feedback</span><span style="color: Gray;">=</span><span style="color: Maroon;">10000</span></div></div>
<p>以多个固定大小文件方式导入某张表</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Blue;">imp</span><span style="color: Gray;"> </span><span style="color: Blue;">dbuser</span><span style="color: Gray;">/</span><span style="color: Blue;">oracle</span><span style="color: Gray;">@</span><span style="color: Blue;">oradb</span><span style="color: Gray;"> </span><span style="color: Blue;">file</span><span style="color: Gray;">=\</span><span style="color: Olive;">(</span><span style="color: Maroon;">1.</span><span style="color: Blue;">dmp</span><span style="color: Gray;">,</span><span style="color: Maroon;">2.</span><span style="color: Blue;">dmp</span><span style="color: Gray;">,</span><span style="color: Maroon;">3.</span><span style="color: Blue;">dmp</span><span style="color: Gray;">,…\</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Blue;">filesize</span><span style="color: Gray;">=</span><span style="color: Maroon;">1000</span><span style="color: #00008b;">m</span><span style="color: Gray;"> </span><span style="color: Blue;">tables</span><span style="color: Gray;">=</span><span style="color: Blue;">emp</span><span style="color: Gray;"> </span><span style="color: Blue;">fromuser</span><span style="color: Gray;">=</span><span style="color: Blue;">dbuser</span><span style="color: Gray;"> </span><span style="color: Blue;">touser</span><span style="color: Gray;">=</span><span style="color: Blue;">dbuser2</span><span style="color: Gray;"> </span><span style="color: Blue;">buffer</span><span style="color: Gray;">=</span><span style="color: Maroon;">4096000</span><span style="color: Gray;"> </span><span style="color: Green;">commit</span><span style="color: Gray;">=</span><span style="color: Blue;">y</span><span style="color: Gray;"> </span><span style="color: Green;">ignore</span><span style="color: Gray;">=</span><span style="color: Blue;">y</span><span style="color: Gray;"> </span><span style="color: Blue;">feedback</span><span style="color: Gray;">=</span><span style="color: Maroon;">10000</span></div></div>
]]></content:encoded>
			<wfw:commentRss>http://leeawan.cn/2010/06/oracle_import_export/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>oracle解锁</title>
		<link>http://leeawan.cn/2010/04/oracle_lock/</link>
		<comments>http://leeawan.cn/2010/04/oracle_lock/#comments</comments>
		<pubDate>Mon, 26 Apr 2010 11:57:16 +0000</pubDate>
		<dc:creator>leeawan</dc:creator>
				<category><![CDATA[Database]]></category>

		<guid isPermaLink="false">http://leeawan.cn/?p=253</guid>
		<description><![CDATA[1、查看数据库锁,诊断锁的来源及类型: select object_id,session_id,locked_mode from v$locked_object; 或者用以下命令： select b.owner,b.object_name,l.session_id,l.locked_mode from v$locked_object l, dba_objects b where b.object_id=l.object_id; 2、找出数据库的serial#,以备杀死: select t2.username,t2.sid,t2.serial#,t2.logon_time from v$locked_object t1,v$session t2 where t1.session_id=t2.sid order by t2.logon_time; 3、杀死该session: alter system kill session 'sid,serial#']]></description>
			<content:encoded><![CDATA[<p>1、查看数据库锁,诊断锁的来源及类型: </p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">object_id</span><span style="color: Gray;">,</span><span style="color: Blue;">session_id</span><span style="color: Gray;">,</span><span style="color: Blue;">locked_mode</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">v</span><span style="color: Gray;">$</span><span style="color: Blue;">locked_object</span><span style="color: Gray;">;</span></div></div>
<p>或者用以下命令： </p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">b</span><span style="color: Gray;">.</span><span style="color: Blue;">owner</span><span style="color: Gray;">,</span><span style="color: Blue;">b</span><span style="color: Gray;">.</span><span style="color: Blue;">object_name</span><span style="color: Gray;">,</span><span style="color: Blue;">l</span><span style="color: Gray;">.</span><span style="color: Blue;">session_id</span><span style="color: Gray;">,</span><span style="color: Blue;">l</span><span style="color: Gray;">.</span><span style="color: Blue;">locked_mode</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">v</span><span style="color: Gray;">$</span><span style="color: Blue;">locked_object</span><span style="color: Gray;"> </span><span style="color: Blue;">l</span><span style="color: Gray;">, </span><span style="color: Blue;">dba_objects</span><span style="color: Gray;"> </span><span style="color: Blue;">b</span><span style="color: Gray;"> </span><span style="color: Green;">where</span><span style="color: Gray;"> </span><span style="color: Blue;">b</span><span style="color: Gray;">.</span><span style="color: Blue;">object_id</span><span style="color: Gray;">=</span><span style="color: Blue;">l</span><span style="color: Gray;">.</span><span style="color: Blue;">object_id</span><span style="color: Gray;">;</span></div></div>
<p>2、找出数据库的serial#,以备杀死: </p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">t2</span><span style="color: Gray;">.</span><span style="color: Blue;">username</span><span style="color: Gray;">,</span><span style="color: Blue;">t2</span><span style="color: Gray;">.</span><span style="color: Blue;">sid</span><span style="color: Gray;">,</span><span style="color: Blue;">t2</span><span style="color: Gray;">.</span><span style="color: Blue;">serial</span><span style="color: #ffa500;">#,t2.logon_time from v$locked_object t1,v$session t2 where t1.session_id=t2.sid order by t2.logon_time;</span></div></div>
<p>3、杀死该session: </p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">alter</span><span style="color: Gray;"> </span><span style="color: #00008b;">system</span><span style="color: Gray;"> </span><span style="color: Blue;">kill</span><span style="color: Gray;"> </span><span style="color: Green;">session</span><span style="color: Gray;"> </span><span style="color: #8b0000;">'</span><span style="color: Red;">sid,serial#</span><span style="color: #8b0000;">'</span></div></div>
]]></content:encoded>
			<wfw:commentRss>http://leeawan.cn/2010/04/oracle_lock/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ORACLE日期时间函数大全</title>
		<link>http://leeawan.cn/2010/03/oracl_date/</link>
		<comments>http://leeawan.cn/2010/03/oracl_date/#comments</comments>
		<pubDate>Mon, 15 Mar 2010 14:12:48 +0000</pubDate>
		<dc:creator>leeawan</dc:creator>
				<category><![CDATA[Database]]></category>

		<guid isPermaLink="false">http://leeawan.cn/?p=219</guid>
		<description><![CDATA[转载自:ORACLE日期时间函数大全 TO_DATE格式(以时间:2007-11-02 13:45:25为例) Year:&#160; &#160; &#160; yy two digits 两位年&#160; &#160; &#160; &#160; &#160; &#160; &#160;显示值:07yyy three digits 三位年&#160; &#160; &#160; &#160; &#160; &#160;显示值:007yyyy four digits 四位年&#160; &#160; &#160; &#160; &#160; &#160; 显示值:2007&#160;&#160; &#160; &#160; &#160; &#160; &#160;Month:&#160; &#160; &#160; mm&#160; &#160; number&#160; &#160; &#160;两位月&#160; &#160; &#160; &#160; &#160; &#160;显示值:11mon&#160; &#160; abbreviated 字符集表示&#160; &#160; &#160;显示值:11月,若是英文版,显示nov&#160; [...]]]></description>
			<content:encoded><![CDATA[<p>转载自:<a href="http://yangdi1984.blog.hexun.com/20238141_d.html">ORACLE日期时间函数大全</a><br />
<strong>TO_DATE格式</strong>(以时间:2007-11-02   13:45:25为例)</p>
<div class="hl-surround"><div class="hl-main">Year:&nbsp; &nbsp; &nbsp; <br />yy two digits 两位年&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;显示值:07<br />yyy three digits 三位年&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;显示值:007<br />yyyy four digits 四位年&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 显示值:2007<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />Month:&nbsp; &nbsp; &nbsp; <br />mm&nbsp; &nbsp; number&nbsp; &nbsp; &nbsp;两位月&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;显示值:11<br />mon&nbsp; &nbsp; abbreviated 字符集表示&nbsp; &nbsp; &nbsp;显示值:11月,若是英文版,显示nov&nbsp; &nbsp; &nbsp;<br />month spelled out 字符集表示&nbsp; &nbsp; &nbsp; 显示值:11月,若是英文版,显示november <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />Day:&nbsp; &nbsp; &nbsp; <br />dd&nbsp; &nbsp; number&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;当月第几天&nbsp; &nbsp; &nbsp; &nbsp; 显示值:02<br />ddd&nbsp; &nbsp; number&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;当年第几天&nbsp; &nbsp; &nbsp; &nbsp; 显示值:02<br />dy&nbsp; &nbsp; abbreviated 当周第几天简写&nbsp; &nbsp; 显示值:星期五,若是英文版,显示fri<br />day&nbsp; &nbsp; spelled out&nbsp; &nbsp;当周第几天全写&nbsp; &nbsp; 显示值:星期五,若是英文版,显示friday&nbsp; &nbsp; &nbsp; &nbsp; <br />ddspth spelled out, ordinal twelfth <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />Hour:<br />hh&nbsp; &nbsp; two digits 12小时进制&nbsp; &nbsp; &nbsp; 显示值:01<br />hh24 two digits 24小时进制&nbsp; &nbsp; &nbsp; 显示值:13<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />Minute<br />mi&nbsp; &nbsp; two digits 60进制&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 显示值:45<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />Second:<br />ss&nbsp; &nbsp; two digits 60进制&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 显示值:25<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />其它<br />Q&nbsp; &nbsp; &nbsp;digit&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;季度&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 显示值:4<br />WW&nbsp; digit&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;当年第几周&nbsp; &nbsp; &nbsp; 显示值:44<br />W&nbsp; &nbsp; &nbsp;digit&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 当月第几周&nbsp; &nbsp; &nbsp;显示值:1<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />24小时格式下时间范围为： 0:00:00 - 23:59:59....&nbsp; &nbsp; &nbsp; <br />12小时格式下时间范围为： 1:00:00 - 12:59:59 ....</div></div>
<p>1. 日期和字符转换函数用法（to_date,to_char）</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">to_char</span><span style="color: Olive;">(</span><span style="color: Blue;">sysdate</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">yyyy-mm-dd hh24:mi:ss</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">as</span><span style="color: Gray;"> </span><span style="color: Blue;">nowTime</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">dual</span><span style="color: Gray;">;&nbsp; &nbsp;//日期转化为字符串&nbsp; &nbsp;<br /></span><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">to_char</span><span style="color: Olive;">(</span><span style="color: Blue;">sysdate</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">yyyy</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">as</span><span style="color: Gray;"> </span><span style="color: Blue;">nowYear</span><span style="color: Gray;">&nbsp; &nbsp;</span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">dual</span><span style="color: Gray;">;&nbsp; &nbsp;//获取时间的年&nbsp; &nbsp;<br /></span><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">to_char</span><span style="color: Olive;">(</span><span style="color: Blue;">sysdate</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">mm</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">as</span><span style="color: Gray;"> </span><span style="color: Blue;">nowMonth</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">dual</span><span style="color: Gray;">;&nbsp; &nbsp;//获取时间的月&nbsp; &nbsp;<br /></span><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">to_char</span><span style="color: Olive;">(</span><span style="color: Blue;">sysdate</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">dd</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">as</span><span style="color: Gray;"> </span><span style="color: Blue;">nowDay</span><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">dual</span><span style="color: Gray;">;&nbsp; &nbsp;//获取时间的日&nbsp; &nbsp;<br /></span><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">to_char</span><span style="color: Olive;">(</span><span style="color: Blue;">sysdate</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">hh24</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">as</span><span style="color: Gray;"> </span><span style="color: Blue;">nowHour</span><span style="color: Gray;">&nbsp; &nbsp;</span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">dual</span><span style="color: Gray;">;&nbsp; &nbsp;//获取时间的时&nbsp; &nbsp;<br /></span><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">to_char</span><span style="color: Olive;">(</span><span style="color: Blue;">sysdate</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">mi</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">as</span><span style="color: Gray;"> </span><span style="color: Blue;">nowMinute</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">dual</span><span style="color: Gray;">;&nbsp; &nbsp;//获取时间的分&nbsp; &nbsp;<br /></span><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">to_char</span><span style="color: Olive;">(</span><span style="color: Blue;">sysdate</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">ss</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">as</span><span style="color: Gray;"> </span><span style="color: Blue;">nowSecond</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">dual</span><span style="color: Gray;">;&nbsp; &nbsp;//获取时间的秒<br /></span><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">to_date</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">2004-05-07 13:23:44</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">yyyy-mm-dd hh24:mi:ss</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">dual</span><span style="color: Gray;">//</span></div></div>
<p>2. </p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">to_char</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: Blue;">to_date</span><span style="color: Olive;">(</span><span style="color: Maroon;">222</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">J</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">Jsp</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">dual</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; //显示</span><span style="color: Blue;">Two</span><span style="color: Gray;"> </span><span style="color: Blue;">Hundred</span><span style="color: Gray;"> </span><span style="color: Blue;">Twenty</span><span style="color: Gray;">-</span><span style="color: Blue;">Two</span></div></div>
<p>3.求某天是星期几</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">to_char</span><span style="color: Olive;">(</span><span style="color: Blue;">to_date</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">2002-08-26</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">yyyy-mm-dd</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">day</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">dual</span><span style="color: Gray;">;//星期一<br /></span><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">to_char</span><span style="color: Olive;">(</span><span style="color: Blue;">to_date</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">2002-08-26</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">yyyy-mm-dd</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">day</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">NLS_DATE_LANGUAGE = American</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">dual</span><span style="color: Gray;">;<br />//</span><span style="color: Blue;">monday</span><span style="color: Gray;"><br />&nbsp;<br /></span><span style="color: Green;">ALTER</span><span style="color: Gray;"> </span><span style="color: Green;">SESSION</span><span style="color: Gray;"> </span><span style="color: Green;">SET</span><span style="color: Gray;"> </span><span style="color: Blue;">NLS_DATE_LANGUAGE</span><span style="color: Gray;">=</span><span style="color: #8b0000;">'</span><span style="color: Red;">AMERICAN</span><span style="color: #8b0000;">'</span><span style="color: Gray;">;//设置日期语言<br /></span><span style="color: Blue;">TO_DATE</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">2002-08-26</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">YYYY-mm-dd</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">NLS_DATE_LANGUAGE = American</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp;//也可以这样</span></div></div>
<p>4. 两个日期间的天数      </p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">floor</span><span style="color: Olive;">(</span><span style="color: Blue;">sysdate</span><span style="color: Gray;"> - </span><span style="color: Blue;">to_date</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">20020405</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">yyyymmdd</span><span style="color: #8b0000;">'</span><span style="color: Olive;">))</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">dual</span><span style="color: Gray;">;</span></div></div>
<p>5. 时间为null的用法</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">id</span><span style="color: Gray;">, </span><span style="color: Blue;">active_date</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">table1</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; <br /></span><span style="color: Green;">UNION</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; <br /></span><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Maroon;">1</span><span style="color: Gray;">, </span><span style="color: Blue;">TO_DATE</span><span style="color: Olive;">(</span><span style="color: Green;">null</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">dual</span><span style="color: Gray;">; //注意要用</span><span style="color: Blue;">TO_DATE</span><span style="color: Olive;">(</span><span style="color: Green;">null</span><span style="color: Olive;">)</span></div></div>
<p>6.月份差</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Blue;">a_date</span><span style="color: Gray;"> </span><span style="color: #00008b;">between</span><span style="color: Gray;"> </span><span style="color: Blue;">to_date</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">20011201</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">yyyymmdd</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">and</span><span style="color: Gray;"> </span><span style="color: Blue;">to_date</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">20011231</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">yyyymmdd</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; //那么</span><span style="color: Maroon;">12</span><span style="color: Gray;">月</span><span style="color: Maroon;">31</span><span style="color: Gray;">号中午</span><span style="color: Maroon;">12</span><span style="color: Gray;">点之后和</span><span style="color: Maroon;">12</span><span style="color: Gray;">月</span><span style="color: Maroon;">1</span><span style="color: Gray;">号的</span><span style="color: Maroon;">12</span><span style="color: Gray;">点之前是不包含在这个范围之内的。&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; //所以，当时间需要精确的时候，觉得</span><span style="color: Blue;">to_char</span><span style="color: Gray;">还是必要的</span></div></div>
<p>7. 日期格式冲突问题</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Gray;">//输入的格式要看你安装的</span><span style="color: Blue;">ORACLE</span><span style="color: Gray;">字符集的类型, 比如: </span><span style="color: Blue;">US7ASCII</span><span style="color: Gray;">, </span><span style="color: Green;">date</span><span style="color: Gray;">格式的类型就是: </span><span style="color: #8b0000;">'</span><span style="color: Red;">01-Jan-01</span><span style="color: #8b0000;">'</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; &nbsp;</span><span style="color: Green;">alter</span><span style="color: Gray;"> </span><span style="color: #00008b;">system</span><span style="color: Gray;"> </span><span style="color: Green;">set</span><span style="color: Gray;"> </span><span style="color: Blue;">NLS_DATE_LANGUAGE</span><span style="color: Gray;"> = </span><span style="color: Blue;">American</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; &nbsp;</span><span style="color: Green;">alter</span><span style="color: Gray;"> </span><span style="color: Green;">session</span><span style="color: Gray;"> </span><span style="color: Green;">set</span><span style="color: Gray;"> </span><span style="color: Blue;">NLS_DATE_LANGUAGE</span><span style="color: Gray;"> = </span><span style="color: Blue;">American</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; &nbsp;//或者在</span><span style="color: Blue;">to_date</span><span style="color: Gray;">中写&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; &nbsp;</span><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">to_char</span><span style="color: Olive;">(</span><span style="color: Blue;">to_date</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">2002-08-26</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">yyyy-mm-dd</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">day</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">NLS_DATE_LANGUAGE = American</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">dual</span><span style="color: Gray;">;&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; &nbsp;//注意我这只是举了</span><span style="color: Blue;">NLS_DATE_LANGUAGE</span><span style="color: Gray;">，当然还有很多，&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; &nbsp;//可查看&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; &nbsp;</span><span style="color: Green;">select</span><span style="color: Gray;"> * </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">nls_session_parameters</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; &nbsp;</span><span style="color: Green;">select</span><span style="color: Gray;"> * </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">V</span><span style="color: Gray;">$</span><span style="color: Blue;">NLS_PARAMETERS</span></div></div>
<p>8.      </p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: #00008b;">count</span><span style="color: Olive;">(</span><span style="color: Gray;">*</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">rownum</span><span style="color: Gray;">-</span><span style="color: Maroon;">1</span><span style="color: Gray;"> </span><span style="color: Blue;">rnum</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; &nbsp; &nbsp; </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">all_objects</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; &nbsp; &nbsp; </span><span style="color: Green;">where</span><span style="color: Gray;"> </span><span style="color: Blue;">rownum</span><span style="color: Gray;"> &lt;= </span><span style="color: Blue;">to_date</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">2002-02-28</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">yyyy-mm-dd</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> - </span><span style="color: Blue;">to_date</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">2002-&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; &nbsp; &nbsp; 02-01</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">yyyy-mm-dd</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">+</span><span style="color: Maroon;">1</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; &nbsp; &nbsp;</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; </span><span style="color: Green;">where</span><span style="color: Gray;"> </span><span style="color: Blue;">to_char</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: Blue;">to_date</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">2002-02-01</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">yyyy-mm-dd</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">+</span><span style="color: Blue;">rnum</span><span style="color: Gray;">-</span><span style="color: Maroon;">1</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">D</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">not</span><span style="color: Gray;"> </span><span style="color: Green;">in</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: #8b0000;">'</span><span style="color: Red;">1</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">7</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; <br />&nbsp;&nbsp; //查找</span><span style="color: Maroon;">2002</span><span style="color: Gray;">-</span><span style="color: Maroon;">02</span><span style="color: Gray;">-</span><span style="color: Maroon;">28</span><span style="color: Gray;">至</span><span style="color: Maroon;">2002</span><span style="color: Gray;">-</span><span style="color: Maroon;">02</span><span style="color: Gray;">-</span><span style="color: Maroon;">01</span><span style="color: Gray;">间除星期一和七的天数&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; //在前后分别调用</span><span style="color: Blue;">DBMS_UTILITY</span><span style="color: Gray;">.</span><span style="color: Blue;">GET_TIME</span><span style="color: Gray;">, 让后将结果相减</span><span style="color: Olive;">(</span><span style="color: Gray;">得到的是</span><span style="color: Maroon;">1</span><span style="color: Gray;">/</span><span style="color: Maroon;">100</span><span style="color: Gray;">秒, 而不是毫秒</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span></div></div>
<p><span id="more-219"></span><br />
9. 查找月份</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">months_between</span><span style="color: Olive;">(</span><span style="color: Blue;">to_date</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">01-31-1999</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">MM-DD-YYYY</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">,</span><span style="color: Blue;">to_date</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">12-31-1998</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">MM-DD-YYYY</span><span style="color: #8b0000;">'</span><span style="color: Olive;">))</span><span style="color: Gray;"> </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">MONTHS</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Green;">FROM</span><span style="color: Gray;"> </span><span style="color: Blue;">DUAL</span><span style="color: Gray;">;&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; &nbsp;</span><span style="color: Maroon;">1</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; </span><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">months_between</span><span style="color: Olive;">(</span><span style="color: Blue;">to_date</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">02-01-1999</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">MM-DD-YYYY</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">,</span><span style="color: Blue;">to_date</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">12-31-1998</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">MM-DD-YYYY</span><span style="color: #8b0000;">'</span><span style="color: Olive;">))</span><span style="color: Gray;"> </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">MONTHS</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Green;">FROM</span><span style="color: Gray;"> </span><span style="color: Blue;">DUAL</span><span style="color: Gray;">;&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; &nbsp;</span><span style="color: Maroon;">1.03225806451613</span></div></div>
<p>10. Next_day的用法</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Blue;">Next_day</span><span style="color: Olive;">(</span><span style="color: Green;">date</span><span style="color: Gray;">, </span><span style="color: Green;">day</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;</span><span style="color: Blue;">Monday</span><span style="color: Gray;">-</span><span style="color: Blue;">Sunday</span><span style="color: Gray;">, </span><span style="color: Green;">for</span><span style="color: Gray;"> </span><span style="color: Blue;">format</span><span style="color: Gray;"> </span><span style="color: Blue;">code</span><span style="color: Gray;"> </span><span style="color: Green;">DAY</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; &nbsp;</span><span style="color: Blue;">Mon</span><span style="color: Gray;">-</span><span style="color: Blue;">Sun</span><span style="color: Gray;">, </span><span style="color: Green;">for</span><span style="color: Gray;"> </span><span style="color: Blue;">format</span><span style="color: Gray;"> </span><span style="color: Blue;">code</span><span style="color: Gray;"> </span><span style="color: Blue;">DY</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; &nbsp;</span><span style="color: Maroon;">1</span><span style="color: Gray;">-</span><span style="color: Maroon;">7</span><span style="color: Gray;">, </span><span style="color: Green;">for</span><span style="color: Gray;"> </span><span style="color: Blue;">format</span><span style="color: Gray;"> </span><span style="color: Blue;">code</span><span style="color: Gray;"> </span><span style="color: Blue;">D</span></div></div>
<p>11</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">to_char</span><span style="color: Olive;">(</span><span style="color: Blue;">sysdate</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">hh:mi:ss</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">TIME</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">all_objects</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; //注意：第一条记录的</span><span style="color: Green;">TIME</span><span style="color: Gray;"> 与最后一行是一样的&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; //可以建立一个函数来处理这个问题&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; </span><span style="color: Green;">create</span><span style="color: Gray;"> </span><span style="color: Green;">or</span><span style="color: Gray;"> </span><span style="color: Blue;">replace</span><span style="color: Gray;"> </span><span style="color: Green;">function</span><span style="color: Gray;"> </span><span style="color: Blue;">sys_date</span><span style="color: Gray;"> </span><span style="color: Green;">return</span><span style="color: Gray;"> </span><span style="color: Green;">date</span><span style="color: Gray;"> </span><span style="color: Green;">is</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; </span><span style="color: Green;">begin</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; </span><span style="color: Green;">return</span><span style="color: Gray;"> </span><span style="color: Blue;">sysdate</span><span style="color: Gray;">;&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; </span><span style="color: Green;">end</span><span style="color: Gray;">;&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; <br />&nbsp;&nbsp; </span><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">to_char</span><span style="color: Olive;">(</span><span style="color: Blue;">sys_date</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">hh:mi:ss</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">all_objects</span><span style="color: Gray;">;</span></div></div>
<p>12.获得小时数</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Gray;">//</span><span style="color: #00008b;">extract</span><span style="color: Olive;">()</span><span style="color: Gray;">找出日期或间隔值的字段值<br />&nbsp;&nbsp; &nbsp;</span><span style="color: Green;">SELECT</span><span style="color: Gray;"> </span><span style="color: #00008b;">EXTRACT</span><span style="color: Olive;">(</span><span style="color: Green;">HOUR</span><span style="color: Gray;"> </span><span style="color: Green;">FROM</span><span style="color: Gray;"> </span><span style="color: Green;">TIMESTAMP</span><span style="color: Gray;"> </span><span style="color: #8b0000;">'</span><span style="color: Red;">2001-02-16 2:38:40</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">offer</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; &nbsp;</span><span style="color: Green;">SQL</span><span style="color: Gray;">&gt; </span><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">sysdate</span><span style="color: Gray;"> ,</span><span style="color: Blue;">to_char</span><span style="color: Olive;">(</span><span style="color: Blue;">sysdate</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">hh</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">dual</span><span style="color: Gray;">;&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;</span><span style="color: Blue;">SYSDATE</span><span style="color: Gray;"> </span><span style="color: Blue;">TO_CHAR</span><span style="color: Olive;">(</span><span style="color: Blue;">SYSDATE</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">HH</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; &nbsp;//------------------</span><span style="color: #ffa500;">-- ---------------------&nbsp; &nbsp; &nbsp; </span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp;//</span><span style="color: Maroon;">2003</span><span style="color: Gray;">-</span><span style="color: Maroon;">10</span><span style="color: Gray;">-</span><span style="color: Maroon;">13</span><span style="color: Gray;"> </span><span style="color: Maroon;">19</span><span style="color: Gray;">:</span><span style="color: Maroon;">35</span><span style="color: Gray;">:</span><span style="color: Maroon;">21</span><span style="color: Gray;"> </span><span style="color: Maroon;">07</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;</span><span style="color: Green;">SQL</span><span style="color: Gray;">&gt; </span><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">sysdate</span><span style="color: Gray;"> ,</span><span style="color: Blue;">to_char</span><span style="color: Olive;">(</span><span style="color: Blue;">sysdate</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">hh24</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">dual</span><span style="color: Gray;">;&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;</span><span style="color: Blue;">SYSDATE</span><span style="color: Gray;"> </span><span style="color: Blue;">TO_CHAR</span><span style="color: Olive;">(</span><span style="color: Blue;">SYSDATE</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">HH24</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; &nbsp;//------------------</span><span style="color: #ffa500;">-- -----------------------&nbsp; &nbsp; &nbsp; </span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp;//</span><span style="color: Maroon;">2003</span><span style="color: Gray;">-</span><span style="color: Maroon;">10</span><span style="color: Gray;">-</span><span style="color: Maroon;">13</span><span style="color: Gray;"> </span><span style="color: Maroon;">19</span><span style="color: Gray;">:</span><span style="color: Maroon;">35</span><span style="color: Gray;">:</span><span style="color: Maroon;">21</span><span style="color: Gray;"> </span><span style="color: Maroon;">19</span></div></div>
<p>13.年月日的处理</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">older_date</span><span style="color: Gray;">,&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">newer_date</span><span style="color: Gray;">,&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">years</span><span style="color: Gray;">,&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">months</span><span style="color: Gray;">,&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">abs</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Blue;">trunc</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">newer_date</span><span style="color: Gray;">-&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">add_months</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: Blue;">older_date</span><span style="color: Gray;">,</span><span style="color: Blue;">years</span><span style="color: Gray;">*</span><span style="color: Maroon;">12</span><span style="color: Gray;">+</span><span style="color: Blue;">months</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Blue;">days</span><span style="color: Gray;"> <br />&nbsp;&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: Green;">select</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Blue;">trunc</span><span style="color: Olive;">(</span><span style="color: Blue;">months_between</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: Blue;">newer_date</span><span style="color: Gray;">, </span><span style="color: Blue;">older_date</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">/</span><span style="color: Maroon;">12</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Blue;">YEARS</span><span style="color: Gray;">,&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #00008b;">mod</span><span style="color: Olive;">(</span><span style="color: Blue;">trunc</span><span style="color: Olive;">(</span><span style="color: Blue;">months_between</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: Blue;">newer_date</span><span style="color: Gray;">, </span><span style="color: Blue;">older_date</span><span style="color: Gray;"> </span><span style="color: Olive;">))</span><span style="color: Gray;">,</span><span style="color: Maroon;">12</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Blue;">MONTHS</span><span style="color: Gray;">,&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Blue;">newer_date</span><span style="color: Gray;">,&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Blue;">older_date</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: Gray;"> <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">hiredate</span><span style="color: Gray;"> </span><span style="color: Blue;">older_date</span><span style="color: Gray;">, </span><span style="color: Blue;">add_months</span><span style="color: Olive;">(</span><span style="color: Blue;">hiredate</span><span style="color: Gray;">,</span><span style="color: Blue;">rownum</span><span style="color: Olive;">)</span><span style="color: Gray;">+</span><span style="color: Blue;">rownum</span><span style="color: Gray;"> </span><span style="color: Blue;">newer_date</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">emp</span><span style="color: Gray;"> <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; &nbsp; &nbsp;</span><span style="color: Olive;">)</span></div></div>
<p>14.处理月份天数不定的办法</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">to_char</span><span style="color: Olive;">(</span><span style="color: Blue;">add_months</span><span style="color: Olive;">(</span><span style="color: Blue;">last_day</span><span style="color: Olive;">(</span><span style="color: Blue;">sysdate</span><span style="color: Olive;">)</span><span style="color: Gray;"> +</span><span style="color: Maroon;">1</span><span style="color: Gray;">, -</span><span style="color: Maroon;">2</span><span style="color: Olive;">)</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">yyyymmdd</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">,</span><span style="color: Blue;">last_day</span><span style="color: Olive;">(</span><span style="color: Blue;">sysdate</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">dual</span></div></div>
<p>16.找出今年的天数</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">add_months</span><span style="color: Olive;">(</span><span style="color: Blue;">trunc</span><span style="color: Olive;">(</span><span style="color: Blue;">sysdate</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">year</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">, </span><span style="color: Maroon;">12</span><span style="color: Olive;">)</span><span style="color: Gray;"> - </span><span style="color: Blue;">trunc</span><span style="color: Olive;">(</span><span style="color: Blue;">sysdate</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">year</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">dual</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp;<br />&nbsp;<br />//闰年的处理方法 <br /></span><span style="color: Blue;">to_char</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: Blue;">last_day</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: Blue;">to_date</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">02</span><span style="color: #8b0000;">'</span><span style="color: Gray;">&nbsp; &nbsp; | | :</span><span style="color: Green;">year</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">mmyyyy</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">dd</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; <br />//如果是</span><span style="color: Maroon;">28</span><span style="color: Gray;">就不是闰年</span></div></div>
<p>17.yyyy与rrrr的区别</p>
<div class="hl-surround"><div class="hl-main"><span style="color: #8b0000;">'</span><span style="color: Red;">YYYY99 TO_C&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; ------- ----&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; yyyy 99 0099&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; rrrr 99 1999&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; yyyy 01 0001&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; rrrr 01 2001</span></div></div>
<p>18.不同时区的处理</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">to_char</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: Blue;">NEW_TIME</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: Blue;">sysdate</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">GMT</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">EST</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">dd/mm/yyyy hh:mi:ss</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> ,</span><span style="color: Blue;">sysdate</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">dual</span><span style="color: Gray;">;</span></div></div>
<p>19.5秒钟一个间隔</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">Select</span><span style="color: Gray;"> </span><span style="color: Blue;">TO_DATE</span><span style="color: Olive;">(</span><span style="color: Blue;">FLOOR</span><span style="color: Olive;">(</span><span style="color: Blue;">TO_CHAR</span><span style="color: Olive;">(</span><span style="color: Blue;">sysdate</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">SSSSS</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">/</span><span style="color: Maroon;">300</span><span style="color: Olive;">)</span><span style="color: Gray;"> * </span><span style="color: Maroon;">300</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">SSSSS</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> ,</span><span style="color: Blue;">TO_CHAR</span><span style="color: Olive;">(</span><span style="color: Blue;">sysdate</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">SSSSS</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">dual</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp;<br />&nbsp;<br />&nbsp;&nbsp; //</span><span style="color: Maroon;">2002</span><span style="color: Gray;">-</span><span style="color: Maroon;">11</span><span style="color: Gray;">-</span><span style="color: Maroon;">1</span><span style="color: Gray;"> </span><span style="color: Maroon;">9</span><span style="color: Gray;">:</span><span style="color: Maroon;">55</span><span style="color: Gray;">:</span><span style="color: Maroon;">00</span><span style="color: Gray;"> </span><span style="color: Maroon;">35786</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; //</span><span style="color: Blue;">SSSSS</span><span style="color: Gray;">表示</span><span style="color: Maroon;">5</span><span style="color: Gray;">位秒数</span></div></div>
<p>20.一年的第几天</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">TO_CHAR</span><span style="color: Olive;">(</span><span style="color: Blue;">SYSDATE</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">DDD</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">,</span><span style="color: Blue;">sysdate</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">dual</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;<br />&nbsp;&nbsp; //</span><span style="color: Maroon;">310</span><span style="color: Gray;"> </span><span style="color: Maroon;">2002</span><span style="color: Gray;">-</span><span style="color: Maroon;">11</span><span style="color: Gray;">-</span><span style="color: Maroon;">6</span><span style="color: Gray;"> </span><span style="color: Maroon;">10</span><span style="color: Gray;">:</span><span style="color: Maroon;">03</span><span style="color: Gray;">:</span><span style="color: Maroon;">51</span></div></div>
<p>21.计算小时,分,秒,毫秒</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">select</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; &nbsp; </span><span style="color: Blue;">Days</span><span style="color: Gray;">,&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; &nbsp; </span><span style="color: Blue;">A</span><span style="color: Gray;">,&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; &nbsp; </span><span style="color: Blue;">TRUNC</span><span style="color: Olive;">(</span><span style="color: Blue;">A</span><span style="color: Gray;">*</span><span style="color: Maroon;">24</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Blue;">Hours</span><span style="color: Gray;">,&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; &nbsp; </span><span style="color: Blue;">TRUNC</span><span style="color: Olive;">(</span><span style="color: Blue;">A</span><span style="color: Gray;">*</span><span style="color: Maroon;">24</span><span style="color: Gray;">*</span><span style="color: Maroon;">60</span><span style="color: Gray;"> - </span><span style="color: Maroon;">60</span><span style="color: Gray;">*</span><span style="color: Blue;">TRUNC</span><span style="color: Olive;">(</span><span style="color: Blue;">A</span><span style="color: Gray;">*</span><span style="color: Maroon;">24</span><span style="color: Olive;">))</span><span style="color: Gray;"> </span><span style="color: Blue;">Minutes</span><span style="color: Gray;">,&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; &nbsp; </span><span style="color: Blue;">TRUNC</span><span style="color: Olive;">(</span><span style="color: Blue;">A</span><span style="color: Gray;">*</span><span style="color: Maroon;">24</span><span style="color: Gray;">*</span><span style="color: Maroon;">60</span><span style="color: Gray;">*</span><span style="color: Maroon;">60</span><span style="color: Gray;"> - </span><span style="color: Maroon;">60</span><span style="color: Gray;">*</span><span style="color: Blue;">TRUNC</span><span style="color: Olive;">(</span><span style="color: Blue;">A</span><span style="color: Gray;">*</span><span style="color: Maroon;">24</span><span style="color: Gray;">*</span><span style="color: Maroon;">60</span><span style="color: Olive;">))</span><span style="color: Gray;"> </span><span style="color: Blue;">Seconds</span><span style="color: Gray;">,&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; &nbsp; </span><span style="color: Blue;">TRUNC</span><span style="color: Olive;">(</span><span style="color: Blue;">A</span><span style="color: Gray;">*</span><span style="color: Maroon;">24</span><span style="color: Gray;">*</span><span style="color: Maroon;">60</span><span style="color: Gray;">*</span><span style="color: Maroon;">60</span><span style="color: Gray;">*</span><span style="color: Maroon;">100</span><span style="color: Gray;"> - </span><span style="color: Maroon;">100</span><span style="color: Gray;">*</span><span style="color: Blue;">TRUNC</span><span style="color: Olive;">(</span><span style="color: Blue;">A</span><span style="color: Gray;">*</span><span style="color: Maroon;">24</span><span style="color: Gray;">*</span><span style="color: Maroon;">60</span><span style="color: Gray;">*</span><span style="color: Maroon;">60</span><span style="color: Olive;">))</span><span style="color: Gray;"> </span><span style="color: Blue;">mSeconds</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; &nbsp;</span><span style="color: Green;">from</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; &nbsp;</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; &nbsp; </span><span style="color: Green;">select</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; &nbsp; </span><span style="color: Blue;">trunc</span><span style="color: Olive;">(</span><span style="color: Blue;">sysdate</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Blue;">Days</span><span style="color: Gray;">,&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; &nbsp; </span><span style="color: Blue;">sysdate</span><span style="color: Gray;"> - </span><span style="color: Blue;">trunc</span><span style="color: Olive;">(</span><span style="color: Blue;">sysdate</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Blue;">A</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; &nbsp; </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">dual</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; </span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp;<br />&nbsp;<br />&nbsp;<br />&nbsp;&nbsp; </span><span style="color: Green;">select</span><span style="color: Gray;"> * </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">tabname</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; </span><span style="color: Green;">order</span><span style="color: Gray;"> </span><span style="color: Green;">by</span><span style="color: Gray;"> </span><span style="color: Blue;">decode</span><span style="color: Olive;">(</span><span style="color: Blue;">mode</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">FIFO</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Maroon;">1</span><span style="color: Gray;">,-</span><span style="color: Maroon;">1</span><span style="color: Olive;">)</span><span style="color: Gray;">*</span><span style="color: Blue;">to_char</span><span style="color: Olive;">(</span><span style="color: Blue;">rq</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">yyyymmddhh24miss</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; <br />&nbsp;&nbsp; //&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; //</span><span style="color: Blue;">floor</span><span style="color: Olive;">((</span><span style="color: Blue;">date2</span><span style="color: Gray;">-</span><span style="color: Blue;">date1</span><span style="color: Olive;">)</span><span style="color: Gray;"> /</span><span style="color: Maroon;">365</span><span style="color: Olive;">)</span><span style="color: Gray;"> 作为年&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; //</span><span style="color: Blue;">floor</span><span style="color: Olive;">((</span><span style="color: Blue;">date2</span><span style="color: Gray;">-</span><span style="color: Blue;">date1</span><span style="color: Gray;">, </span><span style="color: Maroon;">365</span><span style="color: Olive;">)</span><span style="color: Gray;"> /</span><span style="color: Maroon;">30</span><span style="color: Olive;">)</span><span style="color: Gray;"> 作为月&nbsp; &nbsp; &nbsp; <br />&nbsp;&nbsp; //</span><span style="color: Blue;">d</span><span style="color: Olive;">(</span><span style="color: #00008b;">mod</span><span style="color: Olive;">(</span><span style="color: Blue;">date2</span><span style="color: Gray;">-</span><span style="color: Blue;">date1</span><span style="color: Gray;">, </span><span style="color: Maroon;">365</span><span style="color: Olive;">)</span><span style="color: Gray;">, </span><span style="color: Maroon;">30</span><span style="color: Olive;">)</span><span style="color: Gray;">作为日.</span></div></div>
<p>23.next_day函数      返回下个星期的日期,day为1-7或星期日-星期六,1表示星期日<br />
   next_day(sysdate,6)是从当前开始下一个星期五。后面的数字是从星期日开始算起。<br />
   1 2 3 4 5 6 7<br />
   日 一 二 三 四 五 六<br />
   &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; </p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">select</span><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">(</span><span style="color: Blue;">sysdate</span><span style="color: Gray;">-</span><span style="color: Blue;">to_date</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">2003-12-03 12:55:45</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">yyyy-mm-dd hh24:mi:ss</span><span style="color: #8b0000;">'</span><span style="color: Olive;">))</span><span style="color: Gray;">*</span><span style="color: Maroon;">24</span><span style="color: Gray;">*</span><span style="color: Maroon;">60</span><span style="color: Gray;">*</span><span style="color: Maroon;">60</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">ddual</span><span style="color: Gray;"><br />&nbsp;&nbsp; //日期 返回的是天 然后 转换为</span><span style="color: Blue;">ss</span></div></div>
<p>24,round[舍入到最接近的日期](day:舍入到最接近的星期日)</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">sysdate</span><span style="color: Gray;"> </span><span style="color: Blue;">S1</span><span style="color: Gray;">,<br />&nbsp;&nbsp; </span><span style="color: Blue;">round</span><span style="color: Olive;">(</span><span style="color: Blue;">sysdate</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Blue;">S2</span><span style="color: Gray;"> ,<br />&nbsp;&nbsp; </span><span style="color: Blue;">round</span><span style="color: Olive;">(</span><span style="color: Blue;">sysdate</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">year</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">YEAR</span><span style="color: Gray;">,<br />&nbsp;&nbsp; </span><span style="color: Blue;">round</span><span style="color: Olive;">(</span><span style="color: Blue;">sysdate</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">month</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">MONTH</span><span style="color: Gray;"> ,<br />&nbsp;&nbsp; </span><span style="color: Blue;">round</span><span style="color: Olive;">(</span><span style="color: Blue;">sysdate</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">day</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">DAY</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">dual</span></div></div>
<p>25,trunc[截断到最接近的日期,单位为天] ,返回的是日期类型</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">sysdate</span><span style="color: Gray;"> </span><span style="color: Blue;">S1</span><span style="color: Gray;">,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp; </span><span style="color: Blue;">trunc</span><span style="color: Olive;">(</span><span style="color: Blue;">sysdate</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Blue;">S2</span><span style="color: Gray;">,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//返回当前日期,无时分秒<br />&nbsp;&nbsp; &nbsp; </span><span style="color: Blue;">trunc</span><span style="color: Olive;">(</span><span style="color: Blue;">sysdate</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">year</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">YEAR</span><span style="color: Gray;">,&nbsp; &nbsp; &nbsp; &nbsp; //返回当前年的</span><span style="color: Maroon;">1</span><span style="color: Gray;">月</span><span style="color: Maroon;">1</span><span style="color: Gray;">日,无时分秒<br />&nbsp;&nbsp; &nbsp; </span><span style="color: Blue;">trunc</span><span style="color: Olive;">(</span><span style="color: Blue;">sysdate</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">month</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">MONTH</span><span style="color: Gray;"> ,&nbsp; &nbsp; &nbsp;//返回当前月的</span><span style="color: Maroon;">1</span><span style="color: Gray;">日,无时分秒<br />&nbsp;&nbsp; &nbsp; </span><span style="color: Blue;">trunc</span><span style="color: Olive;">(</span><span style="color: Blue;">sysdate</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">day</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">DAY</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//返回当前星期的星期天,无时分秒<br />&nbsp;&nbsp; </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">dual</span></div></div>
<p>26,返回日期列表中最晚日期</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">greatest</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">01-1月-04</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">04-1月-04</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">10-2月-04</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">dual</span></div></div>
<p>27.计算时间差</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Gray;">//注:</span><span style="color: Blue;">oracle</span><span style="color: Gray;">时间差是以天数为单位,所以换算成年月,<br /></span><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">floor</span><span style="color: Olive;">(</span><span style="color: Blue;">to_number</span><span style="color: Olive;">(</span><span style="color: Blue;">sysdate</span><span style="color: Gray;">-</span><span style="color: Blue;">to_date</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">2007-11-02 15:55:03</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">yyyy-mm-dd hh24:mi:ss</span><span style="color: #8b0000;">'</span><span style="color: Olive;">))</span><span style="color: Gray;">/</span><span style="color: Maroon;">365</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">as</span><span style="color: Gray;"> </span><span style="color: Blue;">spanYears</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">dual</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; //时间差-年<br /></span><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">ceil</span><span style="color: Olive;">(</span><span style="color: Blue;">moths_between</span><span style="color: Olive;">(</span><span style="color: Blue;">sysdate</span><span style="color: Gray;">-</span><span style="color: Blue;">to_date</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">2007-11-02 15:55:03</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">yyyy-mm-dd hh24:mi:ss</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)))</span><span style="color: Gray;"> </span><span style="color: Green;">as</span><span style="color: Gray;"> </span><span style="color: Blue;">spanMonths</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">dual</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; //时间差-月<br /></span><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">floor</span><span style="color: Olive;">(</span><span style="color: Blue;">to_number</span><span style="color: Olive;">(</span><span style="color: Blue;">sysdate</span><span style="color: Gray;">-</span><span style="color: Blue;">to_date</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">2007-11-02 15:55:03</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">yyyy-mm-dd hh24:mi:ss</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)))</span><span style="color: Gray;"> </span><span style="color: Green;">as</span><span style="color: Gray;"> </span><span style="color: Blue;">spanDays</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">dual</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//时间差-天<br /></span><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">floor</span><span style="color: Olive;">(</span><span style="color: Blue;">to_number</span><span style="color: Olive;">(</span><span style="color: Blue;">sysdate</span><span style="color: Gray;">-</span><span style="color: Blue;">to_date</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">2007-11-02 15:55:03</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">yyyy-mm-dd hh24:mi:ss</span><span style="color: #8b0000;">'</span><span style="color: Olive;">))</span><span style="color: Gray;">*</span><span style="color: Maroon;">24</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">as</span><span style="color: Gray;"> </span><span style="color: Blue;">spanHours</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">dual</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//时间差-时<br /></span><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">floor</span><span style="color: Olive;">(</span><span style="color: Blue;">to_number</span><span style="color: Olive;">(</span><span style="color: Blue;">sysdate</span><span style="color: Gray;">-</span><span style="color: Blue;">to_date</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">2007-11-02 15:55:03</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">yyyy-mm-dd hh24:mi:ss</span><span style="color: #8b0000;">'</span><span style="color: Olive;">))</span><span style="color: Gray;">*</span><span style="color: Maroon;">24</span><span style="color: Gray;">*</span><span style="color: Maroon;">60</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">as</span><span style="color: Gray;"> </span><span style="color: Blue;">spanMinutes</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">dual</span><span style="color: Gray;">&nbsp; &nbsp; //时间差-分<br /></span><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">floor</span><span style="color: Olive;">(</span><span style="color: Blue;">to_number</span><span style="color: Olive;">(</span><span style="color: Blue;">sysdate</span><span style="color: Gray;">-</span><span style="color: Blue;">to_date</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">2007-11-02 15:55:03</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">yyyy-mm-dd hh24:mi:ss</span><span style="color: #8b0000;">'</span><span style="color: Olive;">))</span><span style="color: Gray;">*</span><span style="color: Maroon;">24</span><span style="color: Gray;">*</span><span style="color: Maroon;">60</span><span style="color: Gray;">*</span><span style="color: Maroon;">60</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">as</span><span style="color: Gray;"> </span><span style="color: Blue;">spanSeconds</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">dual</span><span style="color: Gray;"> //时间差-秒</span></div></div>
<p>28.更新时间</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Gray;">//注:</span><span style="color: Blue;">oracle</span><span style="color: Gray;">时间加减是以天数为单位,设改变量为</span><span style="color: Blue;">n</span><span style="color: Gray;">,所以换算成年月,日<br /></span><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">to_char</span><span style="color: Olive;">(</span><span style="color: Blue;">sysdate</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">yyyy-mm-dd hh24:mi:ss</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">,</span><span style="color: Blue;">to_char</span><span style="color: Olive;">(</span><span style="color: Blue;">sysdate</span><span style="color: Gray;">+</span><span style="color: Blue;">n</span><span style="color: Gray;">*</span><span style="color: Maroon;">365</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">yyyy-mm-dd hh24:mi:ss</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">as</span><span style="color: Gray;"> </span><span style="color: Blue;">newTime</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">dual</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; //改变时间-年<br /></span><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">to_char</span><span style="color: Olive;">(</span><span style="color: Blue;">sysdate</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">yyyy-mm-dd hh24:mi:ss</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">,</span><span style="color: Blue;">add_months</span><span style="color: Olive;">(</span><span style="color: Blue;">sysdate</span><span style="color: Gray;">,</span><span style="color: Blue;">n</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">as</span><span style="color: Gray;"> </span><span style="color: Blue;">newTime</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">dual</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//改变时间-月<br /></span><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">to_char</span><span style="color: Olive;">(</span><span style="color: Blue;">sysdate</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">yyyy-mm-dd hh24:mi:ss</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">,</span><span style="color: Blue;">to_char</span><span style="color: Olive;">(</span><span style="color: Blue;">sysdate</span><span style="color: Gray;">+</span><span style="color: Blue;">n</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">yyyy-mm-dd hh24:mi:ss</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">as</span><span style="color: Gray;"> </span><span style="color: Blue;">newTime</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">dual</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //改变时间-日<br /></span><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">to_char</span><span style="color: Olive;">(</span><span style="color: Blue;">sysdate</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">yyyy-mm-dd hh24:mi:ss</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">,</span><span style="color: Blue;">to_char</span><span style="color: Olive;">(</span><span style="color: Blue;">sysdate</span><span style="color: Gray;">+</span><span style="color: Blue;">n</span><span style="color: Gray;">/</span><span style="color: Maroon;">24</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">yyyy-mm-dd hh24:mi:ss</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">as</span><span style="color: Gray;"> </span><span style="color: Blue;">newTime</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">dual</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//改变时间-时<br /></span><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">to_char</span><span style="color: Olive;">(</span><span style="color: Blue;">sysdate</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">yyyy-mm-dd hh24:mi:ss</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">,</span><span style="color: Blue;">to_char</span><span style="color: Olive;">(</span><span style="color: Blue;">sysdate</span><span style="color: Gray;">+</span><span style="color: Blue;">n</span><span style="color: Gray;">/</span><span style="color: Maroon;">24</span><span style="color: Gray;">/</span><span style="color: Maroon;">60</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">yyyy-mm-dd hh24:mi:ss</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">as</span><span style="color: Gray;"> </span><span style="color: Blue;">newTime</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">dual</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; //改变时间-分<br /></span><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">to_char</span><span style="color: Olive;">(</span><span style="color: Blue;">sysdate</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">yyyy-mm-dd hh24:mi:ss</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">,</span><span style="color: Blue;">to_char</span><span style="color: Olive;">(</span><span style="color: Blue;">sysdate</span><span style="color: Gray;">+</span><span style="color: Blue;">n</span><span style="color: Gray;">/</span><span style="color: Maroon;">24</span><span style="color: Gray;">/</span><span style="color: Maroon;">60</span><span style="color: Gray;">/</span><span style="color: Maroon;">60</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">yyyy-mm-dd hh24:mi:ss</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">as</span><span style="color: Gray;"> </span><span style="color: Blue;">newTime</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">dual</span><span style="color: Gray;">&nbsp; &nbsp;//改变时间-秒</span></div></div>
<p>29.查找月的第一天,最后一天</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">SELECT</span><span style="color: Gray;"> </span><span style="color: Blue;">Trunc</span><span style="color: Olive;">(</span><span style="color: Blue;">Trunc</span><span style="color: Olive;">(</span><span style="color: Blue;">SYSDATE</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">MONTH</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> - </span><span style="color: Maroon;">1</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">MONTH</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Blue;">First_Day_Last_Month</span><span style="color: Gray;">,<br /></span><span style="color: Blue;">Trunc</span><span style="color: Olive;">(</span><span style="color: Blue;">SYSDATE</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">MONTH</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> - </span><span style="color: Maroon;">1</span><span style="color: Gray;"> / </span><span style="color: Maroon;">86400</span><span style="color: Gray;"> </span><span style="color: Blue;">Last_Day_Last_Month</span><span style="color: Gray;">,<br /></span><span style="color: Blue;">Trunc</span><span style="color: Olive;">(</span><span style="color: Blue;">SYSDATE</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">MONTH</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Blue;">First_Day_Cur_Month</span><span style="color: Gray;">,<br /></span><span style="color: Blue;">LAST_DAY</span><span style="color: Olive;">(</span><span style="color: Blue;">Trunc</span><span style="color: Olive;">(</span><span style="color: Blue;">SYSDATE</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">MONTH</span><span style="color: #8b0000;">'</span><span style="color: Olive;">))</span><span style="color: Gray;"> + </span><span style="color: Maroon;">1</span><span style="color: Gray;"> - </span><span style="color: Maroon;">1</span><span style="color: Gray;"> / </span><span style="color: Maroon;">86400</span><span style="color: Gray;"> </span><span style="color: Blue;">Last_Day_Cur_Month</span><span style="color: Gray;"><br /></span><span style="color: Green;">FROM</span><span style="color: Gray;"> </span><span style="color: Blue;">dual</span><span style="color: Gray;">;</span></div></div>
<p>三. 字符函数(可用于字面字符或数据库列)</p>
<p>1，字符串截取</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">substr</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">abcdef</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Maroon;">1</span><span style="color: Gray;">,</span><span style="color: Maroon;">3</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">dual</span></div></div>
<p>2,查找子串位置</p>
<div class="hl-surround"><div class="hl-main">select instr('abcfdgfdhd','fd') from dual</div></div>
<p>3,字符串连接</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: #8b0000;">'</span><span style="color: Red;">HELLO</span><span style="color: #8b0000;">'</span><span style="color: Gray;">||</span><span style="color: #8b0000;">'</span><span style="color: Red;">hello world</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">dual</span><span style="color: Gray;">;</span></div></div>
<p>4, 1)去掉字符串中的空格</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">ltrim</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;"> abc</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Blue;">s1</span><span style="color: Gray;">,<br /></span><span style="color: Blue;">rtrim</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">zhang </span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Blue;">s2</span><span style="color: Gray;">,<br /></span><span style="color: #00008b;">trim</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;"> zhang </span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Blue;">s3</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">dual</span></div></div>
<p>   2)去掉前导和后缀</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: #00008b;">trim</span><span style="color: Olive;">(</span><span style="color: Green;">leading</span><span style="color: Gray;"> </span><span style="color: Maroon;">9</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Maroon;">9998767999</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Blue;">s1</span><span style="color: Gray;">,<br /></span><span style="color: #00008b;">trim</span><span style="color: Olive;">(</span><span style="color: Green;">trailing</span><span style="color: Gray;"> </span><span style="color: Maroon;">9</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Maroon;">9998767999</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Blue;">s2</span><span style="color: Gray;">,<br /></span><span style="color: #00008b;">trim</span><span style="color: Olive;">(</span><span style="color: Maroon;">9</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Maroon;">9998767999</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Blue;">s3</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">dual</span><span style="color: Gray;">;</span></div></div>
<p>5,返回字符串首字母的Ascii值</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">ascii</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">a</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">dual</span></div></div>
<p>6,返回ascii值对应的字母</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">chr</span><span style="color: Olive;">(</span><span style="color: Maroon;">97</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">dual</span></div></div>
<p>7,计算字符串长度 </p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: #00008b;">length</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">abcdef</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">dual</span></div></div>
<p>8,initcap（首字母变大写） ,lower(变小写),upper(变大写)</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: #00008b;">lower</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">ABC</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Blue;">s1</span><span style="color: Gray;">, </span><span style="color: #00008b;">upper</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">def</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Blue;">s2</span><span style="color: Gray;">, </span><span style="color: Blue;">initcap</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">efg</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Blue;">s3</span><span style="color: Gray;"><br /></span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">dual</span><span style="color: Gray;">;</span></div></div>
<p>9,Replace</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">replace</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">abc</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">b</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">xy</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">dual</span><span style="color: Gray;">;</span></div></div>
<p>10,translate</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: #00008b;">translate</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">abc</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">b</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">xx</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">dual</span><span style="color: Gray;">; </span><span style="color: #ffa500;">-- x是1位</span></div></div>
<p>11,lpad [左添充] rpad [右填充](用于控制输出格式)</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">lpad</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">func</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Maroon;">15</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">=</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Blue;">s1</span><span style="color: Gray;">, </span><span style="color: Blue;">rpad</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">func</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Maroon;">15</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">-</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Blue;">s2</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">dual</span><span style="color: Gray;">;<br /></span><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">lpad</span><span style="color: Olive;">(</span><span style="color: Blue;">dname</span><span style="color: Gray;">,</span><span style="color: Maroon;">14</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">=</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">dept</span><span style="color: Gray;">;</span></div></div>
<p>12, decode[实现if ..then 逻辑]   注:第一个是表达式,最后一个是不满足任何一个条件的值</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">deptno</span><span style="color: Gray;">,</span><span style="color: Blue;">decode</span><span style="color: Olive;">(</span><span style="color: Blue;">deptno</span><span style="color: Gray;">,</span><span style="color: Maroon;">10</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">1</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Maroon;">20</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">2</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Maroon;">30</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">3</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">其他</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">dept</span><span style="color: Gray;">;<br />//例:<br /></span><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">seed</span><span style="color: Gray;">,</span><span style="color: Blue;">account_name</span><span style="color: Gray;">,</span><span style="color: Blue;">decode</span><span style="color: Olive;">(</span><span style="color: Blue;">seed</span><span style="color: Gray;">,</span><span style="color: Maroon;">111</span><span style="color: Gray;">,</span><span style="color: Maroon;">1000</span><span style="color: Gray;">,</span><span style="color: Maroon;">200</span><span style="color: Gray;">,</span><span style="color: Maroon;">2000</span><span style="color: Gray;">,</span><span style="color: Maroon;">0</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">t_userInfo</span><span style="color: Gray;">//如果</span><span style="color: Blue;">seed</span><span style="color: Gray;">为</span><span style="color: Maroon;">111</span><span style="color: Gray;">,则取</span><span style="color: Maroon;">1000</span><span style="color: Gray;">;为</span><span style="color: Maroon;">200</span><span style="color: Gray;">,取</span><span style="color: Maroon;">2000</span><span style="color: Gray;">;其它取</span><span style="color: Maroon;">0</span><span style="color: Gray;"><br /></span><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">seed</span><span style="color: Gray;">,</span><span style="color: Blue;">account_name</span><span style="color: Gray;">,</span><span style="color: Blue;">decode</span><span style="color: Olive;">(</span><span style="color: Blue;">sign</span><span style="color: Olive;">(</span><span style="color: Blue;">seed</span><span style="color: Gray;">-</span><span style="color: Maroon;">111</span><span style="color: Olive;">)</span><span style="color: Gray;">,</span><span style="color: Maroon;">1</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">big seed</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,-</span><span style="color: Maroon;">1</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">little seed</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">equal seed</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">t_userInfo</span><span style="color: Gray;">//如果</span><span style="color: Blue;">seed</span><span style="color: Gray;">&gt;</span><span style="color: Maroon;">111</span><span style="color: Gray;">,则显示大;为</span><span style="color: Maroon;">200</span><span style="color: Gray;">,则显示小;其它则显<br />&nbsp;<br />//示相等</span></div></div>
<p>13 case[实现switch ..case 逻辑]</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">SELECT</span><span style="color: Gray;"> </span><span style="color: Green;">CASE</span><span style="color: Gray;"> </span><span style="color: Blue;">X</span><span style="color: Gray;">-</span><span style="color: Blue;">FIELD</span><span style="color: Gray;"> <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">WHEN</span><span style="color: Gray;"> </span><span style="color: Blue;">X</span><span style="color: Gray;">-</span><span style="color: Blue;">FIELD</span><span style="color: Gray;"> &lt; </span><span style="color: Maroon;">40</span><span style="color: Gray;"> </span><span style="color: Green;">THEN</span><span style="color: Gray;"> </span><span style="color: #8b0000;">'</span><span style="color: Red;">X-FIELD 小于 40</span><span style="color: #8b0000;">'</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">WHEN</span><span style="color: Gray;"> </span><span style="color: Blue;">X</span><span style="color: Gray;">-</span><span style="color: Blue;">FIELD</span><span style="color: Gray;"> &lt; </span><span style="color: Maroon;">50</span><span style="color: Gray;"> </span><span style="color: Green;">THEN</span><span style="color: Gray;"> </span><span style="color: #8b0000;">'</span><span style="color: Red;">X-FIELD 小于 50</span><span style="color: #8b0000;">'</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">WHEN</span><span style="color: Gray;"> </span><span style="color: Blue;">X</span><span style="color: Gray;">-</span><span style="color: Blue;">FIELD</span><span style="color: Gray;"> &lt; </span><span style="color: Maroon;">60</span><span style="color: Gray;"> </span><span style="color: Green;">THEN</span><span style="color: Gray;"> </span><span style="color: #8b0000;">'</span><span style="color: Red;">X-FIELD 小于 60</span><span style="color: #8b0000;">'</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">ELSE</span><span style="color: Gray;"> </span><span style="color: #8b0000;">'</span><span style="color: Red;">UNBEKNOWN</span><span style="color: #8b0000;">'</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">END</span><span style="color: Gray;"><br />&nbsp;&nbsp; </span><span style="color: Green;">FROM</span><span style="color: Gray;"> </span><span style="color: Blue;">DUAL</span><span style="color: Gray;"> <br />&nbsp;&nbsp; <br />&nbsp;&nbsp; //注:</span><span style="color: Green;">CASE</span><span style="color: Gray;">语句在处理类似问题就显得非常灵活。当只是需要匹配少量数值时，用</span><span style="color: Blue;">Decode</span><span style="color: Gray;">更为简洁。</span></div></div>
<p>四.数字函数</p>
<p>1，取整函数（ceil 向上取整,floor 向下取整）</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">ceil</span><span style="color: Olive;">(</span><span style="color: Maroon;">66.6</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Blue;">N1</span><span style="color: Gray;">,</span><span style="color: Blue;">floor</span><span style="color: Olive;">(</span><span style="color: Maroon;">66.6</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Blue;">N2</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">dual</span><span style="color: Gray;">;</span></div></div>
<p>2, 取幂(power) 和 求平方根(sqrt)</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">power</span><span style="color: Olive;">(</span><span style="color: Maroon;">3</span><span style="color: Gray;">,</span><span style="color: Maroon;">2</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Blue;">N1</span><span style="color: Gray;">,</span><span style="color: Blue;">sqrt</span><span style="color: Olive;">(</span><span style="color: Maroon;">9</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Blue;">N2</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">dual</span><span style="color: Gray;">;</span></div></div>
<p>3,求余</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: #00008b;">mod</span><span style="color: Olive;">(</span><span style="color: Maroon;">9</span><span style="color: Gray;">,</span><span style="color: Maroon;">5</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">dual</span><span style="color: Gray;">;</span></div></div>
<p>4,返回固定小数位数 (round:四舍五入，trunc:直接截断)</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">round</span><span style="color: Olive;">(</span><span style="color: Maroon;">66.667</span><span style="color: Gray;">,</span><span style="color: Maroon;">2</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Blue;">N1</span><span style="color: Gray;">,</span><span style="color: Blue;">trunc</span><span style="color: Olive;">(</span><span style="color: Maroon;">66.667</span><span style="color: Gray;">,</span><span style="color: Maroon;">2</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Blue;">N2</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">dual</span><span style="color: Gray;">;</span></div></div>
<p>5,返回值的符号(正数返回为1,负数为-1)</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">sign</span><span style="color: Olive;">(</span><span style="color: Gray;">-</span><span style="color: Maroon;">32</span><span style="color: Olive;">)</span><span style="color: Gray;">,</span><span style="color: Blue;">sign</span><span style="color: Olive;">(</span><span style="color: Maroon;">293</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">dual</span><span style="color: Gray;">;</span></div></div>
<p>五.转换函数</p>
<p>1，to_char()[将日期和数字类型转换成字符类型]</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Gray;">//</span><span style="color: Maroon;">1</span><span style="color: Gray;">) <br /></span><span style="color: Green;">select</span><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">to_char</span><span style="color: Olive;">(</span><span style="color: Blue;">sysdate</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Blue;">s1</span><span style="color: Gray;">,<br />&nbsp;&nbsp; &nbsp;</span><span style="color: Blue;">to_char</span><span style="color: Olive;">(</span><span style="color: Blue;">sysdate</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">yyyy-mm-dd</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Blue;">s2</span><span style="color: Gray;">,<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Blue;">to_char</span><span style="color: Olive;">(</span><span style="color: Blue;">sysdate</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">yyyy</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Blue;">s3</span><span style="color: Gray;">,<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Blue;">to_char</span><span style="color: Olive;">(</span><span style="color: Blue;">sysdate</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">yyyy-mm-dd hh12:mi:ss</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Blue;">s4</span><span style="color: Gray;">,<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Blue;">to_char</span><span style="color: Olive;">(</span><span style="color: Blue;">sysdate</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">hh24:mi:ss</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Blue;">s5</span><span style="color: Gray;">,<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Blue;">to_char</span><span style="color: Olive;">(</span><span style="color: Blue;">sysdate</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">DAY</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Blue;">s6</span><span style="color: Gray;"> <br /></span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">dual</span><span style="color: Gray;">;<br />&nbsp;<br />&nbsp;&nbsp; //</span><span style="color: Maroon;">2</span><span style="color: Gray;">) <br /></span><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">sal</span><span style="color: Gray;">,</span><span style="color: Blue;">to_char</span><span style="color: Olive;">(</span><span style="color: Blue;">sal</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">＄99999</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Blue;">n1</span><span style="color: Gray;">,</span><span style="color: Blue;">to_char</span><span style="color: Olive;">(</span><span style="color: Blue;">sal</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">＄99,999</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Blue;">n2</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">emp</span></div></div>
<p>2, to_date()[将字符类型转换为日期类型] </p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">insert</span><span style="color: Gray;"> </span><span style="color: Green;">into</span><span style="color: Gray;"> </span><span style="color: Blue;">emp</span><span style="color: Olive;">(</span><span style="color: Blue;">empno</span><span style="color: Gray;">,</span><span style="color: Blue;">hiredate</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">values</span><span style="color: Olive;">(</span><span style="color: Maroon;">8000</span><span style="color: Gray;">,</span><span style="color: Blue;">to_date</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">2004-10-10</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">yyyy-mm-dd</span><span style="color: #8b0000;">'</span><span style="color: Olive;">))</span><span style="color: Gray;">;</span></div></div>
<p>3, to_number() 转换为数字类型</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">to_number</span><span style="color: Olive;">(</span><span style="color: Blue;">to_char</span><span style="color: Olive;">(</span><span style="color: Blue;">sysdate</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">hh12</span><span style="color: #8b0000;">'</span><span style="color: Olive;">))</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">dual</span><span style="color: Gray;">; //以数字显示的小时数</span></div></div>
<p>六.其他函数</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Gray;">//</span><span style="color: Maroon;">1.</span><span style="color: Green;">user</span><span style="color: Gray;">: 返回登录的用户名称 <br />&nbsp;&nbsp; &nbsp;</span><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Green;">user</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">dual</span><span style="color: Gray;">;<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; //</span><span style="color: Maroon;">2.</span><span style="color: Blue;">vsize</span><span style="color: Gray;">: 返回表达式所需的字节数<br />&nbsp;&nbsp; &nbsp;</span><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">vsize</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">HELLO</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">dual</span><span style="color: Gray;">;<br />&nbsp;&nbsp; <br />&nbsp;&nbsp; //</span><span style="color: Maroon;">3.</span><span style="color: Blue;">nvl</span><span style="color: Olive;">(</span><span style="color: Blue;">ex1</span><span style="color: Gray;">,</span><span style="color: Blue;">ex2</span><span style="color: Olive;">)</span><span style="color: Gray;">:</span><span style="color: Blue;">ex1</span><span style="color: Gray;">值为空则返回</span><span style="color: Blue;">ex2</span><span style="color: Gray;">,否则返回该值本身</span><span style="color: Blue;">ex1</span><span style="color: Gray;">（常用） <br />&nbsp;&nbsp; // 例：如果雇员没有佣金，将显示</span><span style="color: Maroon;">0</span><span style="color: Gray;">，否则显示佣金 <br />&nbsp;&nbsp; &nbsp;</span><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">comm</span><span style="color: Gray;">,</span><span style="color: Blue;">nvl</span><span style="color: Olive;">(</span><span style="color: Blue;">comm</span><span style="color: Gray;">,</span><span style="color: Maroon;">0</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">emp</span><span style="color: Gray;">;<br />&nbsp;&nbsp; <br />&nbsp;&nbsp; //</span><span style="color: Maroon;">4.</span><span style="color: #00008b;">nullif</span><span style="color: Olive;">(</span><span style="color: Blue;">ex1</span><span style="color: Gray;">,</span><span style="color: Blue;">ex2</span><span style="color: Olive;">)</span><span style="color: Gray;">: 值相等返空，否则返回第一个值<br />&nbsp;&nbsp; // 例：如果工资和佣金相等，则显示空，否则显示工资<br />&nbsp;&nbsp; &nbsp;</span><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: #00008b;">nullif</span><span style="color: Olive;">(</span><span style="color: Blue;">sal</span><span style="color: Gray;">,</span><span style="color: Blue;">comm</span><span style="color: Olive;">)</span><span style="color: Gray;">,</span><span style="color: Blue;">sal</span><span style="color: Gray;">,</span><span style="color: Blue;">comm</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">emp</span><span style="color: Gray;">;<br />&nbsp;&nbsp; <br />&nbsp;&nbsp; //</span><span style="color: Maroon;">5.</span><span style="color: #00008b;">coalesce</span><span style="color: Gray;">:返回列表中第一个非空表达式<br />&nbsp;&nbsp; &nbsp;</span><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">comm</span><span style="color: Gray;">,</span><span style="color: Blue;">sal</span><span style="color: Gray;">,</span><span style="color: #00008b;">coalesce</span><span style="color: Olive;">(</span><span style="color: Blue;">comm</span><span style="color: Gray;">,</span><span style="color: Blue;">sal</span><span style="color: Gray;">,</span><span style="color: Blue;">sal</span><span style="color: Gray;">*</span><span style="color: Maroon;">10</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">emp</span><span style="color: Gray;">;<br />&nbsp;&nbsp; <br />&nbsp;&nbsp; //</span><span style="color: Maroon;">6.</span><span style="color: Blue;">nvl2</span><span style="color: Olive;">(</span><span style="color: Blue;">ex1</span><span style="color: Gray;">,</span><span style="color: Blue;">ex2</span><span style="color: Gray;">,</span><span style="color: Blue;">ex3</span><span style="color: Olive;">)</span><span style="color: Gray;">:如果</span><span style="color: Blue;">ex1</span><span style="color: Gray;">不为空，显示</span><span style="color: Blue;">ex2</span><span style="color: Gray;">,否则显示</span><span style="color: Blue;">ex3</span><span style="color: Gray;"><br />&nbsp;&nbsp; //如：查看有佣金的雇员姓名以及他们的佣金 <br />&nbsp;&nbsp; &nbsp;</span><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">nvl2</span><span style="color: Olive;">(</span><span style="color: Blue;">comm</span><span style="color: Gray;">,</span><span style="color: Blue;">ename</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">) as HaveCommName,comm from emp;</span></div></div>
<p>七.分组函数</p>
<p>max min avg count sum<br />
1，整个结果集是一个组<br />
   1) 求部门30 的最高工资，最低工资,平均工资，总人数，有工作的人数，工种数量及工资总和</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: #00008b;">max</span><span style="color: Olive;">(</span><span style="color: Blue;">ename</span><span style="color: Olive;">)</span><span style="color: Gray;">,</span><span style="color: #00008b;">max</span><span style="color: Olive;">(</span><span style="color: Blue;">sal</span><span style="color: Olive;">)</span><span style="color: Gray;">, <br />&nbsp;&nbsp; &nbsp; </span><span style="color: #00008b;">min</span><span style="color: Olive;">(</span><span style="color: Blue;">ename</span><span style="color: Olive;">)</span><span style="color: Gray;">,</span><span style="color: #00008b;">min</span><span style="color: Olive;">(</span><span style="color: Blue;">sal</span><span style="color: Olive;">)</span><span style="color: Gray;">,<br />&nbsp;&nbsp; &nbsp; </span><span style="color: #00008b;">avg</span><span style="color: Olive;">(</span><span style="color: Blue;">sal</span><span style="color: Olive;">)</span><span style="color: Gray;">,<br />&nbsp;&nbsp; &nbsp; </span><span style="color: #00008b;">count</span><span style="color: Olive;">(</span><span style="color: Gray;">*</span><span style="color: Olive;">)</span><span style="color: Gray;"> ,</span><span style="color: #00008b;">count</span><span style="color: Olive;">(</span><span style="color: Blue;">job</span><span style="color: Olive;">)</span><span style="color: Gray;">,</span><span style="color: #00008b;">count</span><span style="color: Olive;">(</span><span style="color: Green;">distinct</span><span style="color: Olive;">(</span><span style="color: Blue;">job</span><span style="color: Olive;">))</span><span style="color: Gray;"> ,<br />&nbsp;&nbsp; &nbsp; </span><span style="color: #00008b;">sum</span><span style="color: Olive;">(</span><span style="color: Blue;">sal</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">emp</span><span style="color: Gray;"> </span><span style="color: Green;">where</span><span style="color: Gray;"> </span><span style="color: Blue;">deptno</span><span style="color: Gray;">=</span><span style="color: Maroon;">30</span><span style="color: Gray;">;</span></div></div>
<p>2, 带group by 和 having 的分组<br />
   1)按部门分组求最高工资，最低工资，总人数，有工作的人数，工种数量及工资总和</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">deptno</span><span style="color: Gray;">, </span><span style="color: #00008b;">max</span><span style="color: Olive;">(</span><span style="color: Blue;">ename</span><span style="color: Olive;">)</span><span style="color: Gray;">,</span><span style="color: #00008b;">max</span><span style="color: Olive;">(</span><span style="color: Blue;">sal</span><span style="color: Olive;">)</span><span style="color: Gray;">,<br />&nbsp;&nbsp; &nbsp;</span><span style="color: #00008b;">min</span><span style="color: Olive;">(</span><span style="color: Blue;">ename</span><span style="color: Olive;">)</span><span style="color: Gray;">,</span><span style="color: #00008b;">min</span><span style="color: Olive;">(</span><span style="color: Blue;">sal</span><span style="color: Olive;">)</span><span style="color: Gray;">,<br />&nbsp;&nbsp; &nbsp;</span><span style="color: #00008b;">avg</span><span style="color: Olive;">(</span><span style="color: Blue;">sal</span><span style="color: Olive;">)</span><span style="color: Gray;">,<br />&nbsp;&nbsp; &nbsp;</span><span style="color: #00008b;">count</span><span style="color: Olive;">(</span><span style="color: Gray;">*</span><span style="color: Olive;">)</span><span style="color: Gray;"> ,</span><span style="color: #00008b;">count</span><span style="color: Olive;">(</span><span style="color: Blue;">job</span><span style="color: Olive;">)</span><span style="color: Gray;">,</span><span style="color: #00008b;">count</span><span style="color: Olive;">(</span><span style="color: Green;">distinct</span><span style="color: Olive;">(</span><span style="color: Blue;">job</span><span style="color: Olive;">))</span><span style="color: Gray;"> ,<br />&nbsp;&nbsp; &nbsp;</span><span style="color: #00008b;">sum</span><span style="color: Olive;">(</span><span style="color: Blue;">sal</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">emp</span><span style="color: Gray;"> </span><span style="color: Green;">group</span><span style="color: Gray;"> </span><span style="color: Green;">by</span><span style="color: Gray;"> </span><span style="color: Blue;">deptno</span><span style="color: Gray;">;</span></div></div>
<p>   2)部门30的最高工资，最低工资，总人数，有工作的人数，工种数量及工资总和 </p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">deptno</span><span style="color: Gray;">, </span><span style="color: #00008b;">max</span><span style="color: Olive;">(</span><span style="color: Blue;">ename</span><span style="color: Olive;">)</span><span style="color: Gray;">,</span><span style="color: #00008b;">max</span><span style="color: Olive;">(</span><span style="color: Blue;">sal</span><span style="color: Olive;">)</span><span style="color: Gray;">,<br />&nbsp;&nbsp; &nbsp;</span><span style="color: #00008b;">min</span><span style="color: Olive;">(</span><span style="color: Blue;">ename</span><span style="color: Olive;">)</span><span style="color: Gray;">,</span><span style="color: #00008b;">min</span><span style="color: Olive;">(</span><span style="color: Blue;">sal</span><span style="color: Olive;">)</span><span style="color: Gray;">,<br />&nbsp;&nbsp; &nbsp;</span><span style="color: #00008b;">avg</span><span style="color: Olive;">(</span><span style="color: Blue;">sal</span><span style="color: Olive;">)</span><span style="color: Gray;">,<br />&nbsp;&nbsp; &nbsp;</span><span style="color: #00008b;">count</span><span style="color: Olive;">(</span><span style="color: Gray;">*</span><span style="color: Olive;">)</span><span style="color: Gray;"> ,</span><span style="color: #00008b;">count</span><span style="color: Olive;">(</span><span style="color: Blue;">job</span><span style="color: Olive;">)</span><span style="color: Gray;">,</span><span style="color: #00008b;">count</span><span style="color: Olive;">(</span><span style="color: Green;">distinct</span><span style="color: Olive;">(</span><span style="color: Blue;">job</span><span style="color: Olive;">))</span><span style="color: Gray;"> ,<br />&nbsp;&nbsp; &nbsp;</span><span style="color: #00008b;">sum</span><span style="color: Olive;">(</span><span style="color: Blue;">sal</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">emp</span><span style="color: Gray;"> </span><span style="color: Green;">group</span><span style="color: Gray;"> </span><span style="color: Green;">by</span><span style="color: Gray;"> </span><span style="color: Blue;">deptno</span><span style="color: Gray;"> </span><span style="color: Green;">having</span><span style="color: Gray;"> </span><span style="color: Blue;">deptno</span><span style="color: Gray;">=</span><span style="color: Maroon;">30</span><span style="color: Gray;">;</span></div></div>
<p>3, stddev 返回一组值的标准偏差</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">deptno</span><span style="color: Gray;">,</span><span style="color: Blue;">stddev</span><span style="color: Olive;">(</span><span style="color: Blue;">sal</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">emp</span><span style="color: Gray;"> </span><span style="color: Green;">group</span><span style="color: Gray;"> </span><span style="color: Green;">by</span><span style="color: Gray;"> </span><span style="color: Blue;">deptno</span><span style="color: Gray;">;<br />&nbsp;&nbsp; &nbsp;</span><span style="color: Blue;">variance</span><span style="color: Gray;"> 返回一组值的方差差<br />&nbsp;&nbsp; &nbsp;</span><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">deptno</span><span style="color: Gray;">,</span><span style="color: Blue;">variance</span><span style="color: Olive;">(</span><span style="color: Blue;">sal</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">emp</span><span style="color: Gray;"> </span><span style="color: Green;">group</span><span style="color: Gray;"> </span><span style="color: Green;">by</span><span style="color: Gray;"> </span><span style="color: Blue;">deptno</span><span style="color: Gray;">;</span></div></div>
<p>4, 带有rollup和cube操作符的Group By<br />
    rollup 按分组的第一个列进行统计和最后的小计<br />
    cube 按分组的所有列的进行统计和最后的小计</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">deptno</span><span style="color: Gray;">,</span><span style="color: Blue;">job</span><span style="color: Gray;"> ,</span><span style="color: #00008b;">sum</span><span style="color: Olive;">(</span><span style="color: Blue;">sal</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">emp</span><span style="color: Gray;"> </span><span style="color: Green;">group</span><span style="color: Gray;"> </span><span style="color: Green;">by</span><span style="color: Gray;"> </span><span style="color: Blue;">deptno</span><span style="color: Gray;">,</span><span style="color: Blue;">job</span><span style="color: Gray;">;<br />&nbsp;&nbsp; &nbsp;</span><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">deptno</span><span style="color: Gray;">,</span><span style="color: Blue;">job</span><span style="color: Gray;"> ,</span><span style="color: #00008b;">sum</span><span style="color: Olive;">(</span><span style="color: Blue;">sal</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">emp</span><span style="color: Gray;"> </span><span style="color: Green;">group</span><span style="color: Gray;"> </span><span style="color: Green;">by</span><span style="color: Gray;"> </span><span style="color: Green;">rollup</span><span style="color: Olive;">(</span><span style="color: Blue;">deptno</span><span style="color: Gray;">,</span><span style="color: Blue;">job</span><span style="color: Olive;">)</span><span style="color: Gray;">; <br />&nbsp;&nbsp; &nbsp;</span><span style="color: Green;">cube</span><span style="color: Gray;"> 产生组内所有列的统计和最后的小计<br />&nbsp;&nbsp; &nbsp;</span><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">deptno</span><span style="color: Gray;">,</span><span style="color: Blue;">job</span><span style="color: Gray;"> ,</span><span style="color: #00008b;">sum</span><span style="color: Olive;">(</span><span style="color: Blue;">sal</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">emp</span><span style="color: Gray;"> </span><span style="color: Green;">group</span><span style="color: Gray;"> </span><span style="color: Green;">by</span><span style="color: Gray;"> </span><span style="color: Green;">cube</span><span style="color: Olive;">(</span><span style="color: Blue;">deptno</span><span style="color: Gray;">,</span><span style="color: Blue;">job</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></div></div>
<p>八、临时表</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Gray;">//只在会话期间或在事务处理期间存在的表.<br />//临时表在插入数据时，动态分配空间 <br /></span><span style="color: Green;">create</span><span style="color: Gray;"> </span><span style="color: Green;">global</span><span style="color: Gray;"> </span><span style="color: Green;">temporary</span><span style="color: Gray;"> </span><span style="color: Green;">table</span><span style="color: Gray;"> </span><span style="color: Blue;">temp_dept</span><span style="color: Gray;"><br />&nbsp;&nbsp; </span><span style="color: Olive;">(</span><span style="color: Blue;">dno</span><span style="color: Gray;"> </span><span style="color: #00008b;">number</span><span style="color: Gray;">,<br />&nbsp;&nbsp; </span><span style="color: Blue;">dname</span><span style="color: Gray;"> </span><span style="color: Blue;">varchar2</span><span style="color: Olive;">(</span><span style="color: Maroon;">10</span><span style="color: Olive;">))</span><span style="color: Gray;"><br />&nbsp;&nbsp; </span><span style="color: Green;">on</span><span style="color: Gray;"> </span><span style="color: Green;">commit</span><span style="color: Gray;"> </span><span style="color: Green;">delete</span><span style="color: Gray;"> </span><span style="color: Green;">rows</span><span style="color: Gray;">;<br />&nbsp;&nbsp; </span><span style="color: Green;">insert</span><span style="color: Gray;"> </span><span style="color: Green;">into</span><span style="color: Gray;"> </span><span style="color: Blue;">temp_dept</span><span style="color: Gray;"> </span><span style="color: Green;">values</span><span style="color: Olive;">(</span><span style="color: Maroon;">10</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">ABC</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;<br />&nbsp;&nbsp; </span><span style="color: Green;">commit</span><span style="color: Gray;">;<br /></span><span style="color: Green;">select</span><span style="color: Gray;"> * </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">temp_dept</span><span style="color: Gray;">; --无数据显示,数据自动清除<br />&nbsp;&nbsp; </span><span style="color: Green;">on</span><span style="color: Gray;"> </span><span style="color: Green;">commit</span><span style="color: Gray;"> </span><span style="color: Green;">preserve</span><span style="color: Gray;"> </span><span style="color: Green;">rows</span><span style="color: Gray;">:在会话期间表一直可以存在（保留数据）<br />&nbsp;&nbsp; </span><span style="color: Green;">on</span><span style="color: Gray;"> </span><span style="color: Green;">commit</span><span style="color: Gray;"> </span><span style="color: Green;">delete</span><span style="color: Gray;"> </span><span style="color: Green;">rows</span><span style="color: Gray;">:事务结束清除数据（在事务结束时自动删除表的数据）</span></div></div>
]]></content:encoded>
			<wfw:commentRss>http://leeawan.cn/2010/03/oracl_date/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>oracle解锁</title>
		<link>http://leeawan.cn/2010/03/oracle_unlock/</link>
		<comments>http://leeawan.cn/2010/03/oracle_unlock/#comments</comments>
		<pubDate>Sat, 06 Mar 2010 05:59:20 +0000</pubDate>
		<dc:creator>leeawan</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[未分类]]></category>

		<guid isPermaLink="false">http://leeawan.cn/?p=198</guid>
		<description><![CDATA[曾经碰到一次用户在更新一个数据的时候死机的情况，后来查找到是某位同事写的一条update语句没有写commit,真应该拉出去打屁股。解决的方法如下 招数一 查看被锁的表： select&#160; &#160;p.spid,c.object_name,b.session_id,b.oracle_username,b.os_user_name&#160; &#160;from&#160; &#160;v$process&#160; &#160;p,v$session&#160; &#160;a,&#160; &#160;v$locked_object&#160; &#160;b,all_objects&#160; &#160;c&#160; &#160;where&#160; &#160;p.addr=a.paddr&#160; &#160;and&#160; &#160;a.process=b.process&#160; &#160;and&#160; &#160;c.object_id=b.object_id 解锁 alter&#160; &#160;system&#160; &#160; &#160;kill&#160; &#160;session&#160; &#160;'146'//(其中146为锁住的进程号) 招数二 SELECT&#160; &#160;sn.username, m.SID,sn.SERIAL#, m.TYPE,&#160; &#160;&#160; &#160; &#160; &#160; DECODE (m.lmode,&#160; &#160;&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;0, 'None',&#160; &#160;&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;1, [...]]]></description>
			<content:encoded><![CDATA[<p>曾经碰到一次用户在更新一个数据的时候死机的情况，后来查找到是某位同事写的一条update语句没有写commit,真应该拉出去打屁股。解决的方法如下<br />
<strong>招数一</strong><br />
查看被锁的表：     </p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">select</span><span style="color: Gray;">&nbsp; &nbsp;</span><span style="color: Blue;">p</span><span style="color: Gray;">.</span><span style="color: Blue;">spid</span><span style="color: Gray;">,</span><span style="color: #00008b;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">object_name</span><span style="color: Gray;">,</span><span style="color: Blue;">b</span><span style="color: Gray;">.</span><span style="color: Blue;">session_id</span><span style="color: Gray;">,</span><span style="color: Blue;">b</span><span style="color: Gray;">.</span><span style="color: Blue;">oracle_username</span><span style="color: Gray;">,</span><span style="color: Blue;">b</span><span style="color: Gray;">.</span><span style="color: Blue;">os_user_name</span><span style="color: Gray;">&nbsp; &nbsp;</span><span style="color: Green;">from</span><span style="color: Gray;">&nbsp; &nbsp;</span><span style="color: Blue;">v</span><span style="color: Gray;">$</span><span style="color: Blue;">process</span><span style="color: Gray;">&nbsp; &nbsp;</span><span style="color: Blue;">p</span><span style="color: Gray;">,</span><span style="color: Blue;">v</span><span style="color: Gray;">$</span><span style="color: Green;">session</span><span style="color: Gray;">&nbsp; &nbsp;</span><span style="color: Blue;">a</span><span style="color: Gray;">,&nbsp; &nbsp;</span><span style="color: Blue;">v</span><span style="color: Gray;">$</span><span style="color: Blue;">locked_object</span><span style="color: Gray;">&nbsp; &nbsp;</span><span style="color: Blue;">b</span><span style="color: Gray;">,</span><span style="color: Blue;">all_objects</span><span style="color: Gray;">&nbsp; &nbsp;</span><span style="color: #00008b;">c</span><span style="color: Gray;">&nbsp; &nbsp;</span><span style="color: Green;">where</span><span style="color: Gray;">&nbsp; &nbsp;</span><span style="color: Blue;">p</span><span style="color: Gray;">.</span><span style="color: Blue;">addr</span><span style="color: Gray;">=</span><span style="color: Blue;">a</span><span style="color: Gray;">.</span><span style="color: Blue;">paddr</span><span style="color: Gray;">&nbsp; &nbsp;</span><span style="color: Green;">and</span><span style="color: Gray;">&nbsp; &nbsp;</span><span style="color: Blue;">a</span><span style="color: Gray;">.</span><span style="color: Blue;">process</span><span style="color: Gray;">=</span><span style="color: Blue;">b</span><span style="color: Gray;">.</span><span style="color: Blue;">process</span><span style="color: Gray;">&nbsp; &nbsp;</span><span style="color: Green;">and</span><span style="color: Gray;">&nbsp; &nbsp;</span><span style="color: #00008b;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">object_id</span><span style="color: Gray;">=</span><span style="color: Blue;">b</span><span style="color: Gray;">.</span><span style="color: Blue;">object_id</span></div></div>
<p>解锁</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">alter</span><span style="color: Gray;">&nbsp; &nbsp;</span><span style="color: #00008b;">system</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp;</span><span style="color: Blue;">kill</span><span style="color: Gray;">&nbsp; &nbsp;</span><span style="color: Green;">session</span><span style="color: Gray;">&nbsp; &nbsp;</span><span style="color: #8b0000;">'</span><span style="color: Red;">146</span><span style="color: #8b0000;">'</span><span style="color: Gray;">//</span><span style="color: Olive;">(</span><span style="color: Gray;">其中</span><span style="color: Maroon;">146</span><span style="color: Gray;">为锁住的进程号</span><span style="color: Olive;">)</span></div></div>
<p><strong>招数二</strong></p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">SELECT</span><span style="color: Gray;">&nbsp; &nbsp;</span><span style="color: Blue;">sn</span><span style="color: Gray;">.</span><span style="color: Blue;">username</span><span style="color: Gray;">, </span><span style="color: #00008b;">m</span><span style="color: Gray;">.</span><span style="color: Blue;">SID</span><span style="color: Gray;">,</span><span style="color: Blue;">sn</span><span style="color: Gray;">.</span><span style="color: Blue;">SERIAL</span><span style="color: #ffa500;">#, m.TYPE,&nbsp; </span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">DECODE</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: #00008b;">m</span><span style="color: Gray;">.</span><span style="color: Blue;">lmode</span><span style="color: Gray;">,&nbsp; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Maroon;">0</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">None</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,&nbsp; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Maroon;">1</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">Null</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,&nbsp; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Maroon;">2</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">Row Share</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,&nbsp; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Maroon;">3</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">Row Excl.</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,&nbsp; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Maroon;">4</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">Share</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,&nbsp; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Maroon;">5</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">S/Row Excl.</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,&nbsp; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Maroon;">6</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">Exclusive</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,&nbsp; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Blue;">lmode</span><span style="color: Gray;">, </span><span style="color: Blue;">LTRIM</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: Blue;">TO_CHAR</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: Blue;">lmode</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">990</span><span style="color: #8b0000;">'</span><span style="color: Olive;">))</span><span style="color: Gray;">&nbsp; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Blue;">lmode</span><span style="color: Gray;">,&nbsp; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Blue;">DECODE</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: #00008b;">m</span><span style="color: Gray;">.</span><span style="color: Blue;">request</span><span style="color: Gray;">,&nbsp; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Maroon;">0</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">None</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,&nbsp; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Maroon;">1</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">Null</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,&nbsp; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Maroon;">2</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">Row Share</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,&nbsp; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Maroon;">3</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">Row Excl.</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,&nbsp; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Maroon;">4</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">Share</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,&nbsp; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Maroon;">5</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">S/Row Excl.</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,&nbsp; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Maroon;">6</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">Exclusive</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,&nbsp; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Blue;">request</span><span style="color: Gray;">, </span><span style="color: Blue;">LTRIM</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: Blue;">TO_CHAR</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: #00008b;">m</span><span style="color: Gray;">.</span><span style="color: Blue;">request</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">990</span><span style="color: #8b0000;">'</span><span style="color: Olive;">))</span><span style="color: Gray;">&nbsp; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Blue;">request</span><span style="color: Gray;">,&nbsp; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #00008b;">m</span><span style="color: Gray;">.</span><span style="color: Blue;">id1</span><span style="color: Gray;">, </span><span style="color: #00008b;">m</span><span style="color: Gray;">.</span><span style="color: Blue;">id2</span><span style="color: Gray;">&nbsp; <br />&nbsp;&nbsp; &nbsp; </span><span style="color: Green;">FROM</span><span style="color: Gray;"> </span><span style="color: Blue;">v</span><span style="color: Gray;">$</span><span style="color: Green;">session</span><span style="color: Gray;"> </span><span style="color: Blue;">sn</span><span style="color: Gray;">, </span><span style="color: Blue;">v</span><span style="color: Gray;">$</span><span style="color: Blue;">lock</span><span style="color: Gray;"> </span><span style="color: #00008b;">m</span><span style="color: Gray;">&nbsp; <br />&nbsp;&nbsp; </span><span style="color: Green;">WHERE</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: Blue;">sn</span><span style="color: Gray;">.</span><span style="color: Blue;">SID</span><span style="color: Gray;"> = </span><span style="color: #00008b;">m</span><span style="color: Gray;">.</span><span style="color: Blue;">SID</span><span style="color: Gray;"> </span><span style="color: Green;">AND</span><span style="color: Gray;"> </span><span style="color: #00008b;">m</span><span style="color: Gray;">.</span><span style="color: Blue;">request</span><span style="color: Gray;"> != </span><span style="color: Maroon;">0</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;--存在锁请求，即被阻塞&nbsp; <br />&nbsp;&nbsp; &nbsp; &nbsp; </span><span style="color: Green;">OR</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">sn</span><span style="color: Gray;">.</span><span style="color: Blue;">SID</span><span style="color: Gray;"> = </span><span style="color: #00008b;">m</span><span style="color: Gray;">.</span><span style="color: Blue;">SID</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;--不存在锁请求，但是锁定的对象被其他会话请求锁定&nbsp; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">AND</span><span style="color: Gray;"> </span><span style="color: #00008b;">m</span><span style="color: Gray;">.</span><span style="color: Blue;">request</span><span style="color: Gray;"> = </span><span style="color: Maroon;">0</span><span style="color: Gray;">&nbsp; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">AND</span><span style="color: Gray;"> </span><span style="color: Blue;">lmode</span><span style="color: Gray;"> != </span><span style="color: Maroon;">4</span><span style="color: Gray;">&nbsp; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">AND</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: Blue;">id1</span><span style="color: Gray;">, </span><span style="color: Blue;">id2</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">IN</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">SELECT</span><span style="color: Gray;"> </span><span style="color: Blue;">s</span><span style="color: Gray;">.</span><span style="color: Blue;">id1</span><span style="color: Gray;">, </span><span style="color: Blue;">s</span><span style="color: Gray;">.</span><span style="color: Blue;">id2</span><span style="color: Gray;">&nbsp; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">FROM</span><span style="color: Gray;"> </span><span style="color: Blue;">v</span><span style="color: Gray;">$</span><span style="color: Blue;">lock</span><span style="color: Gray;"> </span><span style="color: Blue;">s</span><span style="color: Gray;">&nbsp; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">WHERE</span><span style="color: Gray;"> </span><span style="color: Blue;">request</span><span style="color: Gray;"> != </span><span style="color: Maroon;">0</span><span style="color: Gray;"> </span><span style="color: Green;">AND</span><span style="color: Gray;"> </span><span style="color: Blue;">s</span><span style="color: Gray;">.</span><span style="color: Blue;">id1</span><span style="color: Gray;"> = </span><span style="color: #00008b;">m</span><span style="color: Gray;">.</span><span style="color: Blue;">id1</span><span style="color: Gray;">&nbsp; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">AND</span><span style="color: Gray;"> </span><span style="color: Blue;">s</span><span style="color: Gray;">.</span><span style="color: Blue;">id2</span><span style="color: Gray;"> = </span><span style="color: #00008b;">m</span><span style="color: Gray;">.</span><span style="color: Blue;">id2</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp; <br />&nbsp;</span><span style="color: Green;">ORDER</span><span style="color: Gray;"> </span><span style="color: Green;">BY</span><span style="color: Gray;"> </span><span style="color: Blue;">id1</span><span style="color: Gray;">, </span><span style="color: Blue;">id2</span><span style="color: Gray;">, </span><span style="color: #00008b;">m</span><span style="color: Gray;">.</span><span style="color: Blue;">request</span><span style="color: Gray;">;</span></div></div>
<div class="hl-surround"><div class="hl-main">alter system kill session '91';&nbsp; <br />alter system kill session '144,633';&nbsp; <br />alter system kill session '91,21';&nbsp; <br />alter system kill session '112,5772';</div></div>
<p><span id="more-198"></span><br />
再列几种查看锁的方法<br />
<strong>招数三</strong></p>
<div class="hl-surround"><div class="hl-main"><span style="color: Gray;">--查看锁<br /></span><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">a</span><span style="color: Gray;">.</span><span style="color: Blue;">object_name</span><span style="color: Gray;">||</span><span style="color: #8b0000;">'</span><span style="color: Red;">|</span><span style="color: #8b0000;">'</span><span style="color: Gray;">||</span><span style="color: Blue;">b</span><span style="color: Gray;">.</span><span style="color: Blue;">session_id</span><span style="color: Gray;">||</span><span style="color: #8b0000;">'</span><span style="color: Red;">|</span><span style="color: #8b0000;">'</span><span style="color: Gray;">||</span><span style="color: #00008b;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">serial</span><span style="color: #ffa500;">#||'|'||c.program||'|'||c.username||'|'||c.command||'|'||c.machine||'|'||</span><span style="color: Gray;"><br /></span><span style="color: #00008b;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">lockwait</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">all_objects</span><span style="color: Gray;"> </span><span style="color: Blue;">a</span><span style="color: Gray;">,</span><span style="color: Blue;">v</span><span style="color: Gray;">$</span><span style="color: Blue;">locked_object</span><span style="color: Gray;"> </span><span style="color: Blue;">b</span><span style="color: Gray;">,</span><span style="color: Blue;">v</span><span style="color: Gray;">$</span><span style="color: Green;">session</span><span style="color: Gray;"> </span><span style="color: #00008b;">c</span><span style="color: Gray;"> </span><span style="color: Green;">where</span><span style="color: Gray;"> </span><span style="color: Blue;">a</span><span style="color: Gray;">.</span><span style="color: Blue;">object_id</span><span style="color: Gray;">=</span><span style="color: Blue;">b</span><span style="color: Gray;">.</span><span style="color: Blue;">object_id</span><span style="color: Gray;"> </span><span style="color: Green;">and</span><span style="color: Gray;"> </span><span style="color: #00008b;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">sid</span><span style="color: Gray;">=</span><span style="color: Blue;">b</span><span style="color: Gray;">.</span><span style="color: Blue;">session_id</span><span style="color: Gray;">;<br />&nbsp;<br />--解锁<br /></span><span style="color: Green;">alter</span><span style="color: Gray;"> </span><span style="color: #00008b;">system</span><span style="color: Gray;"> </span><span style="color: Blue;">kill</span><span style="color: Gray;"> </span><span style="color: Green;">session</span><span style="color: #8b0000;">'</span><span style="color: Red;">session_id,serial#</span><span style="color: #8b0000;">'</span><span style="color: Gray;">;<br />--列句<br /></span><span style="color: Green;">alter</span><span style="color: Gray;"> </span><span style="color: #00008b;">system</span><span style="color: Gray;"> </span><span style="color: Blue;">kill</span><span style="color: Gray;"> </span><span style="color: Green;">session</span><span style="color: #8b0000;">'</span><span style="color: Red;">453,10316</span><span style="color: #8b0000;">'</span><span style="color: Gray;">;</span></div></div>
<p><strong>招数四</strong></p>
<div class="hl-surround"><div class="hl-main"><span style="color: Gray;">--查看锁<br /></span><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">a</span><span style="color: Gray;">.</span><span style="color: Blue;">object_name</span><span style="color: Gray;">||</span><span style="color: #8b0000;">'</span><span style="color: Red;">|</span><span style="color: #8b0000;">'</span><span style="color: Gray;">||</span><span style="color: Blue;">b</span><span style="color: Gray;">.</span><span style="color: Blue;">session_id</span><span style="color: Gray;">||</span><span style="color: #8b0000;">'</span><span style="color: Red;">|</span><span style="color: #8b0000;">'</span><span style="color: Gray;">||</span><span style="color: #00008b;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">serial</span><span style="color: #ffa500;">#||'|'||c.program||'|'||c.username||'|'||c.command||'|'||c.machine||'|'||</span><span style="color: Gray;"><br /></span><span style="color: #00008b;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">lockwait</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">all_objects</span><span style="color: Gray;"> </span><span style="color: Blue;">a</span><span style="color: Gray;">,</span><span style="color: Blue;">v</span><span style="color: Gray;">$</span><span style="color: Blue;">locked_object</span><span style="color: Gray;"> </span><span style="color: Blue;">b</span><span style="color: Gray;">,</span><span style="color: Blue;">v</span><span style="color: Gray;">$</span><span style="color: Green;">session</span><span style="color: Gray;"> </span><span style="color: #00008b;">c</span><span style="color: Gray;"> </span><span style="color: Green;">where</span><span style="color: Gray;"> </span><span style="color: Blue;">a</span><span style="color: Gray;">.</span><span style="color: Blue;">object_id</span><span style="color: Gray;">=</span><span style="color: Blue;">b</span><span style="color: Gray;">.</span><span style="color: Blue;">object_id</span><span style="color: Gray;"> </span><span style="color: Green;">and</span><span style="color: Gray;"> </span><span style="color: #00008b;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">sid</span><span style="color: Gray;">=</span><span style="color: Blue;">b</span><span style="color: Gray;">.</span><span style="color: Blue;">session_id</span><span style="color: Gray;">;<br />&nbsp;<br />--解锁<br /></span><span style="color: Green;">alter</span><span style="color: Gray;"> </span><span style="color: #00008b;">system</span><span style="color: Gray;"> </span><span style="color: Blue;">kill</span><span style="color: Gray;"> </span><span style="color: Green;">session</span><span style="color: #8b0000;">'</span><span style="color: Red;">session_id,serial#</span><span style="color: #8b0000;">'</span><span style="color: Gray;">;<br />&nbsp;<br />--例句<br /></span><span style="color: Green;">alter</span><span style="color: Gray;"> </span><span style="color: #00008b;">system</span><span style="color: Gray;"> </span><span style="color: Blue;">kill</span><span style="color: Gray;"> </span><span style="color: Green;">session</span><span style="color: #8b0000;">'</span><span style="color: Red;">453,10316</span><span style="color: #8b0000;">'</span><span style="color: Gray;">;</span></div></div>
<p><strong>招数五</strong></p>
<div class="hl-surround"><div class="hl-main"><span style="color: Gray;">--查看锁<br /></span><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">t2</span><span style="color: Gray;">.</span><span style="color: Blue;">username</span><span style="color: Gray;">,</span><span style="color: Blue;">t2</span><span style="color: Gray;">.</span><span style="color: Blue;">sid</span><span style="color: Gray;">,</span><span style="color: Blue;">t2</span><span style="color: Gray;">.</span><span style="color: Blue;">serial</span><span style="color: #ffa500;">#,t2.logon_time </span><span style="color: Gray;"><br /></span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">v</span><span style="color: Gray;">$</span><span style="color: Blue;">locked_object</span><span style="color: Gray;"> </span><span style="color: Blue;">t1</span><span style="color: Gray;">,</span><span style="color: Blue;">v</span><span style="color: Gray;">$</span><span style="color: Green;">session</span><span style="color: Gray;"> </span><span style="color: Blue;">t2</span><span style="color: Gray;"> <br /></span><span style="color: Green;">where</span><span style="color: Gray;"> </span><span style="color: Blue;">t1</span><span style="color: Gray;">.</span><span style="color: Blue;">session_id</span><span style="color: Gray;">=</span><span style="color: Blue;">t2</span><span style="color: Gray;">.</span><span style="color: Blue;">sid</span><span style="color: Gray;"> </span><span style="color: Green;">order</span><span style="color: Gray;"> </span><span style="color: Green;">by</span><span style="color: Gray;"> </span><span style="color: Blue;">t2</span><span style="color: Gray;">.</span><span style="color: Blue;">logon_time</span><span style="color: Gray;">;<br />&nbsp;<br />--</span><span style="color: Green;">alter</span><span style="color: Gray;"> </span><span style="color: #00008b;">system</span><span style="color: Gray;"> </span><span style="color: Blue;">kill</span><span style="color: Gray;"> </span><span style="color: Green;">session</span><span style="color: Gray;"> </span><span style="color: #8b0000;">'</span><span style="color: Red;">sid,serial#</span><span style="color: #8b0000;">'</span><span style="color: Gray;">;<br />--把锁给</span><span style="color: Blue;">KILL</span><span style="color: Gray;">掉<br /></span><span style="color: Green;">alter</span><span style="color: Gray;"> </span><span style="color: #00008b;">system</span><span style="color: Gray;"> </span><span style="color: Blue;">kill</span><span style="color: Gray;"> </span><span style="color: Green;">session</span><span style="color: Gray;"> </span><span style="color: #8b0000;">'</span><span style="color: Red;">146,21177</span><span style="color: #8b0000;">'</span><span style="color: Gray;">;</span></div></div>
<p><strong>招数六</strong></p>
<div class="hl-surround"><div class="hl-main"><span style="color: Gray;">--用语句得到详细的被锁住的表的信息，语句如下：<br /></span><span style="color: Green;">SELECT</span><span style="color: Gray;"> </span><span style="color: #ffa500;">/*+ rule */</span><span style="color: Gray;"> </span><span style="color: Blue;">s</span><span style="color: Gray;">.</span><span style="color: Blue;">username</span><span style="color: Gray;">,<br /></span><span style="color: Blue;">decode</span><span style="color: Olive;">(</span><span style="color: Blue;">l</span><span style="color: Gray;">.</span><span style="color: #00008b;">type</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">TM</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">TABLE LOCK</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,<br /></span><span style="color: #8b0000;">'</span><span style="color: Red;">TX</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">ROW LOCK</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,<br /></span><span style="color: Green;">NULL</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Blue;">LOCK_LEVEL</span><span style="color: Gray;">,<br /></span><span style="color: Blue;">o</span><span style="color: Gray;">.</span><span style="color: Blue;">owner</span><span style="color: Gray;">,</span><span style="color: Blue;">o</span><span style="color: Gray;">.</span><span style="color: Blue;">object_name</span><span style="color: Gray;">,</span><span style="color: Blue;">o</span><span style="color: Gray;">.</span><span style="color: Blue;">object_type</span><span style="color: Gray;">,<br /></span><span style="color: Blue;">s</span><span style="color: Gray;">.</span><span style="color: Blue;">sid</span><span style="color: Gray;">,</span><span style="color: Blue;">s</span><span style="color: Gray;">.</span><span style="color: Blue;">serial</span><span style="color: #ffa500;">#,s.terminal,s.machine,s.program,s.osuser</span><span style="color: Gray;"><br /></span><span style="color: Green;">FROM</span><span style="color: Gray;"> </span><span style="color: Blue;">v</span><span style="color: Gray;">$</span><span style="color: Green;">session</span><span style="color: Gray;"> </span><span style="color: Blue;">s</span><span style="color: Gray;">,</span><span style="color: Blue;">v</span><span style="color: Gray;">$</span><span style="color: Blue;">lock</span><span style="color: Gray;"> </span><span style="color: Blue;">l</span><span style="color: Gray;">,</span><span style="color: Blue;">dba_objects</span><span style="color: Gray;"> </span><span style="color: Blue;">o</span><span style="color: Gray;"><br /></span><span style="color: Green;">WHERE</span><span style="color: Gray;"> </span><span style="color: Blue;">l</span><span style="color: Gray;">.</span><span style="color: Blue;">sid</span><span style="color: Gray;"> = </span><span style="color: Blue;">s</span><span style="color: Gray;">.</span><span style="color: Blue;">sid</span><span style="color: Gray;"><br /></span><span style="color: Green;">AND</span><span style="color: Gray;"> </span><span style="color: Blue;">l</span><span style="color: Gray;">.</span><span style="color: Blue;">id1</span><span style="color: Gray;"> = </span><span style="color: Blue;">o</span><span style="color: Gray;">.</span><span style="color: Blue;">object_id</span><span style="color: Olive;">(</span><span style="color: Gray;">+</span><span style="color: Olive;">)</span><span style="color: Gray;"><br /></span><span style="color: Green;">AND</span><span style="color: Gray;"> </span><span style="color: Blue;">s</span><span style="color: Gray;">.</span><span style="color: Blue;">username</span><span style="color: Gray;"> </span><span style="color: Green;">is</span><span style="color: Gray;"> </span><span style="color: Green;">NOT</span><span style="color: Gray;"> </span><span style="color: Green;">Null</span><span style="color: Gray;"> <br />--可以得到</span><span style="color: Blue;">Sid</span><span style="color: Gray;">和</span><span style="color: Blue;">Serial</span><span style="color: #ffa500;">#，接着执行以下语句就可以解锁：</span><span style="color: Gray;"><br />&nbsp;<br /></span><span style="color: Green;">alter</span><span style="color: Gray;"> </span><span style="color: #00008b;">system</span><span style="color: Gray;"> </span><span style="color: Blue;">kill</span><span style="color: Gray;"> </span><span style="color: Green;">session</span><span style="color: Gray;"> </span><span style="color: #8b0000;">'</span><span style="color: Red;">sid,serial#</span><span style="color: #8b0000;">'</span><span style="color: Gray;">;</span></div></div>
]]></content:encoded>
			<wfw:commentRss>http://leeawan.cn/2010/03/oracle_unlock/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
