Oracle的Blob数据类型解析(bloboracle)

Oracle的Blob数据类型解析

Oracle数据库提供了丰富而多样的数据类型,这里我们将就其中一种Blob类型做一个讨论。

Blob类型(Binary Large Object)是Oracle允许用户将大尺寸的二进制数据存放在数据库中的一种数据类型,这种数据通常是不可见的,如图片、可执行文件、文档等等,虽然数据库中存储的是二进制数据,但是一般情况下,它们并不会使用Blob类型,而是使用他们可以可见的字符串格式表达,这样才能更好的保存索引以及搜索。

Blob类型可以使用两种方式存取读取:

(1) 在SQL语句中我们可以使用语句SELECT * FROM table_name WHERE Blob_column IS NOT NULL来检索带有Blob类型属性的记录;

(2) 通过JDBC API可以使用函数read()返回Blob类型的实例数据。

示例(JDBC API):

Statement stmt = conn.createStatement();

ResultSet rs = stmt.executeQuery(“SELECT Blob_column FROM table_name WHERE Blob_column IS NOT NULL”);

//检索到Blob类型的记录

while (rs.next()) {

Blob blob = rs.getBlob(“Blob_column”);

InputStream is = blob.getBinaryStream();

int length = (int)blob.length();

byte[] bytes = new byte[length];

int offset = 0;

int byteRead = 0;

while(offset =0) {

offset += byteRead;

}

//此时bytes即为检索出来的Blob

}

总结起来,Oracle的Blob类型可以用来存储大尺寸的二进制类型,不需要在保存字符格式,提供了select语句和JDBC API实例数据的两种方式存取读取,这对于存储大量非可见数据以及进行高效索引和搜索是非常有用的。


数据运维技术 » Oracle的Blob数据类型解析(bloboracle)