以下是我总结的一些函数:
ORACLE函数
数值函数
l ABS(n)—绝对值
l CEIL(n)—大于等于n的最小整数
l FLOOR(n)—小于等于n的最小整数
l MOD(m,n) —m除于n的余数
l ROUND(n,m) —四舍五入
l TRUNC(n,m) —截取n到m位
字符函数
l CHR(n)—select chr(68) from dual;
l CONCAT(char1,char2) —select concat(‘a’,’b’) from dual;   //等于||
l INITCAP—select initcap('gone with the wind') from dual;
l LOWER(str)
l LPAD(char1,n.char2)
l LTRIMchar)
l REPLACE--Select REPLACE(‘JACK AND JUE’,’J’,’BL’) FROM DUAL;
l RPAD
l RTRIM
l SUBSTR—字节
l SUBSTRB—字符
l TRANSLATE
l UPPER
l ASCII(char)
l INSTR/ INSTRB
l LENGTH/ LENGTH
日期函数
l ADD_MONTHS(d,n):加上n个月的日期
l LAST_DAY:本月最后一天
l MONTHS_BETWEEN:相差月数
l SYSDATE
l ROUND
l TRUNC
转换函数
l CHARTOROWID:
l CONVERT:字符集之间的转换
SELECT CONVERT(‘ABCD’,’US7ASCII’,’ZHS16GBK’) FROM DUAL;
l HEXTORAW
l RAWTOHEX
l ROWIDTOCHAR
l TO_CHAR
l TO_DATE
l TO_MULTI_BYTE
l TO_NUMBER
l TO_SINGLE_BYTE
l TRANSLATE USING
其它函数
l DUMP
l EMPTY_BLOB() / EMPTY_CLOB() 
l BFILENAME
l CREATEST—最大值
l LEAST—最小值
l NVL
l UID
l USER
l USERENV
SELECT USERENV(‘ISDBA’) FROM DUAL;
SELECT USERENV(‘LANGUAGE’) FROM DUAL;
SELECT USERENV(‘LANG’) FROM DUAL;
SELECT USERENV(‘TERMINAL’) FROM DUAL;
SELECT USERENV(‘SESSIONID’) FROM DUAL;
SELECT USERENV(‘ENTRYID’) FROM DUAL;
SELECT USERENV(‘INSTANCE’) FROM DUAL;

