我工作的一个应用程序做一些批量处理,并希望将输入和输出数据存储在Oracle数据库中的BLOB字段文件.Oracle版本是10g r2.
使用如下的PreparedStatement.setBinaryStream()方法将一个小文本文件插入到数据库中,但我没有运气与更大的图像文件.
难道我做错了什么?这可能与JDBC有关吗?我需要打扰DBA吗?谢谢你的帮助.
编辑:问题已经解决.我已将此代码更新为工作示例:
import java.io.File;
import java.io.FileInputStream;
import java.io.OutputStream;
import java.sql.Blob;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class WriteBlobDriver {
public static void main(String[] args) {
Connection con = null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
con = DriverManager.getConnection(
"blahblah",
"blahblah",
"blahblah");
con.setAutoCommit(false);
Statement statement = con.createStatement();
//statement.executeUpdate("UPDATE BATCH_GC_JOBS SET INPUT_BATCH_FILE = EMPTY_BLOB() WHERE JOB_ID = 'a'");
//Get blob and associated output stream
ResultSet resultSet = statement.executeQuery("SELECT INPUT_BATCH_FILE FROM BATCH_GC_JOBS WHERE JOB_ID = 'a' FOR UPDATE");
resultSet.next();
Blob …Run Code Online (Sandbox Code Playgroud)