设为首页 收藏本站
查看: 737|回复: 0

[经验分享] Oracle SQL 内置函数大全(二)

[复制链接]

尚未签到

发表于 2016-7-31 13:39:31 | 显示全部楼层 |阅读模式
  
  
  


31.SIGH
返回双曲正弦的值
SQL> Select Sin(20),Sinh(20) From Dual;
SIN(20)  SINH(20)
--------- ---------
.91294525 242582598

32.SQRT
返回数字N的根
SQL> Select Sqrt(64),Sqrt(10) From Dual;
SQRT(64)  SQRT(10)
--------- ---------
8 3.1622777

33.TAN
返回数字的正切值
SQL> Select Tan(20),Tan(10) From Dual;
TAN(20)   TAN(10)
--------- ---------
2.2371609 .64836083

34.TANH
返回数字N的双曲正切值
SQL> Select Tanh(20),Tan(20) From Dual;
TANH(20)   TAN(20)
--------- ---------
1 2.2371609

35.TRUNC
按照指定的精度截取一个数
SQL> Select Trunc(124.1666,-2) Trunc1,Trunc(124.16666,2) From Dual;
TRUNC1 TRUNC(124.16666,2)
--------- ------------------
100             124.16

36.ADD_MONTHS
增加或减去月份
SQL> Select To_char(Add_months(To_date('199912','Yyyymm'),2),'Yyyymm') From Dual;
TO_CHA
------
200002
SQL> Select To_char(Add_months(To_date('199912','Yyyymm'),-2),'Yyyymm') From Dual;
TO_CHA
------
199910

