a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 165|回复: 1

[综合] ORACLE常用数值函数、转换函数、字符串函数介绍

[复制链接]
发表于 2012-8-4 13:54:49 | 显示全部楼层 |阅读模式
NUM(1,1) FROM DUAL;   8、SIN(n) 返回n的正玄值,n为弧度。. N, A; J$ Z2 q7 B( \) `) t5 X+ x
  例如:SELECT SIN(10) FROM DUAL;; z6 ~+ ~, A9 E8 ?; K
  9、SINH(n) 返回n的双曲正玄值,n为弧度。
  r) g! b6 C; V0 c$ C; v+ }  例如:SELECT SINH(10) FROM DUAL;
; i2 r3 g9 p3 }4 }+ D9 s9 j2 Y  10、ASIN(n) 反正玄函数,n between -1 and 1,返回值between pi/2 and -pi/2.例如:SELECT ASIN(0.8) FROM DUAL;
2 w  k8 d. f+ f! X  11、TAN(n) 返回n的正切值,n为弧度例如:SELECT TAN(0.8) FROM DUAL;
# q& V4 C- U1 |6 E8 _3 d- S1 ~& k  12、TANH(n) 返回n的双曲正切值,n为弧度例如:SELECT TANH(0.8) FROM DUAL;& C# Y4 s; W8 U5 ?; y: `! Z* h
  13、ATAN(n) 反正切函数,n表示弧度,返回值between pi/2 and -pi/2.例如:SELECT ATAN(-444444.9999999) FROM DUAL;) }* p" R; h$ j6 [" {& x8 `& a
  14、EXP(n) 返回e的n次幂,e = 2.71828183 ……
% U+ A. l3 x+ b; k2 @4 E. v# B  例如:SELECT EXP(3) FROM DUAL;
1 W' a" ?8 t% q; v  I6 R  15、LN(n) 返回n的自然对数,n>0例如:SELECT LN(0.9) FROM DUAL;& i/ b8 _6 j/ a% c3 F7 e6 C' E# g9 x
  16、LOG(n1,n2) 返回以n1为底n2的对数,n1 >0 and not 1 ,n2>0例如:SELECT LOG(1.1,2.2) FROM DUAL;
1 \, Z4 ]+ P) v4 z% ^& o- |  17、POWER(n1,n2) 返回n1的n2次方。n1,n2可以为任意数值,不过如果m是负数,则n必须为整数例如:SELECT POWER(2.2,2.2) FROM DUAL;
4 ?0 Y8 O, t- a- f  18、SIGN(n) 如果n0返回1,如果n=0返回0.例如:SELECT SIGN(14),SIGN(-14),SIGN(0) FROM DUAL;1 w( }  m+ n- h3 s  R/ U
  19、SQRT(n) 返回n的平方根,n为弧度。n>=0例如:SELECT SQRT(0.1) FROM DUAL;
% h% v* |5 P, ]7 @0 V0 `6 s) i* \5 f  (二)。字符型函数返回字符值(Character Functions Returning Character Values); l' p4 T- \7 k) S5 [( X1 h
  该类函数返回与输入类型相同的类型。? 返回的CHAR类型值长度不超过2000字节;? 返回的VCHAR2类型值长度不超过4000字节;如果上述应返回的字符长度超出,oracle并不会报错而是直接截断至最大可支持长度返回。* j& m/ i8 _2 Y! z
  ? 返回的CLOB类型值长度不超过4G;对于CLOB类型的函数,如果返回值长度超出,oracle不会返回任何错误而是直接抛出错误。7 L; z8 K8 \1 ]4 E2 `; R
  1、CHR(N[ USING NCHAR_CS]) 返回指定数值在当前字符集中对应的字符例如:SELECT CHR(95) FROM DUAL;
8 S; ^. ^9 m# r, _$ w2 K. T/ a  2、CONCAT(c1,c2) 连接字符串,等同于||例如:SELECT concat('aa','bb') FROM DUAL;; z4 |. l. i( y- b& [  y0 {, y
  3、INITCAP(c) 将字符串中单词的第一个字母转换为大写,其它则转换为小写例如:SELECT INITCAP('whaT is this') FROM DUAL;% o3 M! `2 G! I! ^1 [
  4、NLS_INITCAP(c) 返回指定字符串,并将字符串中第一个字母变大写,其它字母变小写例如:SELECT NLS_INITCAP('中华miNZHu') FROM DUAL;它还具有一个参数:Nlsparam用来指定排序规则,可以忽略,默认状态该参数为当前session的排序规则。
! J" a: \! ^1 c7 n  (三)。字符型函数返回数字值(Character Functions Returning Number Values)7 ]' m- |/ U5 t
  本类函数支持所有的数据类型1、ASCII(c) 与chr函数的用途刚刚相反,本函数返回指定字符在当前字符集下对应的数值。0 t$ x; W1 R+ t4 Q" G. `
  例如:SELECT ASCII('_') FROM DUAL;' E: n" Y, C4 M! M9 D
  (四)。日期函数(Datetime Functions)# R3 C0 |$ i$ C2 ^( Y6 t1 Z/ X
  本类函数中,除months_between返回数值外,其它都将返回日期。$ I3 R' y* d' _. j2 ]) `
  1、CURRENT_TIMESTAMP([n]) 返回当前session所在时区的日期和时间。n表示毫秒级的精度,不大于6例如:SELECT CURRENT_TIMESTAMP(3) FROM DUAL;! I; `5 i; L0 a1 K7 g2 M8 y; n
  2、LOCALTIMESTAMP([n]) 与上同,返回当前session所在时区的日期和时间。n表示毫秒级的精度,不大于6例如:SELECT LOCALTIMESTAMP(3) FROM DUAL;
