当前位置: 首页 > 面试题库 >

oracle二进制数据类型

岳涵煦
2023-03-14
问题内容

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

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

可能的解决方案是对这些操作使用某种Java + 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个字节,但仍然不是一个字节

UPDATE 找到了一种将其保存在一个字节中的方法:您可以使用该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



 类似资料:
  • 用途: 在字符串与二进制数据之间相互转换 打包和拆包 import struct import binascii values = (1, 'ab'.encode('utf-8'), 2.7) s = struct.Struct('I 2s f') packed_data = s.pack(*values) print('Original values:', values) print('Fo

  • 问题内容: 我正在编写一些代码来与Redmine交互,并且作为过程的一部分,我需要上传一些文件,但是我不确定如何从包含二进制文件的python发出POST请求。 我正在尝试模仿这里的命令: 在python中(如下),但它似乎不起作用。我不确定问题是否与编码文件有关,或者标题是否有问题。 我可以访问服务器,它看起来像是编码错误: 问题答案: 基本上您所做的是正确的。查看链接到的redmine文档,U

  • 我正在编写一些与redmine接口的代码,并且我需要上传一些文件作为过程的一部分,但是我不确定如何从包含二进制文件的python发出POST请求。 我尝试在这里模拟命令: 在python中(如下),但它似乎不起作用。我不确定这个问题是否与文件编码有关,或者标题是否有问题。 我可以访问服务器,它看起来像一个编码错误:

  • 原文: http://exploringjs.com/impatient-js/ch_typed-arrays.html 29.1。 API 的基础知识 Web 上的大量数据是文本:JSON 文件,HTML 文件,CSS 文件,JavaScript 代码等.JavaScript 通过其内置字符串很好地处理这些数据。 但是,在 2011 年之前,它没有很好地处理二进制数据。 2011 年 2 月 8

  • 主要内容:BIT 类型,BINARY 和 VARBINARY 类型,BLOB 类型MySQL 支持两类字符型数据:文本字符串和二进制字符串。上节《 MySQL字符串类型》我们讲了文本字符串,这节我们来讲解二进制字符串。 二进制字符串类型有时候也直接被称为“二进制类型”。 MySQL 中的二进制字符串有 BIT、 BINARY、 VARBINARY、 TINYBLOB、 BLOB、 MEDIUMBLOB 和 LONGBLOB。 下表中列出了 MySQL 中的二进制数据类型,括号中

  • 问题内容: 已关闭 。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗? 更新问题,使其仅通过编辑此帖子来关注一个问题。 2年前关闭。 如何在MySQL中存储二进制数据? 问题答案: phpguy的答案是正确的,但我认为那里的其他细节存在很多混乱。 基本答案是在数据类型/属性域中。 BLOB 是Binary Large Object的缩写,该列数据类型专用于处理二进制数据。 请参见MyS