web-dev-qa-db-ja.com

コマンドラインからdtsxパッケージを実行する方法

コマンドラインからdtsxパッケージを実行すると、次のエラーが表示されてトリガーされます

1.接続が見つかりません。特定の接続要素が見つからない場合、接続コレクションによってエラーがスローされます。

2.パッケージ「xxxxxxx」内のオブジェクトへのパッケージパスを解決できません。パッケージパスが有効であることを確認してください

3.パッケージパスが、見つからないオブジェクトを参照しました。これは、パッケージパスを見つけられないオブジェクトに解決しようとしたときに発生します。

しかし、パッケージをビジネスインテリジェンス開発スタジオで実行すると、これは正常に機能します。

11
mahesh

コメントへの回答を待つ間、ここで推測してください。通常、パッケージがBIDSで正常に実行されてもコマンドラインからは機能しない場合、64/32ビットの非互換性に関連していることがわかります。

Excel、Access、またはシートの下でJETドライバーを使用するものを使用していますか?これは32ビットモードでのみ機能します。

64ビットOSでは、デフォルトで新しいODBC接続を作成すると、32ビットバージョンがアクセスできない64ビット名前空間に作成されますか?

InformixまたはUDB/DB2ドライバーを使用していますか?私はそれらの32バージョンしか見つけませんでした。

コマンドラインからパッケージを実行する

dtexec は、SSISパッケージを実行するためのコマンドラインメカニズムです。 64ビットOSには2つのフレーバーがあり、どちらもdtexecという名前で、通常、32ビットはWindowsパス環境変数で参照されます

64ビットOSでは、64ビットへのデフォルトパスは_"c:\Program Files\Microsoft SQL Server\100\DTS\Binn\DTExec.exe"_になります。

64ビットOSでは、32バージョンへのパスは"c:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe"になります。

C:\ Src\MyProject\MyProjectにあるFooBar.dtsxという名前のパッケージを実行するには、次のように呼び出します。

_"c:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe" /file C:\Src\MyProject\MyProject\FooBar.dtsx
_

そのパッケージがSQL Server(DEVSQL01)のMyProjectフォルダーにある場合、これは同じパッケージを実行するための呼び出しになります。

_"c:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe" /SQL \MyProject\FooBar /SERVER DEVSQL01
_

編集する

構成を適用するには、_/CONF_オプションを指定する必要があります

_"c:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe" /file C:\Src\MyProject\MyProject\FooBar.dtsx /CONF C:\FooBar.dtsConfig
_

コメントを見ると、使用法の唯一の違いは、すべてを二重引用符で囲んでいることです。前後の引用符なしで試してください。

33
billinkc

sSISパッケージを呼び出すには、テキストの下に入力してください

dtexec/f/set\package.variables [Variable];値

例:-dtexec/f E:\ test_package\test_package\Package.dtsx/set\package.variables [id]; 1

enter image description here

参照 SSISパッケージを実行する方法

1
Samanth

/ SQLオプションは、MSDB->サーバー名\ Stored Packages\MSDB \に展開されたパッケージ用です

0