Oracle插入BLOB类型数据技术实战经验(oracle插入blob)

Oracle产品中包含了一种叫做Bolb的数据类型,用它来存储二进制的大文件。因此需要插入一个bolb类型的数据,必须先通过一系列的步骤完成。在本文中,使用Oracle 10g示例实战演示如何使用Blob类型来插入数据。

首先,创建一个test表,用来储存bolb类型的数据:

CREATE TABLE test (
filename VARCHAR2(100),
filesize NUMERIC,
content blob,
CONSTRAINT filenameUQ UNIQUE (filename)
);

其次,以bolb类型real/binary形式把待插入文件加载到指定test表中,命令如下:

LOAD_TO_BLOB(
v_dir IN VARCHAR2,--文件路径
v_name IN VARCHAR2, --文件名
t_lob OUT BLOB --字段
) AS
v_bfile BFILE := BFILENAME(v_dir, v_name);--字段
BEGIN
INSERT INTO test (filename,filesize,content) VALUES (v_name,DBMS_LOB.GETLENGTH(v_bfile),EMPTY_BLOB())
RETURNING content
INTO t_lob;-- 将待插入文档插入空的lob字段
DBMS_LOB.FILEOPEN(v_bfile); --打开待插入文件
DBMS_LOB.LOADFROMFILE(t_lob, v_bfile);--将文件写入lob字段
DBMS_LOB.FILECLOSE(v_bfile);--关闭文件
END;

最后,把待插入文件以input stream类型写入test表中,如下:

import java.io.InputStream;
import java.sql.Blob;
import java.sql.Connection;
import java.sql.PreparedStatement;

InputStream inputstream = new FileInputStream("c:\\test.txt"))
preparedStatement ps = connection.prepareStatement("INSERT INTO test (filename,filesize,content) VALUES (?, ?, ?)");
ps.setString(1, "test");
long size = (long)inputstream.available();
ps.setLong(2, size);
ps.setBinaryStream(3, inputstream, size);
ps.executeUpdate();
// 提交事务
// 关闭资源

通过以上代码,基本完成了将bolb类型的数据插入Oracle数据库的步骤,以上是实践中的实战经验。

从上面的实战例子可以看出,插入bolb类型的数据并不复杂,只需要正确的使用JDBC和SQL语句就能完成。此外,包含bolb类型数据的表不仅只有文件及大小两个字段,还可以添加更多其他字段来表示文件的相关信息,比如文件创建、更新时间等,从而更好地控制文件的读取、写入等功能。


数据运维技术 » Oracle插入BLOB类型数据技术实战经验(oracle插入blob)