如果必须存储在数据库,转成clob,blob存.不过最好是搞个专门的文件存储服务器存储,数据库只存路径位置就好.
直接用java读,然后存到oracle中比较好.
我现在用的代码:
try{
//BLOB java 代码
//获得数据库连接
Class.forName("oracle.jdbc.driver.OracleDriver");
con.setAutoCommit(false);
Statement st = con.createStatement();
System.out.println("conn");
/*
//插入一个空对象
System.out.println("insert");
//用for update方式锁定数据行
System.out.println("获取得到更新列");
if (rs.next()) {
//得到java.sql.Blob对象,然后Cast为oracle.sql.BLOB
oracle.sql.BLOB blob = (oracle.sql.BLOB) rs.getBlob(1);
//到数据库的输出流
OutputStream outStream = blob.getBinaryOutputStream();
//这里用一个文件模拟输入流
File file = new File("c://1.doc");
InputStream fin = new FileInputStream(file);
//将输入流写到输出流
byte[] b = new byte[blob.getBufferSize()];
int len = 0;
while ( (len = fin.read(b)) != -1) {
outStream.write(b, 0, len);
//blob.putBytes(1,b);
}
//依次关闭(注意顺序)
fin.close();
outStream.flush();
outStream.close();
con.commit();
con.close();
*/
//不需要"for update"
if (rs.next())
{
java.sql.Blob blob = rs.getBlob("FI");
InputStream inStream = blob.getBinaryStream();
//data是读出并需要返回的数据,类型是byte[]
int length = (int) blob.length();
byte[] data = new byte[length];
//data = new byte[inStream.available()];
inStream.read(data);
inStream.close();
fo.write(data);
fo.close();
System.out.println("DATA="+data.toString());
}catch(IOException io){
System.out.println("IOexception:"+io.toString());
}catch(SQLException sql){
System.out.println("SQLxception:"+sql.toString());
}catch(ClassNotFoundException ex){
System.out.println("ClassNotFoundException:"+ex.toString());
可以用blob或bfile类型来存储该类二进制数据.具体说明如下:
★ blob:用来存储可变长度的二进制数据,blob数据在数据库之间或在客户机与服务器进程之间传递时不经历字符集的转换.
以上就是土嘎嘎小编为大家整理的oracle怎么存储文档相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!