2012-01-18 2 views
0

나는이 열을 하나의 열을 기준으로 분할하려는 텍스트 파일에 있습니다. 조건부 변환을 사용하여 SSIS에서이 작업을 시도했습니다. 내가 다른 파일에있을 자신의 파일과 나머지에 갈 NORTHERN 모터 CHITOMBO 모든 행을 원하는텍스트 파일의 조건부 분할 변환

CSH1364300 NTT Nissan Mhangura       NISSAN    NISSAN 3.0T/D DJ55  ADNJ550000A000337 J55-3374 FRX391NW 85M19690   1   1 13/01/2012Mr Mairosi Melows          0182939060  0832626733  0832626733 E  Mr Xioang Ching          NULL           Samuel   199396PRIVATE BAG X1    Renkers NORTH           1741  2400   1349   ?    55   ?    3804   
CSH1364300 NTT Nissan Chivhu       NISSAN    NAVARA 2.5 4X2 N30  MNTNCGD40Z0002046 N300000211HHS788NW 85M19910   1   1 13/01/2012Mr   Forest Gump        0187862724  NULL   NULL   A  Mairos Motors         null           Samuel   85251 Stoner Road             Charlotteville     4900  1395   14941.5  ?    ?    ?    16336.5  
MTP90961  NORTHERN MOTORS CHITOMBO      DISCOVERY 4   LANDROVER DISCOLDS  SALLAAAF3BA580608 BA580608 DYT433FS 55W84243   23  0 16/01/2012Mr M  George Jungle        |    NULL   0824691669 E  JUGGLE CANTEEN/A       [email protected]       MAIDEI HAVATIDI 24496 
CSH92041  NORTHERN MOTORS CHITOMBO      Volvo    S40 2006 Model 544  YV1MS685162192177    BM40PYGP 55D10150   18  0 16/01/2012Miss S Rotheram         |    |    0837170017 E  Miss S Simabnegavi         NONE GIVEN         Sarah Ndipeiwo   108767 
CRE1364300 NTT Nissan Chivhu       NISSAN    NISSAN NP 300 2K09  ADNK090000A000607 K09-6075 HKN637NW 85M19920   1   1 13/01/2012Mnr             0761539867  0761539867  0761539867 A  City Of Valleyland         null           Samuel   75620 P O Box 495             Chegutu     2570  829.4   551.19  ?    55   ?    1435.59  

를 다음과 같이 내 데이터입니다. 조건부 표현식은 다음과 같습니다.

SUBSTRING([Column 0],14,41) == "NOTHERN MOTORS CHITOMBO" 

원하는 결과를 반환하지 않습니다. 사용중인 기술 BIDS 2008

+0

편집 작업을 해주셔서 감사합니다. 레코드를 반환하는 쿼리는 NORTHERN – imdondo

+0

이라는 단어에 R이 누락되어 있지만 이와 같은 상황에서는 조건부 분할 전에 파생 열 변환을 추가하면 도움이됩니다. 귀하의 경우, 파생 열에는 새로운 열 WTF가 있고 그 값은'SUBSTRING ([Column 0], 14,41) '이 될 것입니다. 그런 다음 해당 변환에 성공한 데이터 뷰어를 첨부하고 그 값을 검사 할 수 있습니다. 거기에'len (WTF)'컬럼을 추가하는 것도 도움이 될 것이다. 이것은 약간의 추가 메모리를 희생해서 당신의 조건부 분할이 더 명확 해 졌다고 덧붙였다. (WTF == "NORTHERN MOTORS CHITOMOB") – billinkc

답변

0

"원하는 결과를 반환하지 않음"은 무엇을 의미합니까? 하나의 분명한 문제는 SUBSTRING 표현식에 "NOTHERN"이 있지만 데이터에 "NORTHERN"이 있으므로 결코 일치하지 않는다는 것입니다.

데이터 흐름에 어떤 열 이름을 할당했는지 알 수는 없지만 [열 0]은 두 번째가 아닌 첫 번째 열을 제안합니다. 대신 [칼럼 1]이 필요합니까?

마지막으로 SUBSTRING() 표현식이 올바르지 않습니다. 찾으려는 문자열의 길이가 41 문자가 아니므로 24이므로 SUBSTRING ([Column 1], 1, 24)이 맞을 가능성이 큽니다.

+0

NORTHERN이라는 단어가 N을 빠뜨렸다는 사실에 대해 유감을 표명했다. 나는 이미 그것을 암시했다 .이 텍스트 파일은 하나의 열, 즉 열 0처럼 취급됩니다. 따라서 열이 표시된대로 표시되어야합니다. – imdondo

+0

제안 해 주셔서 감사하지만 여전히 라우팅되는 조건을 충족하는 행 수를 얻을 수 없습니다. 예상되는 대상에 – imdondo

+0

아직 작동하지 않는 부분을 정확히 설명하지 않았습니다. 행이 라우팅되지 않거나 일부 행만 또는 완전히 다른지 여부는 무엇입니까? 어떤 경우이든 파일을 여러 열로 처리하기 시작하는 것이 좋습니다. 그런 식으로 데이터 작업하는 것이 훨씬 쉬울 것입니다. – Pondlife