substr(XMXM,13,8)
select
to_number(substr(XMXM,13,8),'xxxxxxxxxx')
from
sonz112
但如果
substr(XMXM,13,8)
格式存在不标准的情况,则以上语句会报错,无法提出任何结果,这就需要用自定义函数来实现:
create
or
replace
function
test_fun_16to10(str_num
varchar2)
return
number
is
begin
return
to_number(str_num,'xxxxxxxxxx')
exception
when
others
then
return
''
end
select
test_fun_16to10(substr(XMXM,13,8),'xxxxxxxxxx')
from
sonz112
这样对于格式不标准的行,就会返回NULL值。
相当于java的int double类型oracle包括三种数据类型:
1)数值:number或number(p,s)
p:精度,s:刻度(小数位数)
1234.567 number(6,2) -------->1234.57
0.001234 number(2,4) -------->0.0012
1234 number(3,-1)-------->1230
1204 number(3) -------->超出精度
2)字符:char, varchar, varchar2
char与varchar的区别:
1.内容存储时占用的存储空间;
定长:char (声明固定长度)
'a' ->char(10) ->10
'ab' ->char(10) ->10
变长:varchar (根据实际存储的长度为准)
'a' ->varchar(10) ->1
'ab' ->varchar(10) ->2
2.所允许存储的最大长度;
char: 2000
varchar: 4000
varchar与varchar2的区别:
1.制定厂商不同:
varchar:ANSI
varchar2:Oracle
2.承诺不同;
3)日期:date '01-JAN-08'
世纪,年,月,日,时,分,秒
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)