문제

개발 중인 SSIS 패키지가 있습니다.SQL Server 2005에서 MS Access 2007로 데이터를 쓰려고 합니다.

SQL char(1) 필드를 Access Yes/No 필드로 변환하는 방법이 매우 궁금합니다.

내가 수집한 정보에 따르면 액세스 예/아니요 필드에 해당하는 SQL은 값이 0 또는 1인 비트 필드입니다.

내 SQL char(1) 필드(내 소스 필드)에는 "N" 또는 "Y"가 포함되어 있습니다.비트 필드를 사용할 수 있는 옵션이 없으므로 딜레마에 빠졌습니다.부울과 정수로 캐스팅을 시도했지만 성공하지 못했습니다.

데이터 흐름 작업에서 정규식을 만들려고 했는데 아무 소용이 없었고 파생 열, 데이터 변환 등도 아무 소용이 없었습니다.나는 붙어있다.

.Row 컬렉션을 반복하는 조건문 작성에 대한 몇 가지 예를 보았습니다.NULL 검사나 문자열 값에 대한 조건을 작성해야 한다는 점은 다소 과도한 것 같습니다.

MSDN 링크에서 DTS 변환 데이터 작업 속성과 동일한 SSIS ...다음과 다소 유사한 코드가 있습니다.

If DTSSource("Col010") = "Y" Then
  DTSDestination("X") =  -1
 Else
  DTSDestination("X") =  0
End If

코드를 통해 행 값을 직접 조작할 수 있어야 합니까?소스 필드가 예/아니요 유형이므로 정수 값을 허용합니까?음수 값?예, 실제로 MS 액세스에서는 "-1"입니다. 이것이 혼란스러운 것 같습니다.

정규식을 사용하면 이 문제를 해결할 수 있을 것 같지만 어떻게 사용해야 할지 잘 모르겠습니다.

제가 간과하고 있는 부분이 있나요?"CHAR"를 "YES/NO"로 변환하는 방법이 있어야 합니다.

** 나는 좋은 2000 SQL DTS가 원숭이에 의해 설치되어 기본적으로 상자에서 꺼내자마자 아무런 문제 없이 이것을 처리할 수 있다는 것을 여기서 쉽게 지적할 수 있다는 것을 알고 있습니다.나는 예/아니요 필드 문제와 같은 SSIS의 아주 작은 문제에 WAAAAY 너무 많은 시간을 소비하고 있습니다.

SSIS 및 MS Access 예/아니요 필드 주제에 대한 문서를 찾을 수 없습니다.MSDN에서는 질문 게시도 허용하지 않습니다.알아요, 불쌍해요 :(

SSIS와 MS Access에서 이런 이상한 점을 발견한 사람이 있습니까?

도움이 되었습니까?

해결책

보다 이 주제 파생 열 변환에 대한 자세한 내용은 MSDN을 참조하세요.

이는 수행하려는 작업을 구체적으로 다루지는 않지만 일부 예에서는 목표를 달성할 수 있어야 함을 암시합니다.파생된 출력 열의 유형을 DT_BOOL로 설정하고 위에 있는 코드의 한 줄 버전을 표현식으로 사용합니다(아마도 삼항 연산자 사용?).

그리고 그렇습니다. 입장 Jet는 True를 -1로 나타냅니다.False = 0이고 True는 False가 아닙니다.비트별 Not을 0에 적용하면 -1의 2의 보수 버전을 얻게 됩니다.

업데이트: 부울의 Jet 내부 저장소 ~이다 정수로(생각해 보세요. 하지만 그것이 그들이 선택한 것입니다...).따라서 Jet 예/아니요 필드는 False에 대해 0을 허용하고 True에 대해 0이 아닌(단지 -1이 아님)을 허용합니다. 댓글 보기

다른 팁

이 문제를 해결하기 위해 파생 열을 만들었습니다.

열의 정규식은 다음과 같습니다.

[column] == "Y" ? -1 : 0

데이터 유형은 다음과 같습니다.

single-byte signed integer [DT_I1]

그리고 비올라!Jet(일명 MS Access, David W.에게 감사드립니다.Fenton!), 이제 예/아니요 필드가 표시됩니다.

테이블에 하나의 레코드만 나타나는 것을 확인한 후 테스트 데이터가 유효하지 않음을 확인하고 근본적인 문제를 수정했습니다.

이것은 SQL char(1) 필드("N" 또는 "Y" 값 포함)를 MS Access(이런, Jet를 의미했습니다) 예/아니요 필드로 캐스팅하는 방법에 대한 좋은 문서입니다.

모두의 도움에 감사드립니다.Stackoverflow는 매우 중요합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top