這個是這樣,你先用循環(huán)讀,讀成二進制流,然后轉文件就可以了
成都網站設計、成都網站制作,成都做網站公司-創(chuàng)新互聯已向成百上千企業(yè)提供了,網站設計,網站制作,網絡營銷等服務!設計與技術結合,多年網站推廣經驗,合理的價格為您打造企業(yè)品質網站。
in = rs.getBinaryStream(字段名 );
if (in != null) {
image_out = response.getOutputStream();
response.setContentType("image/jpeg");
byte b[] = new byte[0x7a120];
while (in.read(b) != -1) {
image_out.write(b);
}
try {
//這里改成寫文件 image_out.flush();
} catch (Exception e2) {
} finally {
if (in != null) {
in.close();
in = null;
}
if (image_out != null) {
image_out.close();
image_out = null;
}
}
}
首先要弄清楚的是,你導出的目的是什么?是為了在另外一個庫上重建么,或者僅僅是要看一看。
是要導出該用戶下所有的嗎?數據庫的版本是什么?
給你一個簡單的比較通用的辦法,用exp導出
我在10.2.0.1下測試通過,應該可以用于9i以上版本。
$ exp test/oracle owner=test rows=n file=exp.dmp log=exp.log
這樣是導出test用戶下的所有對象,rows=n 即不導出數據,只導出表結構。
導出文件是exp.dmp 。這個是不可讀的,你可以用如下命令獲得表結構
$ imp test/oracle file=exp.dmp show=y log=imp.log
show=y 即不真正執(zhí)行導入,只將導入要做的事情記錄到imp.log當中。
執(zhí)行結束??梢栽趇mp.log中看到類似如下的信息
"CREATE TABLE "TEST" ("A" NUMBER, "B" NUMBER) PCTFREE 10 PCTUSED 40 INITRAN"
"S 1 MAXTRANS 255 STORAGE(INITIAL 65536 FREELISTS 1 FREELIST GROUPS 1 BUFFER"
"_POOL DEFAULT) TABLESPACE "USERS" LOGGING NOCOMPRESS"
"CREATE TABLE "TN" ("NAME" VARCHAR2(1000)) PCTFREE 10 PCTUSED 40 INITRANS 1"
" MAXTRANS 255 STORAGE(INITIAL 65536 FREELISTS 1 FREELIST GROUPS 1 BUFFER_PO"
"OL DEFAULT) TABLESPACE "USERS" LOGGING NOCOMPRESS"
I
這就是原來在test用戶下的2張表的結構了
打開oracle sql developer工具,連接上數據庫服務,然后打開表列表,選擇需要導出的表,然后右擊選擇導出
請點擊輸入圖片描述
在導出向導頁面,如圖可以看到,是否需要導出DLL,是否美化顯示等選項,可以根據需要進行勾選。最下面選擇編碼和導出的文件目錄
請點擊輸入圖片描述
這一步,需要選擇導出的列字段,可以選擇其中部分字段,默認是全部列勾選的,如果不需要修改可以直接點擊下一步
請點擊輸入圖片描述
這一步需要指定過濾的where條件,如圖所示,在where字句中輸入條件,輸入完條件之后可以點擊刷新按鈕查看過濾效果
請點擊輸入圖片描述
到這一步是導出概要,可以查看導出有關的信息等,沒有問題的話,可以直接點擊完成,即可開始導出數據了。
請點擊輸入圖片描述
如果表里的數據量比較大,在導出的時候需要等待一段時間,可以選擇后臺運行,這樣可以同時做其它的操作。導出程序在后臺導出,完成之后會有提醒。
請點擊輸入圖片描述
導出完成之后,打開剛剛設置的導出文件目錄,查看導出的文件和數據是否正確。
請點擊輸入圖片描述
命令行工具:exp/imp導入導出,具體參數去找找相關文檔;
或者可以借助pl/sql dev,或者TOAD第三方工具。