首页 > 代码库 > ORACLE函数之单行转换函数

ORACLE函数之单行转换函数



1           ASCIISTR

格式:ASCIISTR(C)

说明:将字符串C转换为ASCII字符串,即将C中的ASCII字符保留不变,但非ASCII字符则以ASCII表示返回

举例:

SQL>SELECT ASCIISTR(‘AB?CDE数据库‘) A FROM DUAL;

A

---------------------

AB?CDE\6570\636E\5E93

2           BIN_TO_NUM

格式:BIN_TO_NUM(n1,n2,n3...)

说明:每位由n1,n2,n3等组成的二进制转换为十进制

举例:

SQL>SELECT BIN_TO_NUM(1,1,1,1) A FROM DUAL;

        A

----------

       15

3           CAST

格式:CAST(CAS T)

说明:将表达式C转换成数据类型TT可以是内量数据类型,也可以是程序员自定义的数据类型。前提是能够转换才可以转换

举例:

SQL>SELECT CAST(‘12345‘ AS NUMBER) A FROM DUAL;

        A

----------

    12345

4           DECODE

格式:DECODE(x,if 1,then 1, if 2 then 2 ,.., else z)

说明:xif值进行比较,如果等于if n就返回then n.否则就返回else z

举例:

SQL>SELECT DECODE(1,1,0,-1) AS A,DECODE(1,0,0,-1) AS B FROM DUAL;

        A          B

--------------------

        0         -1

5           NUMTODSINTERVAL

格式:NUMTODSINTERVAL(N,C)

说明:把数字N转换成C指定的INTERVALDAY TO SECOND类型的数据。C的取值为DAYHOURMINUTESECONDC的大小写无关

举例:

SQL>SELECT SYSDATE+NUMTODSINTERVAL(10,‘DAY‘) A,SYSDATE+NUMTODSINTERVAL(10,‘HOUR‘) BFROM DUAL;

A                 B

-----------------------------------

2014/7/1117:20:11 2014/7/2 3:20:11

6           NUMTOYMINTERVAL

格式:NUMTODSINTERVAL(N,C)

说明:把数字N转换成C指定的INTERVALDAY TO SECOND类型的数据。C的取值为YEARMONTHC的大小写无关

举例:

SQL>SELECT SYSDATE+NUMTOYMINTERVAL(10,‘YEAR‘) A,SYSDATE+NUMTOYMINTERVAL(10,‘MONTH‘)B FROM DUAL;

A                     B

----------------------------------------

2024/7/117:24:18     2015/5/1 17:24:18

7           TO_CHAR

格式:TO_CHAR(X[,fmt])

说明:Xfmt格式转换成字符串。X可以是一个日期或者数字,也可以是一个字符串,fmt是一个规定了X采用何种格式转换的格式字符串

举例:

SQL>SELECT TO_CHAR(SYSDATE,‘YYYY-MM-DD‘) A,TO_CHAR(111) B FROM DUAL;

A         B

-------------

2014-07-02111

8           TO_CLOB

格式:TO_CLOB(x)

说明:LOB列中的NCLOB值或其他字符串x转换成CLOB

举例:

SQL>SELECT TO_CLOB(‘AAAA‘) A FROM DUAL;

A

--------------------------------------------------------------------------------

AAAA

9           TO_DATE

格式:TO_DATE(C[,fmt])

说明:将符合fmt指定的特定日期格式的字符串C转换成DATE类型的数据

举例:

SQL>SELECT TO_DATE(‘2014-07-02‘,‘YYYY-MM-DD‘) A,TO_DATE(‘2014-07‘,‘YYYY-MM‘) B FROMDUAL;

A          B

----------------------

2014/7/2   2014/7/1

10       TO_DSINTERVAL

格式:TO_DSINTERVAL(C)

说明:将符合特定格式的字符串C转换成INTERVALDAY TO SECOND类型的数据

举例:

SQL>SELECT SYSDATE+TO_DSINTERVAL(‘1000:00:00‘) A FROM DUAL;

A

-----------------

2014/7/128:49:39

11       TO_LOB

格式:TO_LOB(X)

说明:LONG列中的值X转换成LOB列的值

举例:

 

12       TO_NUMBER

格式:TO_NUMBER(C[,fmt])

说明:将符合fmt指定的特定数字格式的字符串C转换成数字类型的数据

举例:

SQL>SELECT TO_NUMBER(‘0101‘) A FROM DUAL;

        A

----------

      101

13       TO_TIMESTAMP

格式:TO_TIMESTAMP(C)

说明:将字符串C转换为一个TIMESTAMP数据类型

举例:

SQL>SELECT TO_TIMESTAMP(‘2014-07-1214:10:10.12320‘, ‘YYYY-MM-dd HH24:MI:SS.FF‘) A FROM DUAL;

A

--------------------------------------------------------------------------------

12-7-14 02.10.10.123200000下午

14       TO_TIMESTAMP_TZ

格式:TO_TIMESTAMP_TZ(C[, fmt])

说明:将符合fmt指定的特定日期格式的字符串C转换成TIMESTAMPWITH TIMEZONE类型的数据,带时区

举例:

SQL>SELECT TO_TIMESTAMP_TZ(‘2014-07-1214:10:10.12320‘, ‘YYYY-MM-dd HH24:MI:SS.FF‘) A FROM DUAL;

A

--------------------------------------------------------------------------------

12-7-14 02.10.10.123200000下午 +08:00

15       TO_YMINTERVAL

格式:TO_YMINTERVAL(C)

说明:将符合特定格式的字符串C转换成INTERVALYEAR TO MONTH类型的数据

举例:

SQL>SELECT SYSDATE+TO_YMINTERVAL(‘01-03‘) AFROM DUAL;

A

-----------------

2015/10/29:26:45

16       TRANSLATE

格式:TRANSLATE(X,if y, then z)

说明:查看X中的每个字符,然后查看该字符在if y中是否存在。如果存在,就在if y中找到该字符的位置,然后用then z中相同位置的字符替代该字符,最后返回全部替代之后的X

举例:

SQL>SELECT TRANSLATE(‘abcdefghij‘,‘abcdef‘,‘123456‘) A FROM dual;

A

----------

123456ghij

17       UNISTR

格式:UNISTR(c)

说明:返回字符串c对应的UNICOOE字符

举例:

SQL>SELECT  UNISTR(‘01-03‘) A FROM DUAL;

A

-----------------

01-03