이 블로그 검색

레이블이 SSIS인 게시물을 표시합니다. 모든 게시물 표시
레이블이 SSIS인 게시물을 표시합니다. 모든 게시물 표시

2014년 6월 16일 월요일

SSIS UNZIP TASK



 

 

Executable : unzip.exe
 
Arguments : "D:\unzip.exe " -o  "C:\zipFilePath\file.zip" -d "D:\unzipFolderPath\"
폴더명에 공백이 포함된 경우 Double Quotation 으로 묶어줘야 하며
Argument 값에 에서 Double Quotation은   \"  으로 입력한다.
 
 
 

2011년 6월 22일 수요일

SSIS "VS_NEEDSNEWMETADATA" 에러

데이터원본테이블을 동적으로 바라보도록 패키지를 구성할 경우
(테이블명 변수 , expression 사용 등)

동적으로 변하는 데이터원본의 메타정보가 일치하지 않을경우   아래와같은 에러메세지를 띄우는데

failed validation and returned validation status "VS_NEEDSNEWMETADATA"

데이터원본의 데이터 타입, 컬럼순서 등을 체크한다.

2011년 4월 11일 월요일

xp_cmdshell 을 사용한 패키지 실행


파일시스템 내의 패키지 실행
master..xp_cmdshell 'DTEXEC /FILE "C:\패키지.dtsx" /CHECKPOINTING OFF /REPORTING E '

실행시 변수를 할당하여 패키지 실행
master..xp_cmdshell 'DTEXEC /FILE "C:\패키지.dtsx" /CHECKPOINTING OFF /SET "\Package.Variables[User::사용자변수].Properties[Value]";변수값 /REPORTING E '

연결된 서버의 패키지 실행 
[연결된서버명].master..xp_cmdshell 'DTEXEC /FILE "C:\패키지.dtsx" /CHECKPOINTING OFF /SET "\Package.Variables[User::사용자변수].Properties[Value]";변수값 /REPORTING E '

서버상에 올린 패키지 실행
master..xp_cmdshell  'dtexec /DTS "\MSDB\패키지명" /SERVER 서버명 /DECRYPT 패키지암호 /CHECKPOINTING OFF  /REPORTING V '


Expression 내의 Double Quotation 또는 \ 표기

Expression 내에서는 Double Quotation 으로 문자열을 묶고 이를 사용하므로 문자열내에 Double Quotation 포함 시켜야 경우 "   \" 으로 표현한다.
FileSystem Connection 스트링으로 자주 사용될 \또한  \\ 표기한다.

)
@[User::Excel2007Files] + "\\XLS_Test_Type_T.xlsx;Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=\"Excel 12.0;HDR=YES\";"

"C:\\A Folder \\B Folder\\" + @[User::strFileName]

프로세스 실행 태스크를 사용하여 Unzip




Executable : unzip.exe

Arguments : "D:\unzip.exe " -o  "C:\zipFilePath\file.zip" -d "D:\unzipFolderPath\"

폴더명에 공백이 포함된 경우 Double Quotation 으로 묶어줘야 하며
Argument 값에 에서 Double Quotation   \"  으로 입력한다.


파생열 구성시 플랫파일의 공백(Space) 제거


플랫파일을 디비에 적재할 경우 필드에 공백이 포함되기도 하는데
Numeric 컬럼에 적재될때는 공백이라도 문자열로 인식하여 오류를 낸다.
파생열구성에서 TRIM 후 남은 공백값을 null로 변환하여 적재하도록 구성

LTRIM(RTRIM(컬럼)) == "" ? NULL(dt_wstr,30) : LTRIM(RTRIM(컬럼))

CASE statement in SSIS Derived Columns



- 일반적인CASE
CASE WHEN [COLUMN_A] < 0 THEN [COLUMN_A] * -1
     ELSE  [COLUMN_A] END


- SSIS 파생열에서의 CASE문 사용
[COLUMN_A] < 0 ? [COLUMN_A]*-1 : [COLUMN_A]