oracle数据库提取数据为十六进制如何转换

oracle数据库提取数据为十六进制如何转换,第1张

如果楼主的

substr(XMXM,13,8)

格式完全标准,不存在非16进制的格式,则语句很简单

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'

世纪,年,月,日,时,分,秒


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/6767970.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存