% C. z0 ]7 z9 a' @) R
5 f3 S$ R* \% ~% y7 R  3、SYSTIMESTAMP([n]) 与上同,返回当前数据库所在时区的日期和时间,n表示毫秒级的精度,>0 and
回复

使用道具 举报

 楼主| 发表于 2012-8-4 13:54:50 | 显示全部楼层

ORACLE常用数值函数、转换函数、字符串函数介绍

</p>  4、ROWIDTOCHAR(rowid) 转换rowid值为varchar2类型。返回串长度为18个字节。# J0 I$ Y! ^; ?! T+ L
  例如:SELECT ROWIDTOCHAR(rowid) FROM DUAL;
: D1 c3 d; k) }/ `' ^  5、TO_MULTI_BYTE(c) 将指定字符转换为全角并返回char类型字串例如:SELECT TO_MULTI_BYTE('ABC abc 中华') FROM DUAL;- O% P- B* I( o4 \
  6、TO_SINGLE_BYTE(c) 将指定字符转换为半角并返回char类型字串例如:SELECT TO_SINGLE_BYTE('ABC abc中华') FROM DUAL;
. A. b6 e6 d: F7 C: Z  (六)。其它辅助函数(Miscellaneous Single-Row Functions), d3 h9 e- e; v9 u
  1、COALESCE(n1,n2,……n) 返回序列中的第一个非空值例如:SELECT COALESCE(null,5,6,null,9) FROM DUAL;$ ?, I7 ^+ k6 w1 R
  2、DUMP(exp[,fmt[,start[,length]]])9 m5 j6 `. O- H) C, v8 Y
  dump是个功能非常强悍的函数,对于深入了解oracle存储的人而言相当有用。所以对于我们这些仅仅只是应用的人而言就不知道能将其应用于何处了。此处仅介绍用法,不对其功能做深入分析。$ ^6 f( r# }7 D4 o
  如上所示,dump拥有不少参数。其本质是以指定格式,返回指定长度的exp的内部表示形式的varchar2值。fmt含4种格式:8||10||16||17,分别表示8进制,10进制,16进制和单字符,默认为10进制。start参数表示开始位置,length表示以,分隔的字串数。! C3 [8 M9 R. e- T& {  e5 f% T8 @# L
  例如:SELECT DUMP('abcdefg',17,2,4) FROM DUAL;+ v+ W$ t6 d( {# G4 g
  3、EMPTY_BLOB,EMPTY_CLOB 这两个函数都是返回空lob类型,通常被用于insert和update等语句以初始化lob列,或者将其置为空。EMPTY表示LOB已经被初始化,只不过还没有用来存储数据。
* t, d7 \0 F5 ^: u4 i. ?; l  4、NLS_CHARSET_NAME(n) 返回指定数值对应的字符集名称。
1 V! }# I8 Z5 Y3 S% ?  例如:SELECT NLS_CHARSET_NAME(1) FROM DUAL;3 t, B, h3 ^# j% M8 b
  5、NLS_CHARSET_ID(c) 返回指定字符对应的字符集id.例如:SELECT NLS_CHARSET_ID('US7ASCII') FROM DUAL;
& E5 c6 W! ^( j6 F: Q; u6 g5 q  6、NLS_CHARSET_DECL_LEN(n1,n2) 返回一个NCHAR值的声明宽度(以字符为单位)。n1是该值以字节为单位的长度,n2是该值的字符集ID例如:SELECT NLS_CHARSET_DECL_LEN(100, nls_charset_id('US7ASCII')) FROM DUAL;
0 r. x8 j3 j0 D, ^* w9 Q  7、SYS_EXTRACT_UTC(timestamp) 返回标准通用时间即格林威治时间。
2 R! N1 `: A  E  例如:SELECT SYS_EXTRACT_UTC(current_timestamp) FROM DUAL;
0 W0 v+ k# E& E; P. ]  8、SYS_TYPEID(object_type) 返回对象类型对应的id.例如:这个这个,没有建立过自定义对象,咋做示例?/ J: V" f( g# D" T. E6 ^3 o% ^
  9、UID 返回一个唯一标识当前数据库用户的整数。) p% N" I$ v/ T& m/ m; E* I4 ~8 o5 R
  例如:SELECT UID FROM DUAL;中 华 考 试 网# f3 y9 X6 d, r7 S/ k9 \
  10、USER 返回当前session用户例如:SELECT USER FROM DUAL;
+ P$ `7 v- y6 P& j  11、USERENV(c) 该函数用来返回当前session的信息,据oracle文档的说明,userenv是为了保持向下兼容的遗留函数。oracle公司推荐你使用sys_context函数调用USERENV命名空间来获取相关信息,所以大家了解下就行了。" Y' L% l: R; z+ s3 V/ K
  例如:SELECT USERENV('LANGUAGE') FROM DUAL;
6 S; r5 Z" M( A+ M2 X- ?; v  12、VSIZE(c) 返回c的字节数。
* M2 W: g/ D, F( c$ K, _# N/ c  例如:SELECT VSIZE('abc中华') FROM DUAL;
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-4-30 04:55 , Processed in 0.249153 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表