bugfix> sql-server > 投稿

接続として2つのフラットファイルとデータベーステーブルを使用するssisパッケージがあります。これら3つの接続をコマンドラインパラメーターとして渡すことで、コマンドラインからssisパッケージを実行したいと思います。どうすればいいですか?

Googleで検索した後、接続としてDBを使用している場合、これが合格する方法であることがわかりました。しかし、フラットファイルの接続パラメーターを渡す方法がわかりませんでした。

DTExec.exe /F "<packagepath> /set \package.connections[MyDB].properties[ServerName];SS2K8SV01_Prod

回答 1 件
  • FFCMというフラットファイル接続マネージャーがあり、ConnectionStringプロパティをC:\ ssisdata \ output \ B.txtに更新するとします。

    dtexec.exe 
    /file Package2.dtsx 
    /set 
    \Package.Connections[FFCM].Properties[ConnectionString];C:\ssisdata\input\B.txt
    
    

    これらは大文字と小文字が区別されるため、接続マネージャーはFFCMと呼ばれる必要があります。 ffcmがある場合、これは機能しません。

    パス内のスペースを処理する必要がある場合、正直に言うと、パスの名前を変更するよりも名前を変更する方が簡単ですが、セミコロンの後の部分だけでなく、引数全体を二重引用符で囲む必要があると思います

    dtexec.exe 
    /file Package2.dtsx 
    /set 
    \Package.Connections[FFCM].Properties[ConnectionString];C:\ssisdata\input\B.txt
    /set 
    \Package.Connections[FFCM2].Properties[ConnectionString];C:\ssisdata\input\BC.txt
    /set 
    \Package.Connections[MyDB].Properties[ServerName];localhost
    
    
    / setの後のものがどのように判断するのですか

    デフォルトでは、F4は、SSISエディターでクリックしたすべてのプロパティウィンドウを表示します。特定のオブジェクトのPackagePathプロパティを探し、それが「ベース」パスを識別します。

    そこから、Expressionsコレクションにアクセスして、 ConnectionString を設定するプロパティを識別する必要があります。

    したがって、フルパスを作成するには、コマンドラインから次のように設定します

    \Package.Connections[FFCM].Properties[ConnectionString]
    
    

あなたの答え