﻿<?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-世事如棋-文章分类-Hibernate</title><link>http://www.blogjava.net/kingwell/category/8832.html</link><description>Aspire to Professionalism</description><language>zh-cn</language><lastBuildDate>Thu, 01 Mar 2007 02:32:58 GMT</lastBuildDate><pubDate>Thu, 01 Mar 2007 02:32:58 GMT</pubDate><ttl>60</ttl><item><title>神秘的DUAL</title><link>http://www.blogjava.net/kingwell/articles/45783.html</link><dc:creator>KingWell</dc:creator><author>KingWell</author><pubDate>Fri, 12 May 2006 02:17:00 GMT</pubDate><guid>http://www.blogjava.net/kingwell/articles/45783.html</guid><wfw:comment>http://www.blogjava.net/kingwell/comments/45783.html</wfw:comment><comments>http://www.blogjava.net/kingwell/articles/45783.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kingwell/comments/commentRss/45783.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kingwell/services/trackbacks/45783.html</trackback:ping><description><![CDATA[这个是jrlee在帖子中转载的关于DUAL的东西 <br />看看这个可以对DUAL有个更深入的了解 <br />引用：<em><u>原帖由 "jrlee" 发表：<br /></u><br /></em>神秘的DUAL black_snail（原作）  <br /><br />关键字 ORACLE DUAL  <br /><br /><br />DUAL ? 有什么神秘的? 当你想得到ORACLE系统时间, 简简单单敲一行SQL  <br /><br />不就得了吗? 故弄玄虚….  <br /><br />SQL&gt;; select sysdate from dual;  <br /><br />SYSDATE  <br /><br />---------  <br /><br />28-SEP-03  <br /><br /><br /><br />哈哈, 确实DUAL的使用很方便. 但是大家知道DUAL倒底是什么OBJECT, 它有什么特殊的行为吗? 来,我们一起看一看.  <br /><br /><br /><br />首先搞清楚DUAL是什么OBJECT :  <br /><br />SQL&gt;; connect system/manager  <br /><br />Connected.  <br /><br />SQL&gt;; select owner, object_name , object_type from dba_objects where object_name like '%DUAL%';  <br /><br /><br /><br />OWNER OBJECT_NAME OBJECT_TYPE  <br /><br />--------------- --------------- -------------  <br /><br />SYS DUAL TABLE  <br /><br />PUBLIC DUAL SYNONYM  <br /><br /><br /><br />原来DUAL是属于SYS schema的一个表,然后以PUBLIC SYNONYM的方式供其他数据库USER使用.  <br /><br />再看看它的结构:  <br /><br />SQL&gt;; desc dual  <br /><br />Name Null? Type  <br /><br />----------------------------------------- -------- ----------------------------  <br /><br />DUMMY VARCHAR2(1)  <br /><br /><br /><br />SQL&gt;;  <br /><br /><br /><br />只有一个名字叫DUMMY的字符型COLUMN .  <br /><br /><br /><br />然后查询一下表里的数据:  <br /><br />SQL&gt;; select dummy from dual;  <br /><br />DUMMY  <br /><br />----------  <br /><br />X  <br /><br /><br /><br />哦, 只有一条记录, DUMMY的值是’X’ .很正常啊,没什么奇怪嘛. 好,下面就有奇妙的东西出现了!  <br /><br />插入一条记录:  <br /><br />SQL&gt;; connect sys as sysdba  <br /><br />Connected.  <br /><br />SQL&gt;; insert into dual values ( 'Y');  <br /><br />1 row created.  <br /><br />SQL&gt;; commit;  <br /><br />Commit complete.  <br /><br />SQL&gt;; select count(*) from dual;  <br /><br />COUNT(*)  <br /><br />----------  <br /><br />2  <br /><br />迄今为止,一切正常. 然而当我们再次查询记录时,奇怪的事情发生了  <br /><br />SQL&gt;; select * from dual;  <br /><br />DUMMY  <br /><br />----------  <br /><br />X  <br /><br />刚才插入的那条记录并没有显示出来 ! 明明DUAL表中有两条记录, 可就是只显示一条!  <br /><br />再试一下删除 ,狠一点,全删光 !  <br /><br />SQL&gt;; delete from dual; /*注意没有限定条件,试图删除全部记录*/  <br /><br />1 row deleted.  <br /><br />SQL&gt;; commit;  <br /><br />Commit complete.  <br /><br /><br /><br />哈哈,也只有一条记录被删掉,  <br /><br />SQL&gt;; select * from dual;  <br /><br />DUMMY  <br /><br />----------  <br /><br />Y  <br /><br /><br /><br />为什么会这样呢? 难道SQL的语法对DUAL不起作用吗?带着这个疑问, 我查询了一些ORACLE官方的资料. 原来ORACLE对DUAL表的操作做了一些内部处理,尽量保证DUAL表中只返回一条记录.当然这写内部操作是不可见的 .  <br /><br />看来ORACLE真是蕴藏着无穷的奥妙啊!  <br /><br /><br /><br />附: ORACLE关于DUAL表不同寻常特性的解释  <br /><br />There is internalized code that makes this happen. Code checks that ensure  <br /><br />that a table scan of SYS.DUAL only returns one row. Svrmgrl behaviour is  <br /><br />incorrect but this is now an obsolete product.  <br /><br />The base issue you should always remember and keep is: DUAL table should always  <br /><br />have 1 ROW. Dual is a normal table with one dummy column of varchar2(1).  <br /><br />This is basically used from several applications as a pseudo table for  <br /><br />getting results from a select statement that use functions like sysdate or other  <br /><br />prebuilt or application functions. If DUAL has no rows at all some applications  <br /><br />(that use DUAL) may fail with NO_DATA_FOUND exception. If DUAL has more than 1  <br /><br />row then applications (that use DUAL) may fail with TOO_MANY_ROWS exception.  <br /><br />So DUAL should ALWAYS have 1 and only 1 row <br /><br /><br /><br /><img src ="http://www.blogjava.net/kingwell/aggbug/45783.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kingwell/" target="_blank">KingWell</a> 2006-05-12 10:17 <a href="http://www.blogjava.net/kingwell/articles/45783.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle中的函数</title><link>http://www.blogjava.net/kingwell/articles/45775.html</link><dc:creator>KingWell</dc:creator><author>KingWell</author><pubDate>Fri, 12 May 2006 02:06:00 GMT</pubDate><guid>http://www.blogjava.net/kingwell/articles/45775.html</guid><wfw:comment>http://www.blogjava.net/kingwell/comments/45775.html</wfw:comment><comments>http://www.blogjava.net/kingwell/articles/45775.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kingwell/comments/commentRss/45775.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kingwell/services/trackbacks/45775.html</trackback:ping><description><![CDATA[
		<span id="ArticleContent1_ArticleContent1_lblContent"> 
