这个是这样,你先用循环读,读成二进制流,然后转文件就可以了
成都网站设计、成都网站制作,成都做网站公司-创新互联已向成百上千企业提供了,网站设计,网站制作,网络营销等服务!设计与技术结合,多年网站推广经验,合理的价格为您打造企业品质网站。
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 即不真正执行导入,只将导入要做的事情记录到imp.log当中。
执行结束。可以在imp.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第三方工具。