アプリ版:「スタンプのみでお礼する」機能のリリースについて

みなさま初めまして。

SSISの変数利用について教えて頂きたく、何卒宜しく願いいたします。

現在、SSISの変数に入った値をSQL実行タスクで実行(正確には、変数の値を含むレコードを削除)したく、他スレッドを参考にし、下記設定を行おうとしたのですが、エラーが出力され登録が出来ません。。

SQL実行タスク
->左メニューより、「式」を選択
->Expressionsにて、SqlStatementSourceを選択
->下記式を記述
-----------------------------
DELETE FROM [tblTesttable]
WHERE TIMEID = @[User::valtime]
-----------------------------
行いたいことは、テーブル(tblTesttable)から、項目TIMEIDの値がユーザ変数(valtime)と同じレコードを削除するという内容です。
上記式を記述し、「式の評価」を行うと、下記エラーが出力されてしまいます。。。
------------------------------------------------------
式"DELETE FROM [tblTesttable]
WHERE TIMEID = @[User::valtime]"を解析できませんでした。この式には無効なトークン、不完全なトークン、または無効な要素が含まれている可能性があります。また適切な形式でないか、かっこなどの必要な要素の一部が不足している可能性があります。
-------------------------------------------------------

SSISについて初心者であり、ネットや本でいろいろ探しているのですがなかなかうまくいかず。。。
大変お手数ですが、どなたか教えて頂けますと大変に助かります。
どうか宜しくお願い致します。

A 回答 (1件)

SQL実行タスクに変数を割り当てる場合は、


・Statementには
「DELETE FROM [tblTesttable] WHERE TIMEID=?」と指定します。
・パラメータマッピングを指定します
変数名:User::valtimeを選択
方向:Input
データ型:DATE
パラメータ名:0 (たぶん、ここがミソ)
パラメータサイズ:-1 (デフォルトのまま。SP2が当たってないとないかも)

パラメータが複数ある場合は、パラメータ名を0,1,2..という風に増やします。
そうすると、パラメータが「?」に順番に割り当てられていきます。
    • good
    • 0
この回答へのお礼

jamshid6様

大変にお忙しい中、早速の回答頂き大変感謝致します!!!!!
アドバイス頂いた内容に従って設定したところ、うまく実行されました。
おっしゃるとおりパラメータマッピングの箇所がポイントでした。

本当にありがとうございました!

お礼日時:2009/06/24 22:27

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す