熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

ORACLE內置函數大全

2013-11-13 16:22:58  來源: Oracle 

  SQL中的單記錄函數
ASCII
返回與指定的字符對應的十進制數;
SQL> select ascii(A) Aascii(a) aascii() zeroascii( ) space from dual;

  A         A      ZERO     SPACE

                              

  CHR
給出整數返回對應的字符;
SQL> select chr() zhaochr() chr from dual;

  ZH C

趙 A

  CONCAT
連接兩個字符串;
SQL> select concat()||  高乾競電話 from dual;

  高乾競電話

  INITCAP
返回字符串並將字符串的第一個字母變為大寫;
SQL> select initcap(smith) upp from dual;

  UPP

Smith

  INSTR(CCIJ)
在一個字符串中搜索指定的字符返回發現指定的字符的位置;
C    被搜索的字符串
C    希望搜索的字符串
I     搜索的開始位置默認為
J     出現的位置默認為
SQL> select instr(oracle traningra) instring from dual;

  INSTRING

       

  LENGTH
返回字符串的長度;
SQL> select namelength(name)addrlength(addr)sallength(to_char(sal)) from gaonchar_tst;

  NAME   LENGTH(NAME) ADDR             LENGTH(ADDR)       SAL LENGTH(TO_CHAR(SAL))

高乾競            北京市海錠區                                      

  LOWER
返回字符串並將所有的字符小寫
SQL> select lower(AaBbCcDd)AaBbCcDd from dual;

  AABBCCDD

aabbccdd

  UPPER
返回字符串並將所有的字符大寫
SQL> select upper(AaBbCcDd) upper from dual;

  UPPER

AABBCCDD

  RPAD和LPAD(粘貼字符)
