2014-09-11 3 views
-1

Excel 파일의 데이터를 데이터베이스 테이블로로드하는 작업을 자동화하는 새로운 패키지를 개발하는 동안 문제가 발생했습니다. 로드하는 동안 Excel 파일이있는 폴더 이름을 추출해야하며 폴더 이름을 기준으로 데이터베이스에로드 할 다른 정보를 검색해야합니다. 파일 경로에서 폴더 이름을 검색하려면 LOGIC에 대한 도움이 필요합니다.LOGIC에서 ssis의 파일 경로에서 폴더 이름을 검색합니다.

+0

'ssis get folder name'을 (를) 검색 했습니까? – Tak

+0

expression을 사용하면 findstring, substring, len과 같은 표현식에 대한 시스템 함수를 찾을 수 있습니다. 마지막 '\'과 마지막 '\'사이에 1 사이의 데이터를 찾기 위해 계산을 사용하십시오. 그게, 당신은 당신의 폴더 이름을 가지고 –

답변

1

System.IO 네임 스페이스를 사용하여 파일에서 파일 정보 및 디렉터리 정보를 가져올 수있는 스크립트 작업을 사용할 수 있습니다. 그런 다음 폴더 정보에서 추출하려는 값을 이후 단계에서 사용할 변수에 할당 할 수 있습니다.

+0

나는 스크립트 작업에서 그 짓을 했어,하지만 루프가 처음부터 끝까지 실행되는 파일은 첫 번째 파일의 경로 만 반환하고 루프를 빠져 나올 때마다 루프를 다시 실행하여 inorder를 다시 실행해야한다. 폴더에있는 다른 파일의 파일 경로도 마찬가지입니다. –

+0

모든 파일이 같은 폴더에 있으면 문제를 이해할 수 없습니다. 당신은 더 구체적 일 수 있습니까? 여러 개의 폴더 또는 하위 폴더가 있습니까? 폴더 이름과 함께 파일 이름을 가져 오려고합니까? – DroidSlave300

+0

여러 폴더가 있고 동적으로 폴더 이름을 추출해야합니다. –

1

이렇게하는 한 가지 방법은 표현 작업입니다.

이 방법을 사용하려면 Excel 파일의 전체 경로/이름 문자열을 변수 (아래 예제에서 "FullPath")에 넣어야합니다.

@[User::Folder] = SUBSTRING(@[User::Path], 1, 
    LEN(@[User::Path]) - FINDSTRING(REVERSE(@[User::Path]), "\\", 1) 
) 

이 표현은 그 다음 "FullPath는"마이너스 마지막 "\"아무것도의 값을 변수 "폴더"를 설정합니다. C:\Somewhere\Somewhere Else\More Path\File Name.xlsx을 먹인 경우 표현식에서 "Folder"를 C:\Somewhere\Somewhere Else\More Path으로 설정합니다.

0

SUBSTRING (@ [사용자 :: FilePath를, 1, LEN (@ [사용자 :: FilePath를]) - FINDSTRING (REVERSE (@ [사용자 :: FilePath를), "\", 1) + 1 )

기타 예제 here

관련 문제