2012-11-21 3 views
0

두 개의 객체가있는 간단한 DataFlow를 mdb 파일의 소스와 MSSQL 데이터베이스의 대상으로 사용할 수 있습니다.SSIS DataFlow에서 MSSQL에 액세스

아이디어는 데이터를 다른 것으로 마이그레이션하는 것입니다.

문제는 데이터가 Access 쿼리에서 추출되고 한 열에 ~ 1000 자까지 포함되며 고급 속성의 SSIS에서는 외부 열의 길이가 기본값 인 255입니다. 따라서 작업을 실행할 때 잘라내려고 시도합니다 . truncate에서 throw 오류를 비활성화하는 것은 옵션이 아니며 외부 열의 길이를 수정할 수 없으면 메타 데이터와 관련하여 오류가 발생하고 오류가 발생합니다.

우선 누구나 설명 할 수 있습니까?

두 번째로 나는 해상도가 필요하며, 나를 빨리 미치기 때문에 빨리해야합니다.

답변

0

액세스는 MSSQL의보기와 동일한 쿼리를 지원합니다. 열 크기는 몇 가지 결과 만보고 아니라 열 데이터 형식의 기본 열 길이로 정의됩니다.

원하는 데이터 유형이있는 다른 테이블을 만들고 데이터 흐름 앞에 패키지 2 SQL 스크립트를 넣습니다. 하나는 테이블의 모든 데이터를 삭제하고 하나는 테이블에 대해 쿼리를 실행하는 것입니다. 그것을 임시 테이블로 취급하십시오.

그러면 실제 데이터 흐름이이 의사 임시 테이블에 대해 실행됩니다.

내 문제가 해결되었습니다.

0

이런 종류의 문제가 발생합니다. 왜냐하면 ssis 작업은 첫 번째 100 개 (afaik) 행을 검사하여 열의 길이를 "추측"하기 때문입니다. 따라서 1에서 100까지의 모든 행의 길이가 10이고 행 101의 legnth가 11 인 경우 길이가 "10으로 추측"되었으므로 작업이 실패합니다.

수정하면 오류가 발생합니다. validateExternalMetadatatrue으로 설정하십시오. 이 문제를 해결하려면 가져 오기 작업 (액세스)의 advanced options으로 이동하여 값을 false으로 설정하십시오. 이것은 작업을 확인하지 않고 입력 한 수정 된 값을 허용한다는 것을 의미합니다.

+0

이 문제는 이미 첫 번째 행에 x 문자가 더 많이 표시되고 실제로 len이 예상대로 표시되도록 이미 만들려고했지만 실제로 데이터를 볼 때/throw하는 데이터를 가져 오려고했습니다. 그것은 내 얼굴에 ... 데이터가 잘릴 것입니다 bla bla bla – GxG

+0

데이터에 구분 기호로 설정 한 값이 포함될 수 있습니까? 이것은 당신의 문제를 설명해 줄 것입니다. – stb

+1

나는이 문제를 해결했다. 주어진 컬럼에 대해 특정 길이의 결과를 저장하기 위해 임시 테이블을 만들었고 ... 작동했습니다 ... 데이터 자체에 공간 구분 문자가있었습니다. 쿼리의 메타 데이터는 각 열의 반환 형식에 대한 기본값을 가져옵니다. 임시 테이블을 사용하면이 제한이 해결됩니다 ... – GxG

0

BIIS 개발 환경 내에서 데이터를 가져 오려면 SSIS 가져 오기 및 내보내기 마법사을 시도 했습니까? 이는 데이터를 가져올뿐만 아니라 패키지를 저장하기 때문에 MsAccess를 사용하는 가장 쉬운 방법입니다. 가져 오기 중에 마법사를 사용하여 오류가 발생하면 추가 조사에 도움이되므로 게시하십시오. 또한 @stb가 제안 했으므로 1000자를 넘는 첫 번째 레코드를 사용해보십시오.

+0

이 옵션은 자동화가 필요하므로 옵션이 아닙니다. – GxG

+0

이 방법을 먼저 시도해보고 문제가 있는지 궁금합니다. 위에서 말했듯이, 패키지로 저장되기 때문에이를 자동화하여 사용할 수도 있습니다. – user1826905

관련 문제