Java 如何執行SSIS(dtsx)包

今天,主管讓研究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"));

亂碼問題解決了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章