2016-08-06 13 views
1

私はこのスレッドを読む:SSIS : Dynamically passing Table namesこれは私が達成しようとしているものです。私は文字列変数を作成する点に着いた。データフロータスク[OLE DBソース[で0xC0202009 エラー:HRESULTから動的にテーブル名を渡す - 変数からSQLコマンドを使用

例外:私は変数からのSQLコマンドを使用することを選択したとき

はしかし、OLEDBソースエディタで、プレビューは、次のエラープロンプトを与えました37]]:SSISエラーコードDTS_E_OLEDBERROR。 OLE DBエラーが発生しました。エラーコード:0x80040E14。 OLE DBレコードが利用可能です。ソース: "Microsoft SQL Serverネイティブクライアント11.0" Hresult:0x80040E14説明: "ステートメントを準備できませんでした。" OLE DBレコードが利用可能です。ソース: "Microsoft SQL Serverネイティブクライアント11.0" Hresult:0x80040E14説明: "テーブル変数" @ "を宣言しなければなりません。"

ここで問題になる可能性のあることについてお手伝いをしてください。

以下は、私が設定したコンポーネントです。

SQLのTASK EXECUTE:SYS.TABLES名 結果セットによって '%$会社Information'Orderのような名前から

SELECT名:変数名=ユーザー:: IndivTableName。結果名= 0;各ループコンテナのデータ・タイプ=オブジェクト

列挙:のForeach ADO列挙子

ADOオブジェクトソース変数:ユーザー:: IndivTableName

列挙モード:最初に行テーブル

(これが必要ですか?)変数のマッピング:Variable = User :: IndivTable;インデックス= 0;データタイプ=

文字列変数オブジェクト:

変数名:ユーザー:: CompanyInformation

式: は、「[名前]を選択し、[アドレス]、[アドレス2]、[都市]、[電話なし_]、[ファックスNO_ない]、 [VAT登録番号_]、[登録なし_] "+ "@ [ユーザー:: IndivTableName]"

評価値から、[業種]:[選択し 名前]、[住所]、[住所@ [ユーザー:: IndivTableName]

データソースエディタからの2]、[都市ません]、[電話なし_]いいえ、[ファックスNO_]、 [VAT登録_]、[登録_]、[業種] :

データアクセスモード:

変数変数名からSQLコマンド:ユーザー:: CompanyInformation

変数値: [名前]を選択し、[アドレス]、[アドレス2]、[都市]、[電話番号なし]、[fax no_]、 [VAT登録番号_]、[登録番号_]、[業種] @から[ユーザーは:: IndivTableName] のForEach ADO列挙子

答えて

0

変数マッピングは、あなたのマッピングがOKです、必須です。 User :: IndivTable変数のデータ型をstringに変更してください。

変更変数 'ユーザー:: CompanyInformation'

"select [name],[address],[address 2],[city],[phone no_],[fax no_], 
[VAT Registration no_],[registration no_],[business type] from " + [User::IndivTable] 

変数ユーザーに表現:: IndivTableNameは、DataTableのが含まれているので、式で使用することはできません。それを反復して、最初の列をのUser :: IndivTable変数に格納します。

+0

こんにちは、User :: IndivTableのデータ型をStringに変更し、User :: CompanyInformation式を推奨通りに更新しましたが、同じエラーが表示されます。このIndivTable変数に対して値または式を設定する必要はありますか? –

+0

@JamieLim、DataFlowにブレークポイントを設定し、* User :: CompanyInformation *の値をチェックしてここに配置できますか? – Ferdipux

+0

こんにちは@Ferdipux、私はこれを整理することができました。 User :: IndivTableはDatatype = Stringで設定され、Value = SQL実行タスクの最初の結果です。 User :: CompanyInformationに使用した最後の表現は、「SELECT [名前]、[住所]、[住所2]、[市]、[電話番号]、[fax no_]、 [VAT登録番号_]、[登録いいえ]、[ビジネスタイプ] FROM "+" ["+ @ IndivTable +"] " –

関連する問題