微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

oracle二进制数据类型

如何解决oracle二进制数据类型

我不确定这是否有帮助,但是您可以使用NUMBER数据类型和bin_to_num函数

create table test_bin(num_val number, var_val varchar2(1000));

insert into test_bin values(bin_to_num(1,0,1,0,1,0,1,0), '10101010');

select dump(num_val, 17) n, dump(var_val, 17) v from test_bin;

n                     |   v
---------------------------------------------------
Typ=2 Len=3 c2,^B,G   |   Typ=1 Len=8 1,0,1,0,1,0,1,0

如您所见,它是一个排序器-而不是8个字节,您只有3个字节,但仍然不是一个字节

找到了一种将其保存在一个字节中的方法:您可以使用该chr函数

select dump(chr(bin_to_num(1,0,1,0,1,0,1,0))) c from dual;

n                   
--------------------
Typ=1 Len=1 170

因此,您可以继续使用varchar2,但只需将每8位转换为一个char

解决方法

有没有一种类型或方式以二进制级别在oracle中存储数据。我对表中的dml和pl / sql的操作都感兴趣。

当前所有二进制元素都以varchar2(1000)=‘11111 …0000.1111’的形式存储,但是操作和数据存储量很大,因此需要一些优化解决方案。如果此数据可以二进制格式存储,则将需要1000/8字节(具有>700mn条记录)

可能的解决方案是对这些操作使用某种Java + Oracle组合。

欢迎提出想法和建议。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。