<p><font size="2">SQL中的单记录函数<br />1.ASCII<br />返回与指定的字符对应的十进制数;<br />SQL&gt; select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') space from dual;</font></p><p><font size="2">        A         A      ZERO     SPACE<br />--------- --------- --------- ---------<br />       65        97        48        32</font></p><p><br /><font size="2">2.CHR<br />给出整数,返回对应的字符;<br />SQL&gt; select chr(54740) zhao,chr(65) chr65 from dual;</font></p><p><font size="2">ZH C<br />-- -<br />赵 A</font></p><p><font size="2">3.CONCAT<br />连接两个字符串;<br />SQL&gt; select concat('010-','88888888')||'转23'  高乾竞电话 from dual;</font></p><p><font size="2">高乾竞电话<br />----------------<br />010-88888888转23</font></p><p><font size="2">4.INITCAP<br />返回字符串并将字符串的第一个字母变为大写;<br />SQL&gt; select initcap('smith') upp from dual;</font></p><p><font size="2">UPP<br />-----<br />Smith</font></p><p><br /><font size="2">5.INSTR(C1,C2,I,J)<br />在一个字符串中搜索指定的字符,返回发现指定的字符的位置;<br />C1    被搜索的字符串<br />C2    希望搜索的字符串<br />I     搜索的开始位置,默认为1<br />J     出现的位置,默认为1<br />SQL&gt; select instr('oracle traning','ra',1,2) instring from dual;</font></p><p><font size="2"> INSTRING<br />---------<br />        9</font></p><p><br /><font size="2">6.LENGTH<br />返回字符串的长度;<br />SQL&gt; select name,length(name),addr,length(addr),sal,length(to_char(sal)) from gao.nchar_tst;</font></p><p><font size="2">NAME   LENGTH(NAME) ADDR             LENGTH(ADDR)       SAL LENGTH(TO_CHAR(SAL))<br />------ ------------ ---------------- ------------ --------- --------------------<br />高乾竞            3 北京市海锭区                6   9999.99                    7</font></p><p><font size="2"></font> </p><p><font size="2">7.LOWER<br />返回字符串,并将所有的字符小写<br />SQL&gt; select lower('AaBbCcDd')AaBbCcDd from dual;</font></p><p><font size="2">AABBCCDD<br />--------<br />aabbccdd</font></p><p><br /><font size="2">8.UPPER<br />返回字符串,并将所有的字符大写<br />SQL&gt; select upper('AaBbCcDd') upper from dual;</font></p><p><font size="2">UPPER<br />--------<br />AABBCCDD</font></p><p><font size="2"></font> </p><p><font size="2">9.RPAD和LPAD(粘贴字符)<br />RPAD  在列的右边粘贴字符<br />LPAD  在列的左边粘贴字符<br />SQL&gt; select lpad(rpad('gao',10,'*'),17,'*')from dual;</font></p><p><font size="2">LPAD(RPAD('GAO',1<br />-----------------<br />*******gao*******<br />不够字符则用*来填满</font></p><p><br /><font size="2">10.LTRIM和RTRIM<br />LTRIM  删除左边出现的字符串<br />RTRIM  删除右边出现的字符串<br />SQL&gt; select ltrim(rtrim('   gao qian jing   ',' '),' ') from dual;</font></p><p><font size="2">LTRIM(RTRIM('<br />-------------<br />gao qian jing</font></p><p><br /><font size="2">11.SUBSTR(string,start,count)<br />取子字符串,从start开始,取count个<br />SQL&gt; select substr('13088888888',3,8) from dual;</font></p><p><font size="2">SUBSTR('<br />--------<br />08888888</font></p><p><br /><font size="2">12.REPLACE('string','s1','s2')<br />string   希望被替换的字符或变量 <br />s1       被替换的字符串<br />s2       要替换的字符串<br />SQL&gt; select replace('he love you','he','i') from dual;</font></p><p><font size="2">REPLACE('H<br />----------<br />i love you</font></p><p><br /><font size="2">13.SOUNDEX<br />返回一个与给定的字符串读音相同的字符串<br />SQL&gt; create table table1(xm varchar(8));<br />SQL&gt; insert into table1 values('weather');<br />SQL&gt; insert into table1 values('wether');<br />SQL&gt; insert into table1 values('gao');</font></p><p><font size="2">SQL&gt; select xm from table1 where soundex(xm)=soundex('weather');</font></p><p><font size="2">XM<br />--------<br />weather<br />wether</font></p><p><br /><font size="2">14.TRIM('s' from 'string')<br />LEADING   剪掉前面的字符<br />TRAILING  剪掉后面的字符<br />如果不指定,默认为空格符 </font></p><p><font size="2">15.ABS<br />返回指定值的绝对值<br />SQL&gt; select abs(100),abs(-100) from dual;</font></p><p><font size="2"> ABS(100) ABS(-100)<br />--------- ---------<br />      100       100</font></p><p><br /><font size="2">16.ACOS<br />给出反余弦的值<br />SQL&gt; select acos(-1) from dual;</font></p><p><font size="2"> ACOS(-1)<br />---------<br />3.1415927</font></p><p><br /><font size="2">17.ASIN<br />给出反正弦的值<br />SQL&gt; select asin(0.5) from dual;</font></p><p><font size="2">ASIN(0.5)<br />---------<br />.52359878</font></p><p><br /><font size="2">18.ATAN<br />返回一个数字的反正切值<br />SQL&gt; select atan(1) from dual;</font></p><p><font size="2">  ATAN(1)<br />---------<br />.78539816</font></p><p><br /><font size="2">19.CEIL<br />返回大于或等于给出数字的最小整数<br />SQL&gt; select ceil(3.1415927) from dual;</font></p><p><font size="2">CEIL(3.1415927)<br />---------------<br />              4</font></p><p><br /><font size="2">20.COS<br />返回一个给定数字的余弦<br />SQL&gt; select cos(-3.1415927) from dual;</font></p><p><font size="2">COS(-3.1415927)<br />---------------<br />             -1</font></p><p><br /><font size="2">21.COSH<br />返回一个数字反余弦值<br />SQL&gt; select cosh(20) from dual;</font></p><p><font size="2"> COSH(20)<br />---------<br />242582598</font></p><p><br /><font size="2">22.EXP<br />返回一个数字e的n次方根<br />SQL&gt; select exp(2),exp(1) from dual;</font></p><p><font size="2">   EXP(2)    EXP(1)<br />--------- ---------<br />7.3890561 2.7182818</font></p><p><br /><font size="2">23.FLOOR<br />对给定的数字取整数<br />SQL&gt; select floor(2345.67) from dual;</font></p><p><font size="2">FLOOR(2345.67)<br />--------------<br />          2345</font></p><p><br /><font size="2">24.LN<br />返回一个数字的对数值<br />SQL&gt; select ln(1),ln(2),ln(2.7182818) from dual;</font></p><p><font size="2">    LN(1)     LN(2) LN(2.7182818)<br />--------- --------- -------------<br />        0 .69314718     .99999999</font></p><p><br /><font size="2">25.LOG(n1,n2)<br />返回一个以n1为底n2的对数 <br />SQL&gt; select log(2,1),log(2,4) from dual;</font></p><p><font size="2"> LOG(2,1)  LOG(2,4)<br />--------- ---------<br />        0         2</font></p><p><br /><font size="2">26.MOD(n1,n2)<br />返回一个n1除以n2的余数<br />SQL&gt; select mod(10,3),mod(3,3),mod(2,3) from dual;</font></p><p><font size="2">MOD(10,3)  MOD(3,3)  MOD(2,3)<br />--------- --------- ---------<br />        1         0         2</font></p><p><br /><font size="2">27.POWER<br />返回n1的n2次方根<br />SQL&gt; select power(2,10),power(3,3) from dual;</font></p><p><font size="2">POWER(2,10) POWER(3,3)<br />----------- ----------<br />       1024         27</font></p><p><br /><font size="2">28.ROUND和TRUNC<br />按照指定的精度进行舍入<br />SQL&gt; select round(55.5),round(-55.4),trunc(55.5),trunc(-55.5) from dual;</font></p><p><font size="2">ROUND(55.5) ROUND(-55.4) TRUNC(55.5) TRUNC(-55.5)<br />----------- ------------ ----------- ------------<br />         56          -55          55          -55</font></p><p><br /><font size="2">29.SIGN<br />取数字n的符号,大于0返回1,小于0返回-1,等于0返回0<br />SQL&gt; select sign(123),sign(-100),sign(0) from dual;</font></p><p><font size="2">SIGN(123) SIGN(-100)   SIGN(0)<br />--------- ---------- ---------<br />        1         -1         0</font></p><p><br /><font size="2">30.SIN<br />返回一个数字的正弦值<br />SQL&gt; select sin(1.57079) from dual;</font></p><p><font size="2">SIN(1.57079)<br />------------<br />           1</font></p><p><br /><font size="2">31.SIGH<br />返回双曲正弦的值<br />SQL&gt; select sin(20),sinh(20) from dual;</font></p><p><font size="2">  SIN(20)  SINH(20)<br />--------- ---------<br />.91294525 242582598</font></p><p><br /><font size="2">32.SQRT<br />返回数字n的根<br />SQL&gt; select sqrt(64),sqrt(10) from dual;</font></p><p><font size="2"> SQRT(64)  SQRT(10)<br />--------- ---------<br />        8 3.1622777</font></p><p><br /><font size="2">33.TAN<br />返回数字的正切值<br />SQL&gt; select tan(20),tan(10) from dual;</font></p><p><font size="2">  TAN(20)   TAN(10)<br />--------- ---------<br />2.2371609 .64836083</font></p><p><br /><font size="2">34.TANH<br />返回数字n的双曲正切值<br />SQL&gt; select tanh(20),tan(20) from dual;</font></p><p><font size="2"> TANH(20)   TAN(20)<br />--------- ---------<br />        1 2.2371609</font></p><p><font size="2"></font> </p><p><font size="2">35.TRUNC<br />按照指定的精度截取一个数<br />SQL&gt; select trunc(124.1666,-2) trunc1,trunc(124.16666,2) from dual;</font></p><p><font size="2">   TRUNC1 TRUNC(124.16666,2)<br />--------- ------------------<br />      100             124.16</font></p><p><font size="2"></font> </p><p><font size="2">36.ADD_MONTHS<br />增加或减去月份<br />SQL&gt; select to_char(add_months(to_date('199912','yyyymm'),2),'yyyymm') from dual;</font></p><p><font size="2">TO_CHA<br />------<br />200002<br />SQL&gt; select to_char(add_months(to_date('199912','yyyymm'),-2),'yyyymm') from dual;</font></p><p><font size="2">TO_CHA<br />------<br />199910</font></p><p><br /><font size="2">37.LAST_DAY<br />返回日期的最后一天<br />SQL&gt; select to_char(sysdate,'yyyy.mm.dd'),to_char((sysdate)+1,'yyyy.mm.dd') from dual;</font></p><p><font size="2">TO_CHAR(SY TO_CHAR((S<br />---------- ----------<br />2004.05.09 2004.05.10<br />SQL&gt; select last_day(sysdate) from dual;</font></p><p><font size="2">LAST_DAY(S<br />----------<br />31-5月 -04</font></p><p><br /><font size="2">38.MONTHS_BETWEEN(date2,date1)<br />给出date2-date1的月份<br />SQL&gt; select months_between('19-12月-1999','19-3月-1999') mon_between from dual;</font></p><p><font size="2">MON_BETWEEN<br />-----------<br />          9<br />SQL&gt;selectmonths_between(to_date('2000.05.20','yyyy.mm.dd'),to_date('2005.05.20','yyyy.mm.dd')) mon_betw from dual;</font></p><p><font size="2"> MON_BETW<br />---------<br />      -60</font></p><p><br /><font size="2">39.NEW_TIME(date,'this','that')<br />给出在this时区=other时区的日期和时间<br />SQL&gt; select to_char(sysdate,'yyyy.mm.dd hh24:mi:ss') bj_time,to_char(new_time<br />  2  (sysdate,'PDT','GMT'),'yyyy.mm.dd hh24:mi:ss') los_angles from dual;</font></p><p><font size="2">BJ_TIME             LOS_ANGLES<br />------------------- -------------------<br />2004.05.09 11:05:32 2004.05.09 18:05:32</font></p><p><br /><font size="2">40.NEXT_DAY(date,'day')<br />给出日期date和星期x之后计算下一个星期的日期<br />SQL&gt; select next_day('18-5月-2001','星期五') next_day from dual;</font></p><p><font size="2">NEXT_DAY<br />----------<br />25-5月 -01</font></p><p><font size="2"></font> </p><p><font size="2">41.SYSDATE<br />用来得到系统的当前日期<br />SQL&gt; select to_char(sysdate,'dd-mm-yyyy day') from dual;</font></p><p><font size="2">TO_CHAR(SYSDATE,'<br />-----------------<br />09-05-2004 星期日<br />trunc(date,fmt)按照给出的要求将日期截断,如果fmt='mi'表示保留分,截断秒<br />SQL&gt; select to_char(trunc(sysdate,'hh'),'yyyy.mm.dd hh24:mi:ss') hh,<br />  2  to_char(trunc(sysdate,'mi'),'yyyy.mm.dd hh24:mi:ss') hhmm from dual;</font></p><p><font size="2">HH                  HHMM<br />------------------- -------------------<br />2004.05.09 11:00:00 2004.05.09 11:17:00</font></p><p><font size="2"></font> </p><p><font size="2">42.CHARTOROWID<br />将字符数据类型转换为ROWID类型<br />SQL&gt; select rowid,rowidtochar(rowid),ename from scott.emp;</font></p><p><font size="2">ROWID              ROWIDTOCHAR(ROWID) ENAME<br />------------------ ------------------ ----------<br />AAAAfKAACAAAAEqAAA AAAAfKAACAAAAEqAAA SMITH<br />AAAAfKAACAAAAEqAAB AAAAfKAACAAAAEqAAB ALLEN<br />AAAAfKAACAAAAEqAAC AAAAfKAACAAAAEqAAC WARD<br />AAAAfKAACAAAAEqAAD AAAAfKAACAAAAEqAAD JONES</font></p><p><br /><font size="2">43.CONVERT(c,dset,sset)<br />将源字符串 sset从一个语言字符集转换到另一个目的dset字符集<br />SQL&gt; select convert('strutz','we8hp','f7dec') "conversion" from dual;</font></p><p><font size="2">conver<br />------<br />strutz</font></p><p><br /><font size="2">44.HEXTORAW<br />将一个十六进制构成的字符串转换为二进制</font></p><p><br /><font size="2">45.RAWTOHEXT<br />将一个二进制构成的字符串转换为十六进制</font></p><p><font size="2"></font> </p><p><font size="2">46.ROWIDTOCHAR<br />将ROWID数据类型转换为字符类型</font></p><p><font size="2"></font> </p><p><font size="2">47.TO_CHAR(date,'format')<br />SQL&gt; select to_char(sysdate,'yyyy/mm/dd hh24:mi:ss') from dual;</font></p><p><font size="2">TO_CHAR(SYSDATE,'YY<br />-------------------<br />2004/05/09 21:14:41</font></p><p><font size="2"></font> </p><p><font size="2">48.TO_DATE(string,'format')<br />将字符串转化为ORACLE中的一个日期</font></p><p><br /><font size="2">49.TO_MULTI_BYTE<br />将字符串中的单字节字符转化为多字节字符<br />SQL&gt;  select to_multi_byte('高') from dual;</font></p><p><font size="2">TO<br />--<br />高</font></p><p><br /><font size="2">50.TO_NUMBER<br />将给出的字符转换为数字<br />SQL&gt; select to_number('1999') year from dual;</font></p><p><font size="2">     YEAR<br />---------<br />     1999</font></p><p><br /><font size="2">51.BFILENAME(dir,file)<br />指定一个外部二进制文件<br />SQL&gt;insert into file_tb1 values(bfilename('lob_dir1','image1.gif'));</font></p><p><br /><font size="2">52.CONVERT('x','desc','source')<br />将x字段或变量的源source转换为desc<br />SQL&gt; select sid,serial#,username,decode(command,<br />  2  0,'none',<br />  3  2,'insert',<br />  4  3,<br />  5  'select',<br />  6  6,'update',<br />  7  7,'delete',<br />  8  8,'drop',<br />  9  'other') cmd  from v$session where type!='background';</font></p><p><font size="2">      SID   SERIAL# USERNAME                       CMD<br />--------- --------- ------------------------------ ------<br />        1         1                                none<br />        2         1                                none<br />        3         1                                none<br />        4         1                                none<br />        5         1                                none<br />        6         1                                none<br />        7      1275                                none<br />        8      1275                                none<br />        9        20 GAO                            select<br />       10        40 GAO                            none</font></p><p><br /><font size="2">53.DUMP(s,fmt,start,length)<br />DUMP函数以fmt指定的内部数字格式返回一个VARCHAR2类型的值<br />SQL&gt; col global_name for a30<br />SQL&gt; col dump_string for a50<br />SQL&gt; set lin 200<br />SQL&gt; select global_name,dump(global_name,1017,8,5) dump_string from global_name;</font></p><p><font size="2">GLOBAL_NAME                    DUMP_STRING<br />------------------------------ --------------------------------------------------<br />ORACLE.WORLD                   Typ=1 Len=12 CharacterSet=ZHS16GBK: W,O,R,L,D</font></p><p><br /><font size="2">54.EMPTY_BLOB()和EMPTY_CLOB()<br />这两个函数都是用来对大数据类型字段进行初始化操作的函数</font></p><p><br /><font size="2">55.GREATEST<br />返回一组表达式中的最大值,即比较字符的编码大小.<br />SQL&gt; select greatest('AA','AB','AC') from dual;</font></p><p><font size="2">GR<br />--<br />AC<br />SQL&gt; select greatest('啊','安','天') from dual;</font></p><p><font size="2">GR<br />--<br />天</font></p><p><br /><font size="2">56.LEAST<br />返回一组表达式中的最小值 <br />SQL&gt; select least('啊','安','天') from dual;</font></p><p><font size="2">LE<br />--<br />啊</font></p><p><br /><font size="2">57.UID<br />返回标识当前用户的唯一整数<br />SQL&gt; show user<br />USER 为"GAO"<br />SQL&gt; select username,user_id from dba_users where user_id=uid;</font></p><p><font size="2">USERNAME                         USER_ID<br />------------------------------ ---------<br />GAO                                   25</font></p><p><font size="2"></font> </p><p><font size="2">58.USER<br />返回当前用户的名字<br />SQL&gt; select user from  dual;</font></p><p><font size="2">USER<br />------------------------------<br />GAO</font></p><p><br /><font size="2">59.USEREVN<br />返回当前用户环境的信息,opt可以是:<br />ENTRYID,SESSIONID,TERMINAL,ISDBA,LABLE,LANGUAGE,CLIENT_INFO,LANG,VSIZE<br />ISDBA  查看当前用户是否是DBA如果是则返回true<br />SQL&gt; select userenv('isdba') from dual;</font></p><p><font size="2">USEREN<br />------<br />FALSE<br />SQL&gt; select userenv('isdba') from dual;</font></p><p><font size="2">USEREN<br />------<br />TRUE<br />SESSION<br />返回会话标志<br />SQL&gt; select userenv('sessionid') from dual;</font></p><p><font size="2">USERENV('SESSIONID')<br />--------------------<br />                 152<br />ENTRYID<br />返回会话人口标志<br />SQL&gt; select userenv('entryid') from dual;</font></p><p><font size="2">USERENV('ENTRYID')<br />------------------<br />                 0<br />INSTANCE<br />返回当前INSTANCE的标志<br />SQL&gt; select userenv('instance') from dual;</font></p><p><font size="2">USERENV('INSTANCE')<br />-------------------<br />                  1<br />LANGUAGE<br />返回当前环境变量<br />SQL&gt; select userenv('language') from dual;</font></p><p><font size="2">USERENV('LANGUAGE')<br />----------------------------------------------------<br />SIMPLIFIED CHINESE_CHINA.ZHS16GBK<br />LANG<br />返回当前环境的语言的缩写<br />SQL&gt; select userenv('lang') from dual;</font></p><p><font size="2">USERENV('LANG')<br />----------------------------------------------------<br />ZHS<br />TERMINAL<br />返回用户的终端或机器的标志<br />SQL&gt; select userenv('terminal') from dual;</font></p><p><font size="2">USERENV('TERMINA<br />----------------<br />GAO<br />VSIZE(X)<br />返回X的大小(字节)数<br />SQL&gt; select vsize(user),user from dual;</font></p><p><font size="2">VSIZE(USER) USER<br />----------- ------------------------------<br />          6 SYSTEM</font></p><p><font size="2"></font> </p><p><font size="2">60.AVG(DISTINCT|ALL)<br />all表示对所有的值求平均值,distinct只对不同的值求平均值<br />SQLWKS&gt; create table table3(xm varchar(8),sal number(7,2));<br />语句已处理。<br />SQLWKS&gt;  insert into table3 values('gao',1111.11);<br />SQLWKS&gt;  insert into table3 values('gao',1111.11);<br />SQLWKS&gt;  insert into table3 values('zhu',5555.55);<br />SQLWKS&gt; commit;</font></p><p><font size="2">SQL&gt; select avg(distinct sal) from gao.table3;</font></p><p><font size="2">AVG(DISTINCTSAL)<br />----------------<br />         3333.33</font></p><p><font size="2">SQL&gt; select avg(all sal) from gao.table3;</font></p><p><font size="2">AVG(ALLSAL)<br />-----------<br />    2592.59</font></p><p><br /><font size="2">61.MAX(DISTINCT|ALL)<br />求最大值,ALL表示对所有的值求最大值,DISTINCT表示对不同的值求最大值,相同的只取一次<br />SQL&gt; select max(distinct sal) from scott.emp;</font></p><p><font size="2">MAX(DISTINCTSAL)<br />----------------<br />            5000</font></p><p><br /><font size="2">62.MIN(DISTINCT|ALL)<br />求最小值,ALL表示对所有的值求最小值,DISTINCT表示对不同的值求最小值,相同的只取一次<br />SQL&gt; select min(all sal) from gao.table3;</font></p><p><font size="2">MIN(ALLSAL)<br />-----------<br />    1111.11</font></p><p><br /><font size="2">63.STDDEV(distinct|all)<br />求标准差,ALL表示对所有的值求标准差,DISTINCT表示只对不同的值求标准差<br />SQL&gt; select stddev(sal) from scott.emp;</font></p><p><font size="2">STDDEV(SAL)<br />-----------<br />  1182.5032</font></p><p><font size="2">SQL&gt; select stddev(distinct sal) from scott.emp;</font></p><p><font size="2">STDDEV(DISTINCTSAL)<br />-------------------<br />           1229.951</font></p><p><font size="2"></font> </p><p><font size="2">64.VARIANCE(DISTINCT|ALL)<br />求协方差 </font></p><p><font size="2">SQL&gt; select variance(sal) from scott.emp;</font></p><p><font size="2">VARIANCE(SAL)<br />-------------<br />    1398313.9</font></p><p><br /><font size="2">65.GROUP BY<br />主要用来对一组数进行统计<br />SQL&gt; select deptno,count(*),sum(sal) from scott.emp group by deptno;</font></p><p><font size="2">   DEPTNO  COUNT(*)  SUM(SAL)<br />--------- --------- ---------<br />       10         3      8750<br />       20         5     10875<br />       30         6      9400</font></p><p><font size="2"></font> </p><p><font size="2">66.HAVING<br />对分组统计再加限制条件<br />SQL&gt; select deptno,count(*),sum(sal) from scott.emp group by deptno having count(*)&gt;=5;</font></p><p><font size="2">   DEPTNO  COUNT(*)  SUM(SAL)<br />--------- --------- ---------<br />       20         5     10875<br />       30         6      9400<br />SQL&gt; select deptno,count(*),sum(sal) from scott.emp having count(*)&gt;=5 group by deptno ;</font></p><p><font size="2">   DEPTNO  COUNT(*)  SUM(SAL)<br />--------- --------- ---------<br />       20         5     10875<br />       30         6      9400</font></p><p><br /><font size="2">67.ORDER BY<br />用于对查询到的结果进行排序输出<br />SQL&gt; select deptno,ename,sal from scott.emp order by deptno,sal desc;</font></p><p><font size="2">   DEPTNO ENAME            SAL<br />--------- ---------- ---------<br />       10 KING            5000<br />       10 CLARK           2450<br />       10 MILLER          1300<br />       20 SCOTT           3000<br />       20 FORD            3000<br />       20 JONES           2975<br />       20 ADAMS           1100<br />       20 SMITH            800<br />       30 BLAKE           2850<br />       30 ALLEN           1600<br />       30 TURNER          1500<br />       30 WARD            1250<br />       30 MARTIN          1250<br />       30 JAMES            950<br /></font></p></span>
		<br />
		<div style="FONT-SIZE: 14px; LINE-HEIGHT: 25px">
				<strong>作者Blog：</strong>
				<a id="ArticleContent1_ArticleContent1_AuthorBlogLink" href="http://blog.csdn.net/AustinLei/" target="_blank">http://blog.csdn.net/AustinLei/</a>
		</div>
<img src ="http://www.blogjava.net/kingwell/aggbug/45775.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kingwell/" target="_blank">KingWell</a> 2006-05-12 10:06 <a href="http://www.blogjava.net/kingwell/articles/45775.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>