今天,主管讓研究SSIS如何實現自動化。尤其是比較繁瑣的文件導入數據,網上找了些資料,用VS2005,做了一個簡單的資料導入功能。有了.dtsx文件
代碼如下:
/**
* Copyright (c) eBizprise, Inc All Rights Reserved.
*/
package com.ebizprise.project.newhoemwork.common;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.DataInputStream;
/**
* java 調用SSIS
* SSISCaller
* @author Jack.Wang
* @version 1.0, Created on 2011-2-25 下午04:57:20
*/
public class SSISCaller {
public static void main(String[] args) {
try {
// create the execution process
Process executionProcess = Runtime.getRuntime().exec("dtexec /f \"f:/temp/dts/Package.dtsx\"");//這個地方要寫你做好的dtsx文件的路徑
// create the output reader
BufferedReader output = new BufferedReader(new InputStreamReader(new DataInputStream(
executionProcess
.getInputStream())));
String readStr;
while ((readStr = output.readLine()) != null) {
System.out.println(readStr);
}
output.close();
// wait for the process to terminate
executionProcess.waitFor();
// check the exit value
if (executionProcess.exitValue() == 0) {
System.out.println("SSIS execution succeeded\n");
} else {
System.out.println("SSIS execution failed\n");
}
} catch (Throwable e) {
System.out.println(e.getMessage());
}
}
// end of main
}
果然,執行成功了。
這時候,看到有亂碼出現,找到代碼中的:
BufferedReader output = new BufferedReader(new InputStreamReader(new DataInputStream(
executionProcess.getInputStream())));
修改爲:
BufferedReader output = new BufferedReader(new InputStreamReader(new DataInputStream(
executionProcess.getInputStream()),"gbk"));
亂碼問題解決了