oracle
中的blob
,也到網上查了不少資料,感覺網上的資料都或多或少有些錯務,最後通過自己的反覆測試總算解決了,解決的過程中,還真有不少收穫,這裡還是寫下來,和朋友們分享一下! 1.
個人感覺對於
mysql
中blob
型別的字段
,sql server
中的image
型別的字段,
oracle
中的blob
型別的字段讀寫操作的方式是有區別的,既有相同點,也有不同點
2.mysql
中的blob
型別欄位的讀寫,
sql server
中image
型別的字段讀寫,
oracle
中的blob
型別的字段的讀寫的比較()
對於mysql中的blob型別的字段和sql server中的image字段型別的寫(檔案上傳),在插入
insert
操作時,
用pst.setbinarystream(1, fis, int(f.length()))
這種類似的寫法,基本上就可以將資料插入到其
blob
型別的字段中去了。
對於mysql中的blob型別的字段和sql server中image欄位的讀()
mysql中用
blob orderfile=rs.getblob("order");
sqlserver
中用rs.getbinarystream("orderfile");
對於oracle中的寫(上傳檔案)
第一步先向
blob
欄位中先插入乙個空的
blob值,
用empty_blob()
如insert into webfiles(path,filename,username,job_no,orderfile) values(?,?,?,?,empty_blob())
第二步再用
select ...for update
這種形式的語句來更新資料庫中
blob
字段對應的值
如select orderfile from webfiles where webfiles.job_no=? and webfiles.filename=? for update
(更多細節請參照我上面貼的我專案中的源**)
對於oracle中的讀()
第一步。得到資料庫中的
blob
型別的字段
oracle.sql.blob blob = (oracle.sql.blob)rs.getblob("orderfile");
第二步。將
blob
作為輸入流,再通過輸出流輸出即可
in = new bufferedinputstream(blob.getbinarystream());
byte buf = new byte[1024];
int hasread=0;
while((hasread=in.read(buf))>0)
//上傳檔案
public synchronized boolean insert_wfiles(webfilesbean wb) throws ioexception, sqlexception
in.close();
out.close();
}
conn.commit();
if (f.exists())
f.delete();
flag=true;
return flag;
} catch (sqlexception e)
finally
}//
public void getdownfile1(string jobno,string filename,servletoutputstream sos) throws exception
in.close();
sos.close();
}conn.commit();
conn.setautocommit(true);
}catch(exception e)
finally
if (rs != null)
} }
對oracle中BLOB欄位讀寫的總結
對於oracle中的寫 上傳檔案 第一步 先向blob欄位中先插入乙個空的blob值,用empty blob 如 insert into webfiles path,filename,username,job no,orderfile values empty blob 第二步再用select fo...
Oracle中的BLOB和CLOB欄位
一般為了更好的管理oracle資料庫,通常像 檔案 等資訊就用blob欄位來儲存,先將檔案轉為二進位制再儲存進去。而像文件或者是較長的文字,就用clob儲存,這樣對以後的查詢更新儲存等操作都提供很大的方便。1.blob blob全稱為二進位制大型物件 binary large object 它用於儲...
關於oracle中blob欄位查詢的問題
最近在用oracle的過程中用到了對blob欄位模糊查詢的問題,對oracle來說,我並不是高手,找了很多的資料終於能夠查出來了。blob欄位直接用 select from table name where column like 查詢的時候是不能實現的 主要是字段型別不符,就想到了字段轉換成var...