oracle使用过的函数-1

1:NVL函数,(重点:当数值相加有一个为null则结果就为null所以使用这个函数可以去掉这个隐患,方法:NVL(number,0)将为null的转化为0
NVL ( )语法:nvl(expr1,expr2)
如果 expr1 是 null 值,则 nvl 函数返回 expr2 ,否则就返回 expr1 。
nvl2(expr1,expr2,expr3)
如果 expr1 不是 null 值,则 nvl 函数返回 expr2 ,否则就返回 expr3 。参数可以返回任何数据类型的 值,但是 expr2 和 expr3 不能是 LONG 型的数据类型。

2:DESC,ASC排序使用的

3:EXISTS
exists表示()内子查询语句返回结果不为空说明where条件成立就会执行主sql语句,如果为空就表示 where条件不成立,sql语句就不会执行。not exists和exists相反,子查询语句结果为空,则表示where条件成立,执行sql语句。负责不执行。
http://nicegege.iteye.com/blog/1133256
http://blog.csdn.net/elvis_dataguru/article/details/8426886

4:sys_guid函数
在Oracle中可以用SYS_GUID()来生成一个guid,相当于msSql中的newid()。
http://www.cnblogs.com/weixing/archive/2012/03/19/2405663.html

5:SUBSTR substr(字符串,截取开始位置,截取长度) //返回截取的字
http://www.cnblogs.com/nicholas_f/articles/1526063.html
instr使用: instr(’源字符串’ , ‘目标字符串’ ,’开始位置’,’第几次出现’)

6:TO_NUMBER,TO_CHAR
7:TO_date, TO_TIMESTAMP(to_date(‘20151018’,’yyyymmdd’)),date ‘2016-01-01’

8:TRIM TRIM去除指定字符的前后空格 LTRIM去除指定字符的前面空格 RTRIM去除指定字符后面后空格
http://www.cnblogs.com/lanzi/archive/2013/01/14/2859666.html

9:SYSDATE获取系统时间

10:SQLCODE,SQLERRM
SQLCODE返回Oracle错误的序号,而SQLERRM返回的是相应的错误消息
SQLCODE返回的是负数,除非Oracle的错误为“ORA-01403:NO DATA FOUND”(译:ORA-01403:未找到数据),当Oracle错误为“ORA-01403:NO DATA FOUND”时,其对应的SQLCODE为+100。对于用户自定义的异常,SQLCODE返回的是+1,而SQLERRM返回的是User-Defined Exception
Exception
when osi_general_error then
when OTHERS THEN
out_ErrorMsg := SUBSTR(SQLERRM,1,100);
out_ErrorNbr := ABS(SQLCODE);
http://blog.csdn.net/azkaser/article/details/4925084

11:DECODE函数
decode(条件,值1,返回值1,值2,返回值2,…值n,返回值n,缺省值)
http://www.cnblogs.com/juddhu/archive/2012/03/07/2383101.html

12:ROUND
trunc函数处理数字
描述trunc函数返回处理后的数值,其工作机制与ROUND函数极为类似,只是该函数不对指定小数前或后的部分做相应舍入选择处理,而统统截去。
round函数(四舍五入)
描述 : 传回一个数值,该数值是按照指定的小数位元数进行四舍五入运算的结果。
ceil和floor函数
ceil和floor函数在一些业务数据的时候,有时还是很有用的。
ceil(n) 取大于等于数值n的最小整数;
floor(n)取小于等于数值n的最大整数
http://www.2cto.com/database/201310/248336.html

13:ROWNUM,ROWid,

15:greatest
greatest
返回表达式列表中最大值,列表必须是相同类型,也可以是一个表的同一行、不同列的值进行比较。当列表中有一个值为null,那么就返回null,这个地方需要注意,如果需要当值为null的时候,可以考虑用nvl转为0来进行比较
least
返回表达式列表中最小值,列表必须是相同类型,也可以是一个表的同一行、不同列的值进行比较。当列表中有一个值为null,那么就返回null,这个地方需要注意,如果需要当值为null的时候,可以考虑用nvl转为0来进行比较。
对于max和min函数,如果处理的列中有null值,那么max和min会忽略null值,但是,如果在该列中,所有行的值都是null,那么max、min的返回值就是null。
http://yedward.net/?id=142

16:RAISE_APPLICATION_ERROR(直接可以在界面看到)

17:PRAGMA AUTONOMOUS_TRANSACTION自治事务
自治事务从当前事务开始,在其自身的语境中执行。它们能独立地被提交或重新运行,而不影响正在运行的事务。正因为这样,它们成了编写错误日志表格的理想形式。在事务中检测到错误时,您可以在错误日志表格中插入一行并提交它,然后在不丢失这次插入的情况下回滚主事务。
因为自治事务是与主事务相分离的,所以它不能检测到被修改过的行的当前状态。这就好像在主事务提交之前,它们一直处于单独的会话里,对自治事务来说,它们是不可用的。然而,反过来情况就不同了:主事务能够检测到已经执行过的自治事务的结果。
要创建一个自治事务,您必须在匿名块的最高层或者存储过程、函数、数据包或触发的定义部分中,使用PL/SQL中的PRAGMA AUTONOMOUS_TRANSACTION语句。在这样的模块或过程中执行的SQL Server语句都是自治的。
触发无法包含COMMIT语句,除非有PRAGMA AUTONOMOUS_TRANSACTION标记。但是,只有触发中的语句才能被提交,主事务则不行。
http://blog.sina.com.cn/s/blog_4f925fc30100h8ld.html

18:DBMS_OUTPUT.PUT_LINE(‘BEGIN===========================’);
主要用于调试pl/sql程序
http://www.cnblogs.com/linjiqin/archive/2013/06/24/3152647.html

19:构造连续的数据
select ‘20160501’ + (rownum - 1) dt
from dual
connect by rownum <= (‘20160520’ - ‘20160501’ + 1)

20:to_timestamp,cast
select cast(to_timestamp(‘01-5月-08 07.46.41.000000000 上午’,’dd-MON-yy hh:mi:ss.ff AM’) as date) timestamp_to_date from dual;
http://www.jb51.net/article/37635.htm

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值