37.LAST_DAY
返回日期的最后一天
SQL> Select To_char(Sysdate,'Yyyy.Mm.Dd'),To_char((Sysdate)+1,'Yyyy.Mm.Dd') From Dual;
TO_CHAR(SY TO_CHAR((S
---------- ----------
2004.05.09 2004.05.10
SQL> Select Last_day(Sysdate) From Dual;
LAST_DAY(S
----------
31-5月 -04

38.MONTHS_BETWEEN(Date2,Date1)
给出Date2-Date1的月份
SQL> Select Months_between('19-12月-1999','19-3月-1999') Mon_between From Dual;
MON_BETWEEN
-----------
9
SQL>Selectmonths_between(To_date('2000.05.20','Yyyy.Mm.Dd'),To_date('2005.05.20','Yyyy.Dd')) Mon_betw From Dual;
MON_BETW
---------
-60

39.NEW_TIME(Date,'This','That')
给出在This时区=Other时区的日期和时间
SQL> Select To_char(Sysdate,'Yyyy.Mm.Dd Hh24:Mi:ss') Bj_time,To_char(New_time
2  (Sysdate,'PDT','GMT'),'Yyyy.Mm.Dd Hh24:Mi:ss') Los_angles From Dual;
BJ_TIME             LOS_ANGLES
------------------- -------------------
2004.05.09 11:05:32 2004.05.09 18:05:32

40.NEXT_DAY(Date,'Day')
给出日期Date和星期X之后计算下一个星期的日期
SQL> Select Next_day('18-5月-2001','星期五') Next_day From Dual;
NEXT_DAY
----------
25-5月 -01

41.SYSDATE
用来得到系统的当前日期
SQL> Select To_char(Sysdate,'Dd-Mm-Yyyy Day') From Dual;
TO_CHAR(SYSDATE,'
-----------------
09-05-2004 星期日
Trunc(Date,Fmt)按照给出的要求将日期截断,如果Fmt='Mi'表示保留分,截断秒
SQL> Select To_char(Trunc(Sysdate,'Hh'),'Yyyy.Mm.Dd Hh24:Mi:ss') Hh,
2  To_char(Trunc(Sysdate,'Mi'),'Yyyy.Mm.Dd Hh24:Mi:ss') Hhmm From Dual;
HH                  HHMM
------------------- -------------------
2004.05.09 11:00:00 2004.05.09 11:17:00

42.CHARTOROWID
将字符数据类型转换为ROWID类型
SQL> Select Rowid,Rowidtochar(Rowid),Ename From Scott.Emp;
ROWID              ROWIDTOCHAR(ROWID) ENAME
------------------ ------------------ ----------
AAAAfKAACAAAAEqAAA AAAAfKAACAAAAEqAAA SMITH
AAAAfKAACAAAAEqAAB AAAAfKAACAAAAEqAAB ALLEN
AAAAfKAACAAAAEqAAC AAAAfKAACAAAAEqAAC WARD
AAAAfKAACAAAAEqAAD AAAAfKAACAAAAEqAAD JONES

43.CONVERT(C,Dset,Sset)
将源字符串 Sset从一个语言字符集转换到另一个目的Dset字符集
SQL> Select Convert('Strutz','We8hp','F7dec') "Conversion" From Dual;
Conver
------
Strutz

44.HEXTORAW
将一个十六进制构成的字符串转换为二进制

45.RAWTOHEXT
将一个二进制构成的字符串转换为十六进制

46.ROWIDTOCHAR
将ROWID数据类型转换为字符类型

47.TO_CHAR(Date,'Format')
SQL> Select To_char(Sysdate,'Yyyy/Mm/Dd Hh24:Mi:ss') From Dual;
TO_CHAR(SYSDATE,'YY
-------------------
2004/05/09 21:14:41

48.TO_DATE(String,'Format')
将字符串转化为ORACLE中的一个日期

49.TO_MULTI_BYTE
将字符串中的单字节字符转化为多字节字符
SQL>  Select To_multi_byte('高') From Dual;
TO
--


50.TO_NUMBER
将给出的字符转换为数字
SQL> Select To_number('1999') Year From Dual;
YEAR
---------
1999

51.BFILENAME(Dir,File)
指定一个外部二进制文件
SQL>Insert Into File_tb1 Values(Bfilename('Lob_dir1','Image1.Gif'));

52.CONVERT('X','Desc','Source')
将X字段或变量的源Source转换为Desc
SQL> Select Sid,Serial#,Username,Decode(Command,
2  0,'None',
3  2,'Insert',
4  3,
5  'Select',
6  6,'Update',
7  7,'Delete',
8  8,'Drop',
9  'Other') Cmd  From V$Session Where Type!='Background';
SID   SERIAL# USERNAME                       CMD
--------- --------- ------------------------------ ------
1         1                                None
2         1                                None
3         1                                None
4         1                                None
5         1                                None
6         1                                None
7      1275                                None
8      1275                                None
9        20 GAO                            Select
10        40 GAO                            None

53.DUMP(S,Fmt,Start,Length)
DUMP函数以Fmt指定的内部数字格式返回一个VARCHAR2类型的值
SQL> Col Global_name For A30
SQL> Col Dump_string For A50
SQL> Set Lin 200
SQL> Select Global_name,Dump(Global_name,1017,8,5) Dump_string From Global_name;
GLOBAL_NAME                    DUMP_STRING
------------------------------ --------------------------------------------------
ORACLE.WORLD                   Typ=1 Len=12 CharacterSet=ZHS16GBK: W,O,R,L,D

54.EMPTY_BLOB()和EMPTY_CLOB()
这两个函数都是用来对大数据类型字段进行初始化操作的函数

55.GREATEST
返回一组表达式中的最大值,即比较字符的编码大小.
SQL> Select Greatest('AA','AB','AC') From Dual;
GR
--
AC
SQL> Select Greatest('啊','安','天') From Dual;
GR
--


56.LEAST
返回一组表达式中的最小值
SQL> Select Least('啊','安','天') From Dual;
LE
--


57.UID
返回标识当前用户的唯一整数
SQL> Show User
USER 为"GAO"
SQL> Select Username,User_id From Dba_users Where User_id=Uid;
USERNAME                         USER_ID
------------------------------ ---------
GAO                                   25

58.USER
返回当前用户的名字
SQL> Select User From  Dual;
USER
------------------------------
GAO

59.USEREVN
返回当前用户环境的信息,Opt可以是:
ENTRYID,SESSIONID,TERMINAL,ISDBA,LABLE,LANGUAGE,CLIENT_INFO,LANG,VSIZE
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')
--------------------
152
ENTRYID
返回会话人口标志
SQL> Select Userenv('Entryid') From Dual;
USERENV('ENTRYID')
------------------
0
INSTANCE
返回当前INSTANCE的标志
SQL> Select Userenv('Instance') From Dual;
USERENV('INSTANCE')
-------------------
1
LANGUAGE
返回当前环境变量
SQL> Select Userenv('Language') From Dual;
USERENV('LANGUAGE')
----------------------------------------------------
SIMPLIFIED CHINESE_CHINA.ZHS16GBK
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
----------- ------------------------------
6 SYSTEM

60.AVG(DISTINCT|ALL)
All表示对所有的值求平均值,Distinct只对不同的值求平均值
SQLWKS> Create Table Table3(Xm Varchar(8),Sal Number(7,2));
语句已处理。
SQLWKS>  Insert Into Table3 Values('Gao',1111.11);
SQLWKS>  Insert Into Table3 Values('Gao',1111.11);
SQLWKS>  Insert Into Table3 Values('Zhu',5555.55);
SQLWKS> Commit;
SQL> Select Avg(Distinct Sal) From Gao.Table3;
AVG(DISTINCTSAL)
----------------
3333.33
SQL> Select Avg(All Sal) From Gao.Table3;
AVG(ALLSAL)
-----------
2592.59

  
  
  it's from http://www.gissky.com/Database/ShowArticle.asp?Sid=42&ID=1590&Page=2

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-251501-1-1.html 上篇帖子: Oracle的SQLPLUS命令的使用大全 下篇帖子: oracle处理插入重复记录的技巧
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

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