English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Cómo usar java source para llamar a programas externos en oracle

Requisitos

Oracle llama a programas externos de terceros. Oracle utiliza 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.*; 
public class jv_run_extpro 
{ 
public static void 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); 
} 
} 
public static class
 StreamGobbler extends Thread { 
 InputStream is; 
String type; 
public StreamGobbler(InputStream is, String type) { 
this.is = is; 
this.type = type; 
} 
public void 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 :" + línea); 
} else { 
System.out.println("Debug:\" + línea); 
} 
} 
} catch (IOException ioe) { 
ioe.printStackTrace(); 
} 
} 
} 
} 

procedimiento almacenado

procedimiento almacenado crear o reemplazar pro_jv_run_extpro(p_cmd varchar2) como

lenguaje java nombre 'jv_run_extpro.run(java.lang.String)';

llamada

comienzo 
pro_jv_run_extpro('sqluldr264.exe scott/hh@pdborcl consulta="select * de emp" campo=, cabeza=sí archivo=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"');
fin; 

Resumen

En el código fuente de Java, no puede faltar la clase StreamGobbler, que se utiliza para leer la salida de comandos de manera asincrónica.

Esto es todo el contenido de este artículo, espero que ayude a su aprendizaje y que todos nos apoyen en el tutorial de alarido.

Declaración: El contenido de este artículo se obtiene de la red, pertenece a los propietarios originales, se contribuye y sube por los usuarios de Internet, este sitio no posee los derechos de propiedad, no se ha editado artificialmente y no asume ninguna responsabilidad legal relevante. Si encuentra contenido sospechoso de copyright, le invitamos a enviar un correo electrónico a: notice#oldtoolbag.com (al enviar un correo electrónico, reemplace # con @) para denunciar y proporcionar evidencia relevante. Una vez confirmado, este sitio eliminará inmediatamente el contenido sospechoso de infracción.

Te gustará