2013-07-05 4 views
0

데이터베이스 테이블에서 데이터를 가져 와서 csv 파일로 출력하는 SSIS 패키지가 있습니다. 어떤 시점에서 파일 이름 (예 : CAR, 12)이 C0000012.csv를 만들 때 사용되는 A 유형 및 시퀀스 번호를 검색하는 SQL 실행 태스크가 있습니다. 패키지를 실행할 때 테이블에 차가없는 경우에도 오류가 발생하지 않도록이 작업을 수행하십시오.SSIS SQL 실행 작업 출력 변수

이렇게하려면 수를 확인하는 sql 패키지를 만들었습니다. . 나는 패키지를 실행하면

 NAME     | Direction| Type | Name | Size 
     User::DownloadFileType | Output | String | TYPE | 3 
     User::DownloadFileNum | Output | int32 | SEQN | 8 

내가 계속 : 중 하나를 반환 'CAR'와 밤은 경우 데이터 나 'NUL'0가있는 경우 일련 번호와 그때 출력 매개 변수로 매핑되는 두 변수가 오류 발생 :

The type of the value being assigned to variable "User::DownloadFileType" differs from the current variable type.

온라인 도움말을 보았는데 SSIS 문자열 값에 VARCHAR (MAX)를로드하는 데 문제가있는 것으로 보입니다. 데이터베이스 문자열은 VARCHAR2 (PL SQL) 유형이지만, 패키지 전체에 걸쳐 최대 크기는 3이며 행운은 없습니다.

사실이 문제는 VARCHAR2 유형이라고 생각되지만 SSIS와 호환되는 방법을 확신 할 수 없습니다. 당신이 제공 할 수있는 어떤 도움이라면 크게 감사 할 것입니다.

감사합니다, 스티브

답변

1

return 'CAR' and the sequence number if there is data or 'NUL' and 0 if there isnt

문자열 입력 변수는 SSIS에 NULL 값을 할당 할 수 없습니다. 빈 문자열 값을 대신 할당하십시오.

(3)

eg. select cast('CAR' as varchar(3)) from dual

+0

나는 NULL 값을 할당되지 않은, 나는 플래그와 'NUL'의 문자열을 할당되었다 VARCHAR 당신의 선택 문에서 타입 VARCHAR2의 반환 문자열 값을 캐스팅. .. –

+0

나는 당신의 게시물에 오타라고 생각했는데 언급 된 오류는 언급 된 이유 때문이라고 생각합니다. –

+0

varchar (3)과 같은 select 문에서 varchar2 유형의 반환 문자열 값을 캐스팅합니다. 이중에서 cast ('CAR'을 varchar (3)로 선택) –