今天在学习的过程中遇到了一篇关于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导出、导入数据相关推荐

  1. oracle数据库exp/imp导出导入数据

    exp导出数据库 exp demo1/123456@192.168.2.3/orcl file=D:\demo1.dmp full=y 用户名/密码 @数据库地址/实例名 file=导出地址 full ...

  2. Oracle exp/imp导出导入命令及数据库备份

    Oracle exp/imp导出导入命令及数据库备份 Oracle数据导入导出imp/exp就相当于oracle数据还原与备份.exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令 ...

  3. Oracle exp/imp导出导入工具的使用

    一. 导出工具 exp 1. 它是操作系统下一个可执行的文件 存放目录/ORACLE_HOME/bin exp导出工具将数据库中数据备份压缩成一个二进制系统文件.可以在不同OS间迁移       它有 ...

  4. oracle用户导出和导入用不同的用户名,oracle用exp\imp导出导入,及创建表空间与用户...

    oracle exp导出表结构: exp username/pwd@sid file=D:\db1.dmp owner=(username) rows=n; 上面命令,将rows=n参数去掉,会将所有 ...

  5. Oracle密码中含有特殊字符时exp,imp的使用

    今天通过exp迁移Oracle 数据,由于密码含有很有很多特殊字符,弄了好久,都没成功, 后发在网上找到方法. 1 exp用法 Linux 下(密码用一对双引号, 整体userid用对单引号括住) e ...

  6. oracle exp导出工具,Oracle EXP/IMP 导出导入工具的使用

    一. 导出工具 exp 1. 它是操作系统下一个可执行的文件 存放目录/ORACLE_HOME/bin exp导出工具将数据库中数据备份压缩成一个二进制系统文件.可以在不同OS间迁移 它有三种模式: ...

  7. Java web程序中备份oracle数据库

    Java web程序中备份oracle数据库 1.生成备份文件: public ActionForward createDmp(ActionMapping mapping, ActionForm fo ...

  8. 数据导不进oracle数据库,学习笔记:Oracle逻辑导出/导入 数据逻辑导出时跳过指定表不进行导出...

    天萃荷净 Oracle数据库逻辑exp导出时,跳过指定某些表,对其表中数据不进行导出 有一个需求,某个用户有很多张表,但是只能使用exp导出,而且想跳过其中某几张表,其他对象包括依赖关系都需要.针对这 ...

  9. oracle z中rowid,oracle 10g中的ROWID

    1 ROWID的特性 (1)rowid是一个伪列,是用来确保表中行的唯一性,它并不能指示出行的物理位置,但可以用来定位行. (2)rowid是存储在索引中的一组既定的值(当行确定后).我们可以像表中普 ...

最新文章

  1. Bioinformatics| 生物医学网络中的图嵌入方法
  2. 【Pytorch】运用英伟达DALI加速技巧可使PyTorch运算速度快4倍
  3. 伪官宣:Envoy 中文指南新鲜出炉
  4. UA SIE545 优化理论基础4 对偶理论简介1 松弛问题与Lagrange对偶
  5. MySQL数据表字段内容的批量修改、复制命令
  6. ubuntu的xfce4的display只有一种分辨率选项
  7. jQuery学习笔记系列(一)——入口函数,jQuery对象和DOM对象,jQuery选择器、样式操作、效果(显示隐藏、滑入滑出、淡入淡出、自定义动画、停止动画队列)
  8. Weblogic Domain Template Creation Script
  9. 百万级别长连接,并发测试指南
  10. 软考-系统分析师-论文写作-备考总结笔记
  11. 软件dfmea_DFMEA与PFMEA之间不得不说的关系
  12. svga文件预览_Shu文件预览
  13. java计算机毕业设计飞机航班信息查询系统演示视频2021MyBatis+系统+LW文档+源码+调试部署
  14. Java中的方法重载(Overload)和方法覆盖/方法重写(Override)
  15. 拆解市面上卖几百上千的语聊挂机赚钱项目
  16. 交互设计好书推荐:【A029】[图灵交互设计丛书].简约至上:交互式设计四策略.第2版
  17. 【锁】Latch、lock、 pin的区别
  18. 基础知识回顾——迭代器和生成器
  19. php --interface接口的使用方法
  20. 17joys用户管理 添加用户

热门文章

  1. 接口(Interface)的深入理解
  2. JPA入门到精通 - JPA入门
  3. 怎样解决WampServer #1405 - Access denied for user #39;root#39;@#39;localhost#39; (using password: NO...
  4. JUnit注解与hamcrest
  5. Scala入门到精通——第二十九节 Scala数据库编程
  6. 【python学习】模块random
  7. CSS,给我们不一样的体验
  8. hdu 2516 FIB博弈模型
  9. Java对象的生命周期与作用域的讨论(转)
  10. Oracle:管理 date类型 interval 动态变化的分区:查询、删除