2

一時テーブルを作成する SQL タスクと、その一時テーブルから選択するデータ フロー タスクがあります。すべてがうまく機能しますが、SQL タスクにパラメーターを追加すると、データ フロー タスクが失敗し、一時テーブルが作成されませんでした。パラメータ値のハードコーディングは機能します。

同じ接続オプションを保持するオプションが true で、メタデータが設定され、Int32 変数が oledb の名前が 0 と 1、サイズが -1 である限りマップされます。

私はそれをより小さなスケールで複製することに成功しました

SQL タスク

DECLARE @Yesterday DATETIME
DECLARE @Today DATETIME

DECLARE @StartDisposition INT = ?
DECLARE @EndDisposition INT = ?

SET @Yesterday = CONVERT (date, DATEADD(day, @StartDisposition, GETDATE()))
SET @Today = CONVERT (date, DATEADD(day, @EndDisposition, GETDATE()))

SELECT @StartDisposition AS A, @Yesterday AS B, @Today AS C INTO #TempT

データ フロー タスク、またはこの目的のための単なる SQL タスク

SELECT * FROM #TempT

そのため、パラメーターを使用した何かが一時テーブルの作成を台無しにしているようです。

ありがとう

クエリに文字列変数式を使用するとうまくいきました。これがどのように進んだかです。

"DECLARE @Yesterday DATETIME
DECLARE @Today DATETIME

DECLARE @StartDisposition INT = " + (DT_STR, 20, 1252)@[User::StartDisposition] + "
DECLARE @EndDisposition INT =  " + (DT_STR, 20, 1252)@[User::EndDisposition] + "

SET @Yesterday = CONVERT (date, DATEADD(day, @StartDisposition, GETDATE()))
SET @Today = CONVERT (date, DATEADD(day, @EndDisposition, GETDATE()))

SELECT @StartDisposition AS A, @Yesterday AS B, @Today AS C INTO #TempT"

次に、SQL タスクで SQLSourceType を Variable に変更します。

助けてくれてありがとう。

4

1 に答える 1

0

時々変ですが、グローバル一時テーブル ( ##TempT) を作成すれば解決できます。

于 2014-12-23T14:02:08.483 に答える