RPAD  在列的右邊粘貼字符
LPAD  在列的左邊粘貼字符
SQL> select lpad(rpad(gao*)*)from dual;

  LPAD(RPAD(GAO

*******gao*******
不夠字符則用*來填滿

  LTRIM和RTRIM
LTRIM  刪除左邊出現的字符串
RTRIM  刪除右邊出現的字符串
SQL> select ltrim(rtrim(   gao qian jing   ) ) from dual;

  LTRIM(RTRIM(

gao qian jing

  SUBSTR(stringstartcount)
取子字符串從start開始取count個
SQL> select substr() from dual;

  SUBSTR(

  REPLACE(stringss)
string   希望被替換的字符或變量
s       被替換的字符串
s       要替換的字符串
SQL> select replace(he love youhei) from dual;

  REPLACE(H

i love you

  SOUNDEX
返回一個與給定的字符串讀音相同的字符串
SQL> create table table(xm varchar());
SQL> insert into table values(weather);
SQL> insert into table values(wether);
SQL> insert into table values(gao);

  SQL> select xm from table where soundex(xm)=soundex(weather);

  XM

weather
wether

  TRIM(s from string)
LEADING   剪掉前面的字符
TRAILING  剪掉後面的字符
如果不指定默認為空格符

  ABS
返回指定值的絕對值
SQL> select abs()abs() from dual;

  ABS() ABS()

            

  ACOS
給出反余弦的值
SQL> select acos() from dual;

  ACOS()

  ASIN
給出反正弦的值
SQL> select asin() from dual;

  ASIN()

  ATAN
返回一個數字的反正切值
SQL> select atan() from dual;

  ATAN()

  CEIL
返回大於或等於給出數字的最小整數
SQL> select ceil() from dual;

  CEIL()

             

  COS
返回一個給定數字的余弦
SQL> select cos() from dual;

  COS()

            

  COSH
返回一個數字反余弦值
SQL> select cosh() from dual;

  COSH()

  EXP
返回一個數字e的n次方根
SQL> select exp()exp() from dual;

  EXP()    EXP()

  FLOOR
對給定的數字取整數
SQL> select floor() from dual;

  FLOOR()

         

  LN
返回一個數字的對數值
SQL> select ln()ln()ln() from dual;

  LN()     LN() LN()

            

  LOG(nn)
返回一個以n為底n的對數
SQL> select log()log() from dual;

  LOG()  LOG()

                

  MOD(nn)
返回一個n除以n的余數
SQL> select mod()mod()mod() from dual;

  MOD()  MOD()  MOD()

                         

  POWER
返回n的n次方根
SQL> select power()power() from dual;

  POWER() POWER()

               

  ROUND和TRUNC
按照指定的精度進行捨入
SQL> select round()round()trunc()trunc() from dual;

  ROUND() ROUND() TRUNC() TRUNC()

                                      

  SIGN
取數字n的符號大於返回小於返回等於返回
SQL> select sign()sign()sign() from dual;

  SIGN() SIGN()   SIGN()

                         

  SIN
返回一個數字的正弦值
SQL> select sin() from dual;

  SIN()

          

  SIGH
返回雙曲正弦的值
SQL> select sin()sinh() from dual;

  SIN()  SINH()

  SQRT
返回數字n的根
SQL> select sqrt()sqrt() from dual;

  SQRT()  SQRT()

       

  TAN
返回數字的正切值
SQL> select tan()tan() from dual;

  TAN()   TAN()

  TANH
返回數字n的雙曲正切值
SQL> select tanh()tan() from dual;

  TANH()   TAN()

       

  TRUNC
按照指定的精度截取一個數
SQL> select trunc() trunctrunc() from dual;

  TRUNC TRUNC()

                  

  ADD_MONTHS
增加或減去月份
SQL> select to_char(add_months(to_date(yyyymm))yyyymm) from dual;

  TO_CHA


SQL> select to_char(add_months(to_date(yyyymm))yyyymm) from dual;

  TO_CHA

  LAST_DAY
返回日期的最後一天
SQL> select to_char(sysdateyyyymmdd)to_char((sysdate)+yyyymmdd) from dual;

  TO_CHAR(SY TO_CHAR((S


SQL> select last_day(sysdate) from dual;

  LAST_DAY(S

  MONTHS_BETWEEN(datedate)
給出datedate的月份
SQL> select months_between() mon_between from dual;

  MON_BETWEEN

         
SQL>selectmonths_between(to_date(yyyymmdd)to_date(yyyymmdd)) mon_betw from dual;

  MON_BETW

     

  NEW_TIME(datethisthat)
給出在this時區=other時區的日期和時間
SQL> select to_char(sysdateyyyymmdd hh:mi:ss) bj_timeto_char(new_time
    (sysdatePDTGMT)yyyymmdd hh:mi:ss) los_angles from dual;

  BJ_TIME             LOS_ANGLES

:: ::

  NEXT_DAY(dateday)
給出日期date和星期x之後計算下一個星期的日期
SQL> select next_day(星期五) next_day from dual;

  NEXT_DAY

  SYSDATE
用來得到系統的當前日期
SQL> select to_char(sysdateddmmyyyy day) from dual;

  TO_CHAR(SYSDATE

星期日
trunc(datefmt)按照給出的要求將日期截斷如果fmt=mi表示保留分截斷秒
SQL> select to_char(trunc(sysdatehh)yyyymmdd hh:mi:ss) hh
    to_char(trunc(sysdatemi)yyyymmdd hh:mi:ss) hhmm from dual;

  HH                  HHMM

:: ::

  CHARTOROWID
將字符數據類型轉換為ROWID類型
SQL> select rowidrowidtochar(rowid)ename from scottemp;

  ROWID              ROWIDTOCHAR(ROWID) ENAME

AAAAfKAACAAAAEqAAA AAAAfKAACAAAAEqAAA SMITH
AAAAfKAACAAAAEqAAB AAAAfKAACAAAAEqAAB ALLEN
AAAAfKAACAAAAEqAAC AAAAfKAACAAAAEqAAC WARD
AAAAfKAACAAAAEqAAD AAAAfKAACAAAAEqAAD JONES

  CONVERT(cdsetsset)
將源字符串 sset從一個語言字符集轉換到另一個目的dset字符集
SQL> select convert(strutzwehpfdec) conversion from dual;

  conver

strutz

  HEXTORAW
將一個十六進制構成的字符串轉換為二進制

  RAWTOHEXT
將一個二進制構成的字符串轉換為十六進制

  ROWIDTOCHAR
將ROWID數據類型轉換為字符類型

  TO_CHAR(dateformat)
SQL> select to_char(sysdateyyyy/mm/dd hh:mi:ss) from dual;

  TO_CHAR(SYSDATEYY

// ::

  TO_DATE(stringformat)
將字符串轉化為ORACLE中的一個日期

  TO_MULTI_BYTE
將字符串中的單字節字符轉化為多字節字符
SQL>  select to_multi_byte() from dual;

  TO

  TO_NUMBER
將給出的字符轉換為數字
SQL> select to_number() year from dual;

  YEAR

    

  BFILENAME(dirfile)
指定一個外部二進制文件
SQL>insert into file_tb values(bfilename(lob_dirimagegif));

  CONVERT(xdescsource)
將x字段或變量的源source轉換為desc
SQL> select sidserial#usernamedecode(command
    none
    insert
   
    select
    update
    delete
    drop
    other) cmd  from v$session where type!=background;

  SID   SERIAL# USERNAME                       CMD

                                                 none
                                                 none
                                                 none
                                                 none
                                                 none
                                                 none
                                              none
                                              none
                GAO                            select
               GAO                            none

  DUMP(sfmtstartlength)
DUMP函數以fmt指定的內部數字格式返回一個VARCHAR類型的值
SQL> col global_name for a
SQL> col dump_string for a
SQL> set lin
SQL> select global_namedump(global_name) dump_string from global_name;

  GLOBAL_NAME                    DUMP_STRING

ORACLEWORLD                   Typ= Len= CharacterSet=ZHSGBK: WORLD

  EMPTY_BLOB()和EMPTY_CLOB()
這兩個函數都是用來對大數據類型字段進行初始化操作的函數

  GREATEST
返回一組表達式中的最大值即比較字符的編碼大小
SQL> select greatest(AAABAC) from dual;

  GR

AC
SQL> select greatest() from dual;

  GR

  LEAST
返回一組表達式中的最小值
SQL> select least() from dual;

  LE

  UID
返回標識當前用戶的唯一整數
SQL> show user
USER 為GAO
SQL> select usernameuser_id from dba_users where user_id=uid;

  USERNAME                         USER_ID

GAO                                  

  USER
返回當前用戶的名字
SQL> select user from  dual;

  USER

GAO

  USEREVN
返回當前用戶環境的信息opt可以是:
ENTRYIDSESSIONIDTERMINALISDBALABLELANGUAGECLIENT_INFOLANGVSIZE
ISDBA  查看當前用戶是否是DBA如果是則返回true
SQL> select userenv(isdba) from dual;

  USEREN

FALSE
SQL> select userenv(isdba) from dual;

  USEREN

TRUE
SESSION
返回會話標志
SQL> select userenv(sessionid) from dual;

  USERENV(SESSIONID)

                
ENTRYID
返回會話人口標志
SQL> select userenv(entryid) from dual;

  USERENV(ENTRYID)

                
INSTANCE
返回當前INSTANCE的標志
SQL> select userenv(instance) from dual;

  USERENV(INSTANCE)

                 
LANGUAGE
返回當前環境變量
SQL> select userenv(language) from dual;

  USERENV(LANGUAGE)

SIMPLIFIED CHINESE_CHINAZHSGBK
LANG
返回當前環境的語言的縮寫
SQL> select userenv(lang) from dual;

  USERENV(LANG)

ZHS
TERMINAL
返回用戶的終端或機器的標志
SQL> select userenv(terminal) from dual;

  USERENV(TERMINA

GAO
VSIZE(X)
返回X的大小(字節)數
SQL> select vsize(user)user from dual;

  VSIZE(USER) USER

          SYSTEM

  AVG(DISTINCT|ALL)
all表示對所有的值求平均值distinct只對不同的值求平均值
SQLWKS> create table table(xm varchar()sal number());
語句已處理
SQLWKS>  insert into table values(gao);
SQLWKS>  insert into table values(gao);
SQLWKS>  insert into table values(zhu);
SQLWKS> commit;

  SQL> select avg(distinct sal) from gaotable;

  AVG(DISTINCTSAL)

        

  SQL> select avg(all sal) from gaotable;

  AVG(ALLSAL)

   

  MAX(DISTINCT|ALL)
求最大值ALL表示對所有的值求最大值DISTINCT表示對不同的值求最大值相同的只取一次
  返回選擇列表項目的最大值如果x是字符串數據類型他返回一個VARCHAR數據類型如果X是一個DATA數據類型返回一個日期如果X是numeric數據類型返回一個數字注意distinct和all不起作用應為最大值與這兩種設置是相同的
SQL> select max(distinct sal) from scottemp;

  MAX(DISTINCTSAL)

           

  MIN(DISTINCT|ALL)
求最小值ALL表示對所有的值求最小值DISTINCT表示對不同的值求最小值相同的只取一次
SQL> select min(all sal) from gaotable;

  MIN(ALLSAL)

   

  STDDEV(distinct|all)
求標准差ALL表示對所有的值求標准差DISTINCT表示只對不同的值求標准差
SQL> select stddev(sal) from scottemp;

  STDDEV(SAL)

 

  SQL> select stddev(distinct sal) from scottemp;

  STDDEV(DISTINCTSAL)

          

  VARIANCE(DISTINCT|ALL)
求協方差

  SQL> select variance(sal) from scottemp;

  VARIANCE(SAL)

   

  GROUP BY
主要用來對一組數進行統計
SQL> select deptnocount(*)sum(sal) from scottemp group by deptno;

  DEPTNO  COUNT(*)  SUM(SAL)

                     
                    
                     

  HAVING
對分組統計再加限制條件
SQL> select deptnocount(*)sum(sal) from scottemp group by deptno having count(*)>=;

  DEPTNO  COUNT(*)  SUM(SAL)

                    
                     
SQL> select deptnocount(*)sum(sal) from scottemp having count(*)>= group by deptno ;

  DEPTNO  COUNT(*)  SUM(SAL)

                    
                     

  ORDER BY
用於對查詢到的結果進行排序輸出
SQL> select deptnoenamesal from scottemp order by deptnosal desc;

  DEPTNO ENAME            SAL

       KING           
       CLARK          
       MILLER         
       SCOTT          
       FORD           
       JONES          
       ADAMS          
       SMITH           
       BLAKE          
       ALLEN          
       TURNER         
       WARD           
       MARTIN         
       JAMES           


From:http://tw.wingwit.com/Article/program/Oracle/201311/18239.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.