java oracle exp_java中使用oracle的exp/imp导出、导入数据
今天在学习的过程中遇到了一篇关于java中使用oracle导入导出的文章,感觉还不错,为了学习和以后工作的需要,我整理如下:
String[] cmds=newString[3];
cmds[0]="cmd";
cmds[1]="/C";
cmds[2]=commandBuf.toString();
Process process=Runtime.getRuntime().exec(cmds);
booleanshouldClose=false;
try{
InputStreamReader isr=newInputStreamReader(process.getErrorStream());
BufferedReader br=newBufferedReader(isr);
String line=null;
while((line=br.readLine())!=null){
if(line.indexOf("错误")!=-1){
shouldClose=true;
break;
} } }
catch(IOException ioe){
shouldClose=true;
}if(shouldClose)
process.destroy();
intexitVal=process.waitFor();
下面还有一种形式:
exp和imp的输出是要从ErrorStream中获取,这是我以前写的
Process proc = null;
try
{
proc = Runtime.getRuntime().exec(cmd.toString());
InputStream istr = proc.getErrorStream();
BufferedReader br = new BufferedReader(new InputStreamReader(istr));
String str;
while ((str=br.readLine()) != null)
{
errorInfo.append(str + "\n");
}
proc.waitFor();
}
catch (Exception e)
{
...
}
if (proc.exitValue() == 0)
{
proc.destroy();
return true;
}
else
{
if(logger.isDebugEnabled())
logger.debug(errorInfo);
proc.destroy();
return false;
}
两者可以比较的看看
注意:在执行oracle的exp时,出现了一个很怪的现象,就是exp在console输出的信息没有被放入InputStream,反而是放到了ErrorStream中(即使正确的情况也是),这就导致了按照正常的情况去写这段代码的话反而会出问题。---这是在jdk1.4环境下实现的。
还有中建议是在jdk1.5环境下:可以如下实现
1,把对InputStream的处理放到一个单独Thread里面。
2,用ProcessBuilder的redirectErrorStream来合并OutputStream和ErrorStream。注意子进程的InputStream对应父进程的OutStream。如果不合并这两个流的话则必须并行排空它们,顺序的排空会导致思索。
posted on 2008-06-13 11:57 forgood 阅读(697) 评论(0) 编辑 收藏 所属分类: java
java oracle exp_java中使用oracle的exp/imp导出、导入数据相关推荐
- oracle数据库exp/imp导出导入数据
exp导出数据库 exp demo1/123456@192.168.2.3/orcl file=D:\demo1.dmp full=y 用户名/密码 @数据库地址/实例名 file=导出地址 full ...
- Oracle exp/imp导出导入命令及数据库备份
Oracle exp/imp导出导入命令及数据库备份 Oracle数据导入导出imp/exp就相当于oracle数据还原与备份.exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令 ...
- Oracle exp/imp导出导入工具的使用
一. 导出工具 exp 1. 它是操作系统下一个可执行的文件 存放目录/ORACLE_HOME/bin exp导出工具将数据库中数据备份压缩成一个二进制系统文件.可以在不同OS间迁移 它有 ...
- oracle用户导出和导入用不同的用户名,oracle用exp\imp导出导入,及创建表空间与用户...
oracle exp导出表结构: exp username/pwd@sid file=D:\db1.dmp owner=(username) rows=n; 上面命令,将rows=n参数去掉,会将所有 ...
- Oracle密码中含有特殊字符时exp,imp的使用
今天通过exp迁移Oracle 数据,由于密码含有很有很多特殊字符,弄了好久,都没成功, 后发在网上找到方法. 1 exp用法 Linux 下(密码用一对双引号, 整体userid用对单引号括住) e ...
- oracle exp导出工具,Oracle EXP/IMP 导出导入工具的使用
一. 导出工具 exp 1. 它是操作系统下一个可执行的文件 存放目录/ORACLE_HOME/bin exp导出工具将数据库中数据备份压缩成一个二进制系统文件.可以在不同OS间迁移 它有三种模式: ...
- Java web程序中备份oracle数据库
Java web程序中备份oracle数据库 1.生成备份文件: public ActionForward createDmp(ActionMapping mapping, ActionForm fo ...
- 数据导不进oracle数据库,学习笔记:Oracle逻辑导出/导入 数据逻辑导出时跳过指定表不进行导出...
天萃荷净 Oracle数据库逻辑exp导出时,跳过指定某些表,对其表中数据不进行导出 有一个需求,某个用户有很多张表,但是只能使用exp导出,而且想跳过其中某几张表,其他对象包括依赖关系都需要.针对这 ...
- oracle z中rowid,oracle 10g中的ROWID
1 ROWID的特性 (1)rowid是一个伪列,是用来确保表中行的唯一性,它并不能指示出行的物理位置,但可以用来定位行. (2)rowid是存储在索引中的一组既定的值(当行确定后).我们可以像表中普 ...
最新文章
- Bioinformatics| 生物医学网络中的图嵌入方法
- 【Pytorch】运用英伟达DALI加速技巧可使PyTorch运算速度快4倍
- 伪官宣:Envoy 中文指南新鲜出炉
- UA SIE545 优化理论基础4 对偶理论简介1 松弛问题与Lagrange对偶
- MySQL数据表字段内容的批量修改、复制命令
- ubuntu的xfce4的display只有一种分辨率选项
- jQuery学习笔记系列(一)——入口函数,jQuery对象和DOM对象,jQuery选择器、样式操作、效果(显示隐藏、滑入滑出、淡入淡出、自定义动画、停止动画队列)
- Weblogic Domain Template Creation Script
- 百万级别长连接,并发测试指南
- 软考-系统分析师-论文写作-备考总结笔记
- 软件dfmea_DFMEA与PFMEA之间不得不说的关系
- svga文件预览_Shu文件预览
- java计算机毕业设计飞机航班信息查询系统演示视频2021MyBatis+系统+LW文档+源码+调试部署
- Java中的方法重载(Overload)和方法覆盖/方法重写(Override)
- 拆解市面上卖几百上千的语聊挂机赚钱项目
- 交互设计好书推荐:【A029】[图灵交互设计丛书].简约至上:交互式设计四策略.第2版
- 【锁】Latch、lock、 pin的区别
- 基础知识回顾——迭代器和生成器
- php --interface接口的使用方法
- 17joys用户管理 添加用户
热门文章
- 接口(Interface)的深入理解
- JPA入门到精通 - JPA入门
- 怎样解决WampServer #1405 - Access denied for user #39;root#39;@#39;localhost#39; (using password: NO...
- JUnit注解与hamcrest
- Scala入门到精通——第二十九节 Scala数据库编程
- 【python学习】模块random
- CSS,给我们不一样的体验
- hdu 2516 FIB博弈模型
- Java对象的生命周期与作用域的讨论(转)
- Oracle:管理 date类型 interval 动态变化的分区:查询、删除