私はこのスレッドを読む: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列挙子で
こんにちは、User :: IndivTableのデータ型をStringに変更し、User :: CompanyInformation式を推奨通りに更新しましたが、同じエラーが表示されます。このIndivTable変数に対して値または式を設定する必要はありますか? –
@JamieLim、DataFlowにブレークポイントを設定し、* User :: CompanyInformation *の値をチェックしてここに配置できますか? – Ferdipux
こんにちは@Ferdipux、私はこれを整理することができました。 User :: IndivTableはDatatype = Stringで設定され、Value = SQL実行タスクの最初の結果です。 User :: CompanyInformationに使用した最後の表現は、「SELECT [名前]、[住所]、[住所2]、[市]、[電話番号]、[fax no_]、 [VAT登録番号_]、[登録いいえ]、[ビジネスタイプ] FROM "+" ["+ @ IndivTable +"] " –