oracle 零散知识汇集

时间:2023-03-08 16:26:16
oracle 零散知识汇集

1、

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

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

2、

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

3、 smalldatetime 和 datetime

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;