解决方案 »

  1.   

    ORACLE还有很多函数,特别是为数据仓库设计的分析函数很是值得学习在ORACLE文档Oracle8i SQL Reference 章的Function节中列举了所有的函数(包括分析函数),可以看看
      

  2.   

    参考下PL/SQL的书籍吧!
       与其他数据库有什么不同如:DECODE
      

  3.   

    声明:如下内容为抄袭的 :)       ORACLE內部函數篇
    204. 如何得到字符串的第一個字符的ASCII值?
        ASCII(CHAR)
        SELECT ASCII('ABCDE') FROM DUAL;
        結果: 65205. 如何得到數值N指定的字符?
        CHR(N)
        SELECT CHR(68) FROM DUAL;
        結果: D206. 如何連接兩個字符串?
        CONCAT(CHAR1,CHAR2)
        SELECT CONCAT('ABC','DEFGH') FROM DUAL;
        結果: 'ABCDEFGH'207. 如何將列中的數值代替為字符串?
        DECODE(CHAR,N1,CHAR1,N2,CHAR2...)
        SELECT DECODE(DAY,1,'SUN',2,'MON') FROM DUAL;208. INITCAP(CHAR)
        將字符串CHAR的第一個字符為大寫,其余為小寫.
        SELECT INITCAP('ABCDE') FROM DUAL;209. LENGTH(CHAR)
        取一字符串CHAR的長度.
        SELECT LENGTH('ABCDE') FROM DUAL;210. LOWER(CHAR)
        將字符串CHAR全部變為小寫.
        SELECT LOWER('ABCDE') FROM DUAL;211. LPAD(CHAR1,N,CHAR2)
        用字符串CHAR2包括的字符左填CHAR1,使其長度為N.
        SELECT LPAD('ABCDEFG',10'123') FROM DUAL;
        結果: '123ABCDEFG'
      
    212. LTRIM(CHAR,SET)
        從字符串CHAR的左邊移去字符串SET中的字符,直到第一個不是SET中的字符為止.
        SELECT ('CDEFG','CD') FROM DUAL;
        結果: 'EFG'213. NLS_INITCAP(CHAR)
        取字符CHAR的第一個字符大寫,其余字符為小寫.
        SELECT NLS_INITCAP('ABCDE') FROM DUAL;214. NLS_LOWER(CHAR)
        將字符串CHAR包括的字符全部小寫.
        SELECT NLS_LOWER('AAAA') FROM DUAL;215. NLS_UPPER(CHAR)
        將字符串CHAR包括的字符全部大寫.
        SELECT NLS_UPPER('AAAA') FROM DUAL;216. REPLACE(CHAR1,CHAR2,CHAR3)
        用字符串CHAR3代替每一個列值為CHAR2的列,其結果放在CHAR1中.
        SELECT REPLACE(EMP_NO,'123','456') FROM DUAL;217. RPAD(CHAR1,N,CHAR2)
        用字符串CHAR2右填字符串CHAR1,使其長度為N.
        SELECT RPAD('234',8,'0') FROM DUAL;218. RTRIM(CHAR,SET)
        移去字符串CHAR右邊的字符串SET中的字符,直到最后一個不是SET中的字符為止.
        SELECT RTRIM('ABCDE','DE') FROM DUAL;219. SUBSTR(CHAR,M,N)
        得到字符串CHAR從M處開始的N個字符. 雙字節字符,一個漢字為一個字符的.
        SELECT SUBSTR('ABCDE',2,3) FROM DUAL;220. SUBSTRB(CHAR,M,N)
        得到字符串CHAR從M處開始的N個字符. 雙字節字符,一個漢字為二個字符的.
        SELECT SUBSTRB('ABCDE',2,3) FROM DUAL;221. TRANSLATE(CHAR1,CHAR2,CHAR3)
        將CHAR1中的CHAR2的部分用CHAR3代替.
        SELECT TRANSLATE('ABCDEFGH','DE','MN') FROM  DUAL;222. UPPER(CHAR)
        將字符串CHAR全部為大寫.223. ADD_MONTHS(D,N)
        將N個月增加到D日期.
        SELECT ADD_MONTHS(SYSDATE,5) FROM DUAL;224. LAST_DAY(D)
        得到包含D日期的月份的最后的一天的日期.
        SELECT LAST_DAY(SYSDATE) FROM DUAL;225. MONTH_BETWEEN(D1,D2)
        得到兩個日期之間的月數.
        SELECT MONTH_BETWEEN(D1,D2) FROM DUAL;226. NEXT_DAY(D,CHAR)
        得到比日期D晚的由CHAR命名的第一個周日的日期.
        SELECT NEXT_DAY(TO_DATE('2003/09/20'),'SATDAY') FROM DUAL;227. ROUNT(D,FMT)
        得到按指定的模式FMT舍入到的最進的日期.
        SELECT ROUNT('2003/09/20',MONTH) FROM DUAL;228. SYSDATE
        得到當前系統的日期和時間.
        SELECT SYSDATE FROM DUAL;229. TO_CHAR(D,FMT)
        將日期D轉換為FMT的字符串.
        SELECT TO_CHAR(SYSDATE,'YYYY/MM/DD') FROM DUAL;230. TO_DATE(CHAR,FMT)
        將字符串CHAR按FMT的格式轉換為日期.
        SELECT TO_DATE('2003/09/20','YYYY/MM/DD') FROM DUAL;231. ABS(N)
        得到N的絕對值.
        SELECT ABS(-6) FROM DUAL;232. CEIL(N)
        得到大于或等于N的最大整數.
        SELECT CEIL(5.6) FROM DUAL;233. COS(N)
        得到N的余弦值.
        SELECT COS(1) FROM DUAL;234. SIN(N)
        得到N的正弦值.
        SELECT SIN(1) FROM DUAL;235. COSH(N)
        得到N的雙曲余弦值.
        SELECT COSH(1) FROM DUAL;236. EXP(N)
        得到N的E的N次冪.
        SELECT EXP(1) FROM DUAL;237. FLOOR(N)
        得到小于或等于N的最小整數.
        SELECT FLOOR(5.6) FROM DUAL;238. LN(N)
        得到N的自然對數.
        SELECT LN(1) FROM DUAL;239. LOG(M,N)
        得到以M為底N的對數.
        SELECT LOG(2,8) FROM DUAL;240. MOD(M,N)
        得到M除以N的余數.
        SELECT MOD(100,7) FROM DUAL;241. POWER(M,N)
        得到M的N冪.
        SELECT POWER(4,3) FROM DUAL;242. ROUND(N,M)
        將N舍入到小數點后M位.
        SELECT (78.87653,2) FROM DUAL;243. SIGN(N)
        當N<0時,得到-1;
        當N>0時,得到1;
        當N=0時,得到0;
        SELECT SIGN(99) FROM DUAL;244. SINH(N)
        得到N的雙曲正弦值.
        SELECT SINH(1) FROM DUAL;245. SORT(N)
        得到N的平方根,N>=0
        SELECT SORT(9) FROM DUAL;246. TAN(N)
        得到N的正切值.
        SELECT TAN(0) FROM DUAL;247. TANH(N)
        得到N的雙曲正切值.
        SELECT TANH(0) FROM DUAL;248. TRUNC(N,M)
        得到在M位截斷的N的值.
        SELECT TRUNC(7.7788,2) FROM DUAL;249. COUNT()
        計算滿足條件的記錄數.
        SELECT COUNT(*) FROM TABLE1 WHERE COL1='AAA';250. MAX()
        對指定的列求最大值.
        SELECT MAX(COL1) FROM TABLE1;251. MIN()
        對指定的列求最小值.
        SELECT MIN(COL1) FROM TABLE1;252. AVG()
        對指定的列求平均值.
        SELECT AVG(COL1) FROM TABLE1;253. SUM()
        計算列的和.
        SELECT SUM(COL1) FROM DUAL;254. TO_NUMBER(CHAR) 
        將字符轉換為數值.
        SELECT TO_NUMBER('999') FROM DUAL;
      

  4.   

    去otn.oracle.com上下载SQL Reference这本书,很全也很详细.