問題タブ [execute-sql-task]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
416 参照

excel - SQL タスクの実行を介して SSIS を Excel に接続する

SSIS でイライラする問題が発生しています。その背景は次のとおりです。

  1. 5 枚のシートを含む Excel ファイルがあります。最初のシートの名前は「Meta」です (残りの 4 枚のシートは、この問題には関係ありません)。
  2. メタ シート内に、6 列の「Tbl_Meta」というリスト オブジェクト/テーブルがあります。listobject にはヘッダーがありますが、1 行のデータしか保持されません (したがって、行 1 (A1:F1) のヘッダーと行 2 (A2:F2) のデータ)
  3. Tbl_meta で興味深いのは、セル B1 に GUID という列ヘッダーがある 2 番目の列です。この列ヘッダーの下のデータ行は、セル「B2」に文字列値を保持します (この例では、「XXX-YYY-ZZZ-1234」と仮定します)。
  4. この Excel ファイルからこの単一のセル値 (「B2」) を抽出し、SSIS 変数に保持する必要があります。最終的に、この SSIS 変数は、上記のポイント 3 で抽出された GUID 値を 3 つの SQL テーブルに設定するために使用されます。
  5. SSIS の Execute SQL タスクを使用してこれを実行しようとしています。そこで、新しいパッケージを起動して Excel 接続を構成し、Meta シートを保持する Excel ファイルへのパスをトレースし、さまざまな Google 検索が示すように Select * from [Meta$B2:B3] を SQL クエリに挿入しました。
  6. ポイント 5 の前に、SQL クエリの結果となる変数 (「出力」) を作成しました。この変数は、後で複数の SQL テーブルに値を挿入するために使用されます。「出力」変数はパッケージ レベルであり、データ型は文字列です
  7. 並行して、レコードセットを「単一行」に設定し、結果セットマッピングで、結果名「0」に対して「出力」をマッピングしました
  8. すべてが正常に実行されていると信じて、パッケージを起動しました。ただし、以下に貼り付けられたエラーが継続的に発生しています

以下は、応答を形成する際に因数分解される可能性があります

  1. ファイルの接続にエラーはなかったと思います
  2. メタ シートのセル B2 にデータがあることを確認 (および再確認) しました
  3. SQL クエリに渡されるパラメーター化されたものは何もありません。これは、SQL タスク ウィンドウの SQL クエリ フィールドに直接入力された単純な「Select * from [Meta$B2:B3]」操作です。
  4. 実行後にブレークポイントを挿入しましたが、ローカルウィンドウの「出力」変数に対して何もないことを確認してください

すべてを考慮すると、成人男性が 1 日のほとんどの部分でこれと格闘した後、涙を流す環境はほとんどないように思われます。

それでも………………

あなたの本当の苦しみのような-決して信じられない-小さな仕事が私をやり遂げるだろう

エラー: SQL 実行タスク、SQL 実行タスクで 0xC002F309: 変数 "出力" に値を代入中にエラーが発生しました: "単一行の結果セットが指定されましたが、行が返されませんでした。". タスクが失敗しました: SQL タスクの実行