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