2016-09-15 4 views
0

エージェントジョブステップが実行されているSSISパッケージの名前を見つける方法はありますか。私はコマンドを取得するために以下のクエリを試しました。しかし、それはパスと名前とともにコマンド全体を表示します。私はパッケージ名だけが必要です。たとえば、下の「ABCDEFG.dtsx」という結果が表示されます。エージェントが実行されているSSISパッケージの名前を検索するSQL Serverクエリ

使用MSDB GO SELECTコマンドsysjobstepsどこからサブシステム= 'SSIS' GO

結果:/ FILE "\" L:\パッケージ\ ABCDEFG.dtsx \ "" /チェックポイント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を使用しました。

関連する問題