oracle 零散知识汇集

1、

Select '登陆' + 2 From dual
会报错: ora- 01722 无效数字,原理是oracle把'登陆'当成数字来和2进行加法运算。

Select '登陆'|| 2 From dual
没有问题,会把2作为字符来处理

2、

nlssort(title,'NLS_SORT=SCHINESE_PINYIN_M')
按照拼音来排序

3、 smalldatetimedatetime

smalldatetime:不能到秒. 空間小.(4位)
datetime:(8位)

datetime占8字节,精度3.33毫秒,时间从1753.1.1到9999.12.31
smalldatetime占4字节,精度1分钟,时间从1900.1.1到2079.6.6

4、

获取当月月份:

 方法一
 select substr(to_char(sysdate,'yyyy-mm-dd'),6,2) from dual;
 方法二 
 select to_number(to_char(sysdate,'mm')) from dual
 方法三
 select trunc(sysdate,'mm') from dual

5、

trunc用法:

Trunc(sysdate,'DD')-Trunc(E.joindate,'DD')<={BGDATE}

6、

递归方法

select compid from oCompany 
    start with compID=350 
    connect by prior compID=adminID

 7、

substr('abcdefg',2,4):bcde

8、
trunc

select trunc(sysdate,'yy') from dual

2014/1/1

9、

 null的理解

select 123 from dual where null<>2    

没有结果

select 123 from dual where 1<>2    

123

 

10、

round:  四舍五入
ceil(n) :取大于等于数值n的最小整数;
floor(n):取小于等于数值n的最大整数;

11、

去空格

去空格

  update eStaff_Register
  set name = replace(name,' ','')
  Where ID=P_ID;

  update eStaff_Register
  set name = rtrim(ltrim(name))
  Where ID=P_ID;



原文地址:https://www.cnblogs.com/lijy/p/4197071.html