У меня есть БД, которая хранит PDF-файлы в столбце CLOB.Я хочу написать программу Java, чтобы получить ее.Просто использование Java-класса Clob для извлечения не работает.Я думаю, что мне нужно преобразовать тип данных CLOB в BLOB, а затем записать в файл.Может кто-нибудь сказать мне, как конвертировать CLOB в BLOB с помощью Java-программы.
Вот мой БД
DOC_ID NOT NULL VARCHAR2(60)
DOC_NAME NOT NULL VARCHAR2(500)
DOC_TYPE NOT NULL VARCHAR2(100)
DOC_CONTENT CLOB()
Я посылаю DOC_ID
, чтобы получить Doc_CONTENT
,DOC_CONTENT
будет храниться на моем локальном диске как doc_name
Вот мой код Java
PreparedStatement stmnt = conn.prepareStatement("select DOC_CONTENT, DOC_NAME from documentum_docs_queue where doc_id=" + documentid);
ResultSet rs = stmnt.executeQuery();
Clob aBlob = null;
String filename = "filename";
while (rs.next()) {
try {
aBlob = rs.getClob(1);
filename = rs.getString(2);
//System.out.println("filename-------------- " + filename);
} catch (Exception ex) {
ex.printStackTrace();
byte[] bytes = rs.getBytes(1);
}
}
rs.close();
stmnt.close();
File blobFile = new File("c:/temp/writer/"+filename);
//System.out.println("blobFile-------------- " + blobFile);
FileOutputStream outStream = new FileOutputStream(blobFile);
InputStream inStream = aBlob.getAsciiStream();
int length = -1;
int size = (int) aBlob.length();
byte[] buffer = new byte[size];
while ((length = inStream.read(buffer)) != -1) {
outStream.write(buffer, 0, length);
outStream.flush();
}
inStream.close();
outStream.close();