﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-风人园-文章分类-Oracle</title><link>http://www.blogjava.net/wuxufeng8080/category/20016.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 09 Mar 2007 03:13:44 GMT</lastBuildDate><pubDate>Fri, 09 Mar 2007 03:13:44 GMT</pubDate><ttl>60</ttl><item><title>简单的ORACLE分页sql语句(ZT) </title><link>http://www.blogjava.net/wuxufeng8080/articles/102609.html</link><dc:creator>风人园</dc:creator><author>风人园</author><pubDate>Thu, 08 Mar 2007 07:55:00 GMT</pubDate><guid>http://www.blogjava.net/wuxufeng8080/articles/102609.html</guid><description><![CDATA[
		<h2> </h2>
		<p>select * from (select rownum rdd,t_table.* from t_table where rownum&lt;=8) where  rdd&gt;6</p>
<img src ="http://www.blogjava.net/wuxufeng8080/aggbug/102609.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wuxufeng8080/" target="_blank">风人园</a> 2007-03-08 15:55 <a href="http://www.blogjava.net/wuxufeng8080/articles/102609.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle 日期处理</title><link>http://www.blogjava.net/wuxufeng8080/articles/102302.html</link><dc:creator>风人园</dc:creator><author>风人园</author><pubDate>Wed, 07 Mar 2007 01:02:00 GMT</pubDate><guid>http://www.blogjava.net/wuxufeng8080/articles/102302.html</guid><description><![CDATA[
		<font color="#ff0000">格式转化：</font>
		<br />select to_char(sysdate,'mm/dd/yy') from dual <br />其中sysdate是系统日期，你可换成表中的字段<br /><br /><font color="#ff0000">日期比较：</font><br />日期字段直接相减，获得的就是以天为单位的时间间隔 <br />select floor(to_date('2004-12-03','yyyy-mm-dd') - to_date('2004-8-8','yyyy-mm-dd')) from dual<br /><br />这样就计算出来了~~~ <br />select * from aa_temp where idate&gt; to_date('1996-01-01','yyyy-mm-dd') <br /><br />要找某日期字段大于一个固定日期的记录，以下2种写法：<br />to_date('2007-02-01 09:00:00','yyyy-mm-dd hh24:mi:ss')&lt;字段名<img src ="http://www.blogjava.net/wuxufeng8080/aggbug/102302.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wuxufeng8080/" target="_blank">风人园</a> 2007-03-07 09:02 <a href="http://www.blogjava.net/wuxufeng8080/articles/102302.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle自增字段的实现</title><link>http://www.blogjava.net/wuxufeng8080/articles/101845.html</link><dc:creator>风人园</dc:creator><author>风人园</author><pubDate>Mon, 05 Mar 2007 02:28:00 GMT</pubDate><guid>http://www.blogjava.net/wuxufeng8080/articles/101845.html</guid><description><![CDATA[最近在做系统的Oracle移植，需要从MySQL移植到Oracle中，在MySQL中有自增类型的字段，在Oracle中却没有，需要用其它的办法实现。在Oracle中要用一个SEQUENCE和触发器实现。下面是我的一个实现：<br /><div style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"><div><span style="COLOR: #008080"> 1</span><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff">CREATE</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">TABLE</span><span style="COLOR: #000000"> FOO<br /></span><span style="COLOR: #008080"> 2</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />(<br /></span><span style="COLOR: #008080"> 3</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />   </span><span style="COLOR: #0000ff">INDEX</span><span style="COLOR: #000000">                          </span><span style="FONT-WEIGHT: bold; COLOR: #000000">INT</span><span style="COLOR: #000000">                            </span><span style="COLOR: #808080">NOT</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">NULL</span><span style="COLOR: #000000">,<br /></span><span style="COLOR: #008080"> 4</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />   ABC                            </span><span style="FONT-WEIGHT: bold; COLOR: #000000">VARCHAR2</span><span style="COLOR: #000000">(</span><span style="FONT-WEIGHT: bold; COLOR: #800000">128</span><span style="COLOR: #000000">),<br /></span><span style="COLOR: #008080"> 5</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />   DEF                            </span><span style="FONT-WEIGHT: bold; COLOR: #000000">VARCHAR2</span><span style="COLOR: #000000">(</span><span style="FONT-WEIGHT: bold; COLOR: #800000">128</span><span style="COLOR: #000000">),<br /></span><span style="COLOR: #008080"> 6</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />   </span><span style="COLOR: #0000ff">PRIMARY</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">KEY</span><span style="COLOR: #000000"> (INDEXID)<br /></span><span style="COLOR: #008080"> 7</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />) TABLESPACE </span><span style="COLOR: #0000ff">TEMP</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080"> 8</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /></span><span style="COLOR: #008080"> 9</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">CREATE</span><span style="COLOR: #000000"> SEQUENCE FOO_INDEXID INCREMENT </span><span style="COLOR: #0000ff">BY</span><span style="COLOR: #000000"> </span><span style="FONT-WEIGHT: bold; COLOR: #800000">1</span><span style="COLOR: #000000"> START </span><span style="COLOR: #0000ff">WITH</span><span style="COLOR: #000000"> </span><span style="FONT-WEIGHT: bold; COLOR: #800000">1</span><span style="COLOR: #000000"> MAXVALUE </span><span style="FONT-WEIGHT: bold; COLOR: #800000">999999999999</span><span style="COLOR: #000000"> CYCLE NOCACHE;<br /></span><span style="COLOR: #008080">10</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /></span><span style="COLOR: #008080">11</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">CREATE</span><span style="COLOR: #000000"> </span><span style="COLOR: #808080">OR</span><span style="COLOR: #000000"> </span><span style="COLOR: #ff00ff">REPLACE</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">TRIGGER</span><span style="COLOR: #000000"> INSERT_FOO_INDEXID<br /></span><span style="COLOR: #008080">12</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />BEFORE </span><span style="COLOR: #0000ff">INSERT</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">ON</span><span style="COLOR: #000000"> FOO<br /></span><span style="COLOR: #008080">13</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />REFERENCING<br /></span><span style="COLOR: #008080">14</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    NEW </span><span style="COLOR: #0000ff">AS</span><span style="COLOR: #000000"> new<br /></span><span style="COLOR: #008080">15</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    OLD </span><span style="COLOR: #0000ff">AS</span><span style="COLOR: #000000"> old<br /></span><span style="COLOR: #008080">16</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">FOR</span><span style="COLOR: #000000"> EACH ROW<br /></span><span style="COLOR: #008080">17</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">BEGIN</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">18</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #0000ff">SELECT</span><span style="COLOR: #000000"> FOO_INDEXID.NEXTVAL </span><span style="COLOR: #0000ff">INTO</span><span style="COLOR: #000000"> :new.INDEXID </span><span style="COLOR: #0000ff">FROM</span><span style="COLOR: #000000"> DUAL;<br /></span><span style="COLOR: #008080">19</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">END</span><span style="COLOR: #000000">;</span></div></div><img src ="http://www.blogjava.net/wuxufeng8080/aggbug/101845.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wuxufeng8080/" target="_blank">风人园</a> 2007-03-05 10:28 <a href="http://www.blogjava.net/wuxufeng8080/articles/101845.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle 日期函数介绍</title><link>http://www.blogjava.net/wuxufeng8080/articles/99465.html</link><dc:creator>风人园</dc:creator><author>风人园</author><pubDate>Mon, 12 Feb 2007 07:39:00 GMT</pubDate><guid>http://www.blogjava.net/wuxufeng8080/articles/99465.html</guid><description><![CDATA[在oracle中有很多关于日期的函数，如： <br />1、add_months()用于从一个日期值增加或减少一些月份 <br />date_value:=add_months(date_value,number_of_months) <br />例： <br />SQL&gt; select add_months(sysdate,12) "Next Year" from dual; <br />  <br />Next Year <br />---------- <br />13-11月-04 <br />  <br />SQL&gt; select add_months(sysdate,112) "Last Year" from dual; <br />  <br />Last Year <br />---------- <br />13-3月 -13 <br />  <br />SQL&gt;  <br />  <br />2、current_date()返回当前会放时区中的当前日期 <br />date_value:=current_date <br />SQL&gt; column sessiontimezone for a15 <br />SQL&gt; select sessiontimezone,current_date from dual; <br />  <br />SESSIONTIMEZONE CURRENT_DA <br />--------------- ---------- <br />+08:00          13-11月-03 <br />  <br />SQL&gt; alter session set time_zone='-11:00' <br />   2  / <br />  <br />会话已更改。 <br />  <br />SQL&gt; select sessiontimezone,current_timestamp from dual; <br />  <br />SESSIONTIMEZONE CURRENT_TIMESTAMP <br />--------------- ------------------------------------ <br />-11:00          12-11月-03 04.59.13.668000 下午 -11: <br />                 00 <br />  <br />SQL&gt;  <br />  <br />3、current_timestamp()以timestamp with time zone数据类型返回当前会放时区中的当前日期 <br />timestamp_with_time_zone_value:=current_timestamp([timestamp_precision]) <br />SQL&gt; column sessiontimezone for a15 <br />SQL&gt; column current_timestamp format a36 <br />SQL&gt; select sessiontimezone,current_timestamp from dual; <br />  <br />SESSIONTIMEZONE CURRENT_TIMESTAMP <br />--------------- ------------------------------------ <br />+08:00          13-11月-03 11.56.28.160000 上午 +08: <br />                 00 <br />  <br />SQL&gt; alter session set time_zone='-11:00' <br />   2  / <br />  <br />会话已更改。 <br />  <br />SQL&gt; select sessiontimezone,current_timestamp from dual; <br />  <br />SESSIONTIMEZONE CURRENT_TIMESTAMP <br />--------------- ------------------------------------ <br />-11:00          12-11月-03 04.58.00.243000 下午 -11: <br />                 00 <br />  <br />SQL&gt;  <br />  <br />4、dbtimezone()返回时区 <br />varchar_value:=dbtimezone <br />SQL&gt; select dbtimezone from dual; <br />  <br />DBTIME <br />------ <br />-07:00 <br />  <br />SQL&gt;  <br />  <br />5、extract()找出日期或间隔值的字段值 <br />date_value:=extract(date_field from [datetime_value|interval_value]) <br />SQL&gt; select extract(month from sysdate) "This Month" from dual; <br />  <br />This Month <br />---------- <br />         11 <br />  <br />SQL&gt; select extract(year from add_months(sysdate,36)) "3 Years Out" from dual; <br />  <br />3 Years Out <br />----------- <br />        2006 <br />  <br />SQL&gt;  <br />  <br />6、last_day()返回包含了日期参数的月份的最后一天的日期 <br />date_value:=last_day(date_value) <br />SQL&gt; select last_day(date'2000-02-01') "Leap Yr?" from dual; <br />  <br />Leap Yr? <br />---------- <br />29-2月 -00 <br />  <br />SQL&gt; select last_day(sysdate) "Last day of this month" from dual; <br />  <br />Last day o <br />---------- <br />30-11月-03 <br />  <br />SQL&gt;  <br />  <br />7、localtimestamp()返回会话中的日期和时间 <br />timestamp_value:=localtimestamp <br />SQL&gt; column localtimestamp format a28 <br />SQL&gt; select localtimestamp from dual; <br />  <br />LOCALTIMESTAMP <br />---------------------------- <br />13-11月-03 12.09.15.433000 <br />下午 <br />  <br />SQL&gt; select localtimestamp,current_timestamp from dual; <br />  <br />LOCALTIMESTAMP               CURRENT_TIMESTAMP <br />---------------------------- ------------------------------------ <br />13-11月-03 12.09.31.006000   13-11月-03 12.09.31.006000 下午 +08: <br />下午                         00 <br />  <br />SQL&gt; alter session set time_zone='-11:00'; <br />  <br />会话已更改。 <br />  <br />SQL&gt; select localtimestamp,to_char(sysdate,'DD-MM-YYYY HH:MI:SS AM') "SYSDATE" from dual; <br />  <br />LOCALTIMESTAMP               SYSDATE <br />---------------------------- ------------------------ <br />12-11月-03 05.11.31.259000   13-11-2003 12:11:31 下午 <br />下午 <br />  <br />SQL&gt;  <br />  <br />8、months_between()判断两个日期之间的月份数量 <br />number_value:=months_between(date_value,date_value) <br />SQL&gt; select months_between(sysdate,date'1971-05-18') from dual; <br />  <br />MONTHS_BETWEEN(SYSDATE,DATE'1971-05-18') <br />---------------------------------------- <br />                               389.855143 <br />  <br />SQL&gt; select months_between(sysdate,date'2001-01-01') from dual; <br />  <br />MONTHS_BETWEEN(SYSDATE,DATE'2001-01-01') <br />---------------------------------------- <br />                               34.4035409 <br />  <br />SQL&gt;  <br />  <br />9、next_day()给定一个日期值，返回由第二个参数指出的日子第一次出现在的日期值（应返回相应日子的名称字符串）<br /><p>10、date = to_date('2005-3-16 16:55:36','YYYY-MM-DD HH24:MI:SS');</p><p></p><br /><img src ="http://www.blogjava.net/wuxufeng8080/aggbug/99465.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wuxufeng8080/" target="_blank">风人园</a> 2007-02-12 15:39 <a href="http://www.blogjava.net/wuxufeng8080/articles/99465.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>