8

次を使用してSQL2005でSSISパッケージを実行しようとしています。

dtexec /SQL "\MyPackageName" /SERVER mssql1 /MAXCONCURRENT " -1 " /CHECKPOINTING OFF
 /SET "\Package.Variables[FileFolder].Value";"\\SomeServer\Someshare\Output Batch\"

これにより、次のようになります。

Option "Batch " is not valid.

引用符内のBatchという単語の最後のスペースは、おそらく最後の円記号をエスケープ文字として扱っていることを示唆しています。だから私はそれをこのように試しました:

dtexec /SQL "\MyPackageName" /SERVER mssql1 /MAXCONCURRENT " -1 " /CHECKPOINTING OFF
 /SET "\Package.Variables[FileFolder].Value";"\\\\SomeServer\\Someshare\\Output Batch\\"

これによりパッケージを実行できましたが、この変数をデータ出力先のフラットファイルの名前として使用すると、次のエラーが発生するようになりました。

Warning: 2010-07-27 14:36:38.23
   Code: 0x8007007B
   Source: Data Flow Task Flat File Destination [72]
   Description: The filename, directory name, or volume label syntax is incorrect.
End Warning
Error: 2010-07-27 14:36:38.23
   Code: 0xC020200E
   Source: Data Flow Task Flat File Destination [72]
   Description: Cannot open the datafile "\\\\SomeServer\\Someshare\\Output Batch\FlatFile.txt".
End Error

何が得られますか?

4

1 に答える 1

10

エラーのあるデータファイルを一覧表示するエラーメッセージで、Batchという単語の後の1つの円記号は、おそらくその円記号のみが影響を受けることを示唆しています。

一部のテストでは、奇妙な理由で、パッケージ変数の最後の文字を円記号にする必要がある場合、SSISではそれを2倍にする必要があることが証明されました。これは、GUIを使用し、「SQL Server Integration Servicesパッケージ」タイプのジョブを選択し、「値の設定」タブをクリックした場合にも当てはまります。末尾の円記号を2倍にする必要があります。

最終的な作業コマンドは次のとおりです。

dtexec /SQL "\MyPackageName" /SERVER mssql1 /MAXCONCURRENT " -1 " /CHECKPOINTING OFF
 /SET "\Package.Variables[FileFolder].Value";"\\SomeServer\Someshare\Output Batch\\"

最後のダブルバックスラッシュ付き。

于 2010-07-27T22:34:25.790 に答える