English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Besoin
Oracle appelle des programmes externes tiers. Oracle utilise 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("Erreur :" + ligne); } autrement { System.out.println("Debug :" + ligne); } } } attraper (IOException ioe) { ioe.printStackTrace(); } } } }
Procédure stockée
créer ou remplacer la procédure stockée pro_jv_run_extpro(p_cmd varchar2) comme
langage java nom 'jv_run_extpro.run(java.lang.String)';
Appel
démarrer pro_jv_run_extpro('sqluldr264.exe scott/hh@pdborcl requête="select * de emp" champ=, tête=oui fichier=D:\Desktop\tmp\sqluldr2\SORTIE2.TXT'); pro_jv_run_extpro('"D:\Program Files\WinRAR\Rar.exe" a -ep -df "D:\Desktop\tmp\sqluldr2\20160916.rar "D:\Desktop\tmp\sqluldr2\SORTIE2.TXT"'); fin;
Résumé
La classe StreamGobbler ne peut pas manquer dans le code source Java, utilisée pour lire la sortie des commandes de manière asynchrone.
Voici la totalité du contenu de cet article, j'espère qu'il vous sera utile dans vos études, et j'espère que vous soutiendrez également le tutoriel Néon.
Déclaration : Le contenu de cet article est issu du réseau, propriété des auteurs respectifs. Le contenu est apporté par les utilisateurs d'Internet et téléchargé spontanément. Ce site n'est pas propriétaire des droits, n'a pas été édité par l'homme, et n'assume aucune responsabilité juridique connexe. Si vous trouvez du contenu présumé enfreignant les droits d'auteur, n'hésitez pas à envoyer un e-mail à : notice#oldtoolbag.com (veuillez remplacer # par @ lors de l'envoi d'un e-mail pour signaler une violation, et fournir des preuves pertinentes. Une fois vérifié, ce site supprimera immédiatement le contenu présumé contrefait.