• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >oracle > oracle如何使用java source调用外部程序

oracle如何使用java source调用外部程序

作者:mellowsmile 字体:[增加 减小] 来源:互联网 时间:2017-05-11

mellowsmile通过本文主要向大家介绍了oracle java source,oracle source,oracle data source,oracle dba source,oracle all source等相关知识,希望本文的分享对您有所帮助

需求

Oracle调用第三方外部程序。Oracle使用sqluldr2快速导出大批量数据,然后用winrar压缩后发送邮件。

源码

java source

create or replace and compile java source named jv_run_extpro as 

import java.io.*; 
import java.lang.*; 
import java.util.*; 
import java.sql.*; 
import oracle.sql.*; 
publicclass jv_run_extpro 
{ 
publicstaticvoid run(String cmd) throws IOException 
{ 
Process p=Runtime.getRuntime().exec(cmd); 
StreamGobbler errorGobbler = new StreamGobbler(p.getErrorStream(), "Error"); 
StreamGobbler outputGobbler = new StreamGobbler(p.getInputStream(), "Output"); 
errorGobbler.start(); 
outputGobbler.start(); 
try

{ 
p.waitFor(); 
} 
catch(InterruptedException ie) 
{ 
System.out.println(ie); 
} 
} 

publicstaticclass
 StreamGobbler extends Thread { 
 InputStream is; 
String type; 


public StreamGobbler(InputStream is, String type) { 
this.is = is; 
this.type = type; 

} 

 

publicvoid run() { 
try { 
InputStreamReader isr = new InputStreamReader(is); 
BufferedReader br = new BufferedReader(isr); 
String line = null; 
while ((line = br.readLine()) != null) { 
if (type.equals("Error")) { 
System.out.println("Error :" + line); 
} else { 
System.out.println("Debug:" + line); 
} 
} 
} catch (IOException ioe) { 
ioe.printStackTrace(); 

} 

} 

} 

} 

 

</div>

存储过程

create or replace procedure pro_jv_run_extpro(p_cmd varchar2) as

language java name 'jv_run_extpro.run(java.lang.String)';

调用

begin 

pro_jv_run_extpro('sqluldr264.exe scott/hh@pdborcl query="select * from emp" field=, head=yes file=D:\Desktop\tmp\sqluldr2\OUT2.TXT'); 
pro_jv_run_extpro('"D:\Program Files\WinRAR\Rar.exe" a -ep -df "D:\Desktop\tmp\sqluldr2\20160916.rar" "D:\Desktop\tmp\sqluldr2\OUT2.TXT"');
 
end; 
</div>

总结

Java source里StreamGobbler这个类不能少,用于异步读取命令的输出。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • oracle如何使用java source调用外部程序

相关文章

  • 2017-05-11Oracle minus用法详解及应用实例
  • 2017-05-11Oracle查看和修改连接数(进程/会话/并发等等)
  • 2017-05-11Oracle Scott创建视图权限不足解决办法
  • 2017-05-11关于SQL执行计划错误导致临时表空间不足的问题
  • 2017-05-11Oracle外键不加索引引起死锁示例
  • 2017-05-11Oracle 数据库导出(exp)导入(imp)说明
  • 2017-05-11有关Oracle数据库的备份情况
  • 2017-05-11Oracle学习笔记(四)
  • 2017-05-11oracle select执行顺序的详解
  • 2017-05-11linux下oracle设置开机自启动实现方法

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • oracle中文乱码解决的办法
    • oracle sequence语句重置方介绍
    • 基于Oracle的面向对象技术入门基础简析开发者网络Oracle
    • oracle使用sql脚本生成csv文件案例学习
    • oracle查看字符集和修改字符集使用详解
    • ORACLE 分区表的设计
    • oracle 索引组织表的深入详解
    • oracle分页存储过程 oracle存储过程实例
    • Oracle捕获问题SQL解决CPU过渡消耗
    • Oracle11g完全卸载的详细步骤(超管用)

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有