2014-01-17 3 views
0

TableOne.txt (TXT файл)Как я буду сравнивать два плоских файла в ssis?

LoadNumber Name Address 
101   Yogesh ABC 
102   Zebra XYZ 
103   Kattle BTM 

TableTwo.txt (TXT файл)

LoadNumber Cost EName 
101   240  Yogesh 
105   500  Kavita 
110   340  Kamal 

Теперь я хочу, чтобы сравнить эти плоские файлы. 1. Я хочу, чтобы все данные, которых нет в таблице 2, являются файловой базой LoadNumber, а также я хочу, чтобы все данные, которых нет в таблице текстовых файлов, не являются LoadNumber

ответ

1

1- читайте оба текстовых файла через Flat File Source компонент

2- Сортировать им LoadNumber

3- подключения к Merge Регистрация compnonent (присоединиться тип: полное внешнее соединение) и соединим TableOne.LoadNumber - TableTwo.LoadNumber

4- Условное разделение на основе ISNULL (tableXXXX.LoadNumber), например. если нуль для TableOne.LoadNumber то отсутствует table1

enter image description here

+0

Спасибо, но я не получаю всю информацию ... означает LoadNumber, имя, стоимость, адрес ... Я получаю только LoadNumber –

+0

Вы должны убедиться, не являющиеся ключевыми полями передаются через сортировка (т. е. проверка через проверку), а также из объединения слияния (все поля из обеих таблиц в проверке слияния) – Jayvee

+0

спасибо, я получил его .... но еще одна проблема .. я могу сделать один набор данных для обеих записей. . ?? –

0

Другой метод может быть, чтобы загрузить обе плоские файлы в таблицы SQL Ins Flat File Source & использование Выполнение задач SQL для объединения таблиц & получить данные.

Делает рабочий процесс SSIS более простым, но, очевидно, требует 2 таблицы SQL.

Не забудьте очистить таблицы в начале, если вы используете этот метод.

1

вы можете сделать это сценарий C# в задаче сценария SSIS. Ref: http://www.java2s.com/Code/CSharp/File-Stream/Comparetwofiles.htm

using System; 
using System.IO; 

public class CompFiles { 
    public static void Main(string[] args) { 
    int i=0, j=0; 
    FileStream f1; 
    FileStream f2; 

    try { 
     // open first file 
     try { 
     f1 = new FileStream(args[0], FileMode.Open); 
     } catch(FileNotFoundException exc) { 
     Console.WriteLine(exc.Message); 
     return; 
     } 

     // open second file 
     try { 
     f2 = new FileStream(args[1], FileMode.Open); 
     } catch(FileNotFoundException exc) { 
     Console.WriteLine(exc.Message); 
     return; 
     } 
    } catch(IndexOutOfRangeException exc) { 
     Console.WriteLine(exc.Message + "\nUsage: CompFile f1 f2"); 
     return; 
    } 

    // Compare files 
    try { 
     do { 
     i = f1.ReadByte(); 
     j = f2.ReadByte(); 
     if(i != j) break; 
     } while(i != -1 && j != -1); 
    } catch(IOException exc) { 
     Console.WriteLine(exc.Message); 
    } 
    if(i != j) 
     Console.WriteLine("Files differ."); 
    else 
     Console.WriteLine("Files are the same."); 

    f1.Close(); 
    f2.Close(); 
    } 
} 
Смежные вопросы