2016-09-15 3 views
0

에이전트 작업 단계가 실행중인 SSIS 패키지의 이름을 찾는 방법이 있습니까? 나는 명령을 얻기 위해 쿼리를 시도했다. 그러나 경로와 이름과 함께 전체 명령을 보여줍니다. 패키지 이름 만 필요합니다. 예를 들어, 아래에서 'ABCDEFG.dtsx'결과입니다.에이전트가 실행중인 SSIS 패키지의 이름을 찾는 SQL Server 쿼리

사용 MSDB GO SELECT 명령 sysjobsteps 어디에서 서브 시스템 = 'SSIS' GO

결과 :/FILE "\"L : \ 패키지 \ ABCDEFG.dtsx \ ""/ CHECKPOINTING OFF /보고 E

위의 결과에서 패키지 이름 만 가져 오는 방법이 있습니까? 당신의 도움을 주셔서 감사합니다. 고맙습니다.

답변

0

문자열 처리를 사용하여 이름을 추출 할 수 있습니다. 결과에서 ".dtsx"문자열의 첫 번째 발생을 찾습니다. 이것은 색인을 줄 것이다. 해당 인덱스가 시작될 때까지 결과에 하위 문자열을 수행하십시오. 그런 다음 하위 문자열에서 "\"의 마지막 항목을 찾습니다. 다시 문자열의 "\"위치를 제공합니다. 이제 나머지 문자열에 대해 하위 문자열을 수행 할 수 있습니다.

@result 변수에 쿼리 출력이 있다고 가정합니다.

DECLARE @stringIndex INT 
DECLARE @remainingString VARCHAR(100) 

SELECT @stringIndex = CHARINDEX('.dtsx', @result) 
SELECT @remainingString = SUBSTRING(@result, 1, @stringIndex) 
SELECT @remainingString = REVERSE(@remainingString) 
SELECT @stringIndex = CHARINDEX('/', @remainingString) 
SELECT @remainingString = SUBSTRING(@remainingString, 1, @stringIndex) 
SELECT @remainingString = REVERSE(@remainingString) 

위의 쿼리는 유용합니다. SQL Server에는 마지막 색인과 같은 것이 없기 때문에 REVERSE을 대신 사용했습니다.

관련 문제