2016-10-25 11 views
1

SSIS 2008 R2にGUID/Uniqueidentifierのネイティブサポートはありますか?SSIS 2008 R2のGUID

SSIS 2008 R2を使用して、ExcelスプレッドシートからSQLテーブルにデータを読み込むことを任されています。各ロード(Excelシート)は、バッチ全体を識別するためにパッケージ内で生成されたバッチ番号(GUID/Uniqueidentifier)を持っています。 SSISで変数を宣言すると、GUID/Uniqueidentifierを表すデータ型は表示されません。私は文字列を使用してその文字列をGUIDにキャストできますが、その文字列も失敗します。

私が考えることができる唯一の解決策は、GUIDをSSISを通して文字列として使用し、SQLテーブルにvarcharとして保存することです。

これが私の持つ最良の選択肢であるかどうかはわかりません。誰か助言してもらえますか?

ありがとうございます!

+0

ExcelはGUIDについて知らず、単なるテキスト値です。その列をGUIDに変換/解析する方法を尋ねています。ソースの詳細プロパティで列の種類をDT_GUIDに変更するか、データ変換の変換を使用してください –

+0

返信いただきありがとうございますPanagiotis。バッチ番号(GUID)は、スクリプトタスク(C#)を使用してSSISパッケージ内で生成され、 "BatchNumber"という名前のグローバル変数に保存されます。この変数を宣言すると、データ変換変換でGUIDまたはUniqueidentifierデータ型が表示され、文字列をGUIDに変換するとエラーが発生します。 –

+1

エラーは何ですか?あなたはおそらく式とエラーを投稿する必要があります。それはあなたがこの提案のように中括弧で囲むことを提案する価値があるかどうか私たちに教えてくれるでしょう:http://stackoverflow.com/questions/12356198/data-conversion-issue-in-ssis-package-text-to-guid/18876226 #18876226 –

答えて

1

SSISは、DT_GUIDデータフロー列のGUIDをネイティブサポートしています。
GUIDが 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'のような通常の形式の文字列である場合は、派生列と次の式でDT_GUIDに変換できます。

DerivedColumnName Expression       DataType 
GU_ID    (DT_GUID)("{" +StringGUID+ "}") Unique Identifier 

中かっこは必須です。

+0

ありがとうFerdipux! (DT_GUID)( "{" + @ [User :: BatchNum] + "}")が機能しました。私はそれらを中括弧で紛失していました。 –

関連する問題