none
SSISでファイル名の変更方法を教えてください。 RRS feed

  • 質問

  • おそらく簡単だと思われる質問なので申し訳ないのですが、ヘルプを見ても全然わからなかったので質問させて頂きます。

    現在、Forループコンテナで、特定のファイルを User::file_nmにいれています。
    Forループコンテナ内で、データフロータスク等を実行しています。

    実行後にファイル名を変更したいのですが、設定がよくわからなくて困っています。
    ファイルシステムタスクを使い、
    IsSourcePathVariable -> true
    SourceVariable -> User:file_nm

    と設定していますが、
    変更後のファイル名を[complete日付]User:file_nmにしたいのですが、うまくいきません。

    不勉強で申し訳ありませんが、ご教授お願いいたします。

    2010年10月27日 7:15

回答

  • ひとつの例をご紹介します。

    >現在、Forループコンテナで、特定のファイルを User::file_nmにいれています。
    >Forループコンテナ内で、データフロータスク等を実行しています。

    「User::file_nm」は、「User::FileName」に改名して説明させていただきます。
    「User::FileName」は、Forループコンテナの設定において「ファイル名と拡張子」で取得することとします。

    >ファイルシステムタスクを使い、
    >IsSourcePathVariable -> true
    >SourceVariable -> User:file_nm
    >と設定していますが、

    ファイルシステムタスクを以下のように設定します。
    ・IsSourcePathVariable -> True
    ・SourceVariable -> User:SourceVariable
    ・Operation -> ファイル名の変更
    ・IsDestinationPathVariable -> True
    ・DestinationVariable -> User:DestinationVariable


    SSIS変数は以下のように設定します。
    ・User:Path
        Valueプロパティ:  C:\sample\
    ・User:FileName
    ・User:SourceVariable
        EvaluateAsExpressionプロパティ:  True
        Expressionプロパティ:
    ----------------------------------------
    @[User::Path] + @[User::FileName]
    ----------------------------------------
    ・User:DestinationVariable
        EvaluateAsExpressionプロパティ:  True
        Expressionプロパティ:
    ----------------------------------------
    @[User::Path]
     + RIGHT("0000" + (DT_WSTR, 4) year(GETDATE()), 4)
     + RIGHT("00"   + (DT_WSTR, 2) month(GETDATE()), 2)
     + RIGHT("00"   + (DT_WSTR, 2) day(GETDATE()), 2)
     + @[User::FileName]
    ----------------------------------------

    ※変数の値(Valueプロパティ)と式(Expressionプロパティ)を区別してください。
    Expressionプロパティを設定した変数は、BIDS の変数ペインにおいて、アイコンの左上がピンクに変わります。

    ※Expressionプロパティの設定はプロパティ ウィンドウで行うことができます。
    BIDS Helper という CodePlex にある BIDSアドインツールをインストールすると、
    BIDS の変数ペインの上部から「Expression Editer」というツールを起動して設定できます(式の評価=間違い確認、もできます)。
    (アイコンの左上がピンクに変わるのはBIDS Helperを入れた場合だけかもしれません)
    • 編集済み nagasakit 2010年10月27日 22:50 微修正
    • 回答としてマーク ビランヌjr 2010年10月28日 4:44
    2010年10月27日 22:49

すべての返信

  • ひとつの例をご紹介します。

    >現在、Forループコンテナで、特定のファイルを User::file_nmにいれています。
    >Forループコンテナ内で、データフロータスク等を実行しています。

    「User::file_nm」は、「User::FileName」に改名して説明させていただきます。
    「User::FileName」は、Forループコンテナの設定において「ファイル名と拡張子」で取得することとします。

    >ファイルシステムタスクを使い、
    >IsSourcePathVariable -> true
    >SourceVariable -> User:file_nm
    >と設定していますが、

    ファイルシステムタスクを以下のように設定します。
    ・IsSourcePathVariable -> True
    ・SourceVariable -> User:SourceVariable
    ・Operation -> ファイル名の変更
    ・IsDestinationPathVariable -> True
    ・DestinationVariable -> User:DestinationVariable


    SSIS変数は以下のように設定します。
    ・User:Path
        Valueプロパティ:  C:\sample\
    ・User:FileName
    ・User:SourceVariable
        EvaluateAsExpressionプロパティ:  True
        Expressionプロパティ:
    ----------------------------------------
    @[User::Path] + @[User::FileName]
    ----------------------------------------
    ・User:DestinationVariable
        EvaluateAsExpressionプロパティ:  True
        Expressionプロパティ:
    ----------------------------------------
    @[User::Path]
     + RIGHT("0000" + (DT_WSTR, 4) year(GETDATE()), 4)
     + RIGHT("00"   + (DT_WSTR, 2) month(GETDATE()), 2)
     + RIGHT("00"   + (DT_WSTR, 2) day(GETDATE()), 2)
     + @[User::FileName]
    ----------------------------------------

    ※変数の値(Valueプロパティ)と式(Expressionプロパティ)を区別してください。
    Expressionプロパティを設定した変数は、BIDS の変数ペインにおいて、アイコンの左上がピンクに変わります。

    ※Expressionプロパティの設定はプロパティ ウィンドウで行うことができます。
    BIDS Helper という CodePlex にある BIDSアドインツールをインストールすると、
    BIDS の変数ペインの上部から「Expression Editer」というツールを起動して設定できます(式の評価=間違い確認、もできます)。
    (アイコンの左上がピンクに変わるのはBIDS Helperを入れた場合だけかもしれません)
    • 編集済み nagasakit 2010年10月27日 22:50 微修正
    • 回答としてマーク ビランヌjr 2010年10月28日 4:44
    2010年10月27日 22:49
  • 希望通り動きました!

    ありがとうございました。

    2010年10月28日 4:45