0

こんにちは、テキスト ファイルの SSIS ログ プロバイダーのパスの宛先で問題が発生しました

最初は静的なパスを使用しますD:\\が、今はSQLテーブルからパスを取得して変数に入れたいパスです。

だから私はSSIS txtファイル接続文字列の式ビルダーを作成します

@[User::LogPath]+ @[System::PackageName]+ ("_"+(RIGHT((DT_WSTR,4)
DATEPART("yyyy",GetDate()),4)+
RIGHT("0"+(DT_WSTR , 2)
 DATEPART("mm", GetDate()),2)+
RIGHT("0"+(DT_WSTR,2)
DATEPART("dd",GetDate()),2)+"_"+
RIGHT("0"+(DT_WSTR,2)
DATEPART("HH",GetDate()),2)+"_"+
RIGHT("0"+(DT_WSTR,2)
DATEPART("mi",GetDate()),2)+"_"+
RIGHT("0"+(DT_WSTR,2)
DATEPART("SS",GetDate()),2))+".log")

しかし、@[User::LogPath]パス値を指定しなかったため、txt ログ ファイルは作成されませんでした

4

1 に答える 1

1

すべてをテーブル駆動にしたいので、すべての SSIS パッケージでこれをセットアップして実行しています。

各パッケージで、「LoggingPath」という文字列変数を作成しました。この変数には、次のような select ステートメントを使用して SQL タスクが入力されます。

SELECT FilePath
FROM Files
WHERE FileFunction = 'Log'
  AND SSISPackage = 'ImportStuff'

この SQL タスクでは、ResultSet は「単一行」に設定されています。結果セットの場合、前述の変数を参照する結果名 = 0 および変数名 = "User::LoggingPath" があります。また、この SQL タスクの遅延検証を「True」に設定しています。

SQL タスクが実行されると、SSIS ログ テキスト ログ ファイルの下の次の式 (実際の式と同様) で使用される変数が設定されます。

@[User::LoggingPath] + "\\" + @[System::PackageName] + "_" + (DT_STR,4,1252)DATEPART ( "yyyy" , @[System::StartTime] ) + RIGHT(" 0" + (DT_STR,4,1252)DATEPART( "mm" , @[システム::開始時刻] ), 2) + RIGHT("0" + (DT_STR,4,1252)DATEPART( "dd" , @[システム::StartTime] ), 2) + RIGHT("0" + (DT_STR,4,1252)DATEPART( "hh" , @[System::StartTime] ), 2) + RIGHT("0" + (DT_STR,4) ,1252)DATEPART( "mi" , @[システム::開始時刻] ), 2) + RIGHT("0" + (DT_STR,4,1252)DATEPART( "ss" , @[システム::開始時刻] ), 2 ) + ".csv"

上記のように、2 つのバックスラッシュ "\\" を忘れずに適用してください。お役に立てれば。

コッシュ

于 2013-03-11T18:48:39.340 に答える