私は単純な作業であるべきものを持っている - SQL実行タスクSQLクエリ結果の数値をデータ型Doubleのパッケージ変数に割り当てるにはどうすればよいですか?
SELECT MainID FROM TableA WHERE TableA_ID = 1`
(これは一列と1行が返されます。)からResultSetを使用して、ユーザー変数を移入します。
MainIDは現在、データベースにユーザー定義データ型として格納されています。値はXXXX.Yの形式(8008.1など)で保存されます。
UserVariableをStringデータ型に変更すると、ResultSetをSTRING/NUMERIC/FLOATにキャストまたは変換することに問題なく値を割り当てることができます。
SELECT CAST(MainID as NUMERIC(9,1)) as 'MainID' FROM TableA WHERE TableA_ID = 1;
SELECT CAST(MainID as FLOAT) as 'MainID' FROM TableA WHERE TableA_ID = 1;
SELECT CAST(MainID as VARCHAR(10)) as 'MainID' FROM TableA WHERE TableA_ID = 1;
または
SELECT CONVERT(NUMERIC(9,1), MainID) as 'MainID' FROM TableA WHERE TableA_ID = 1;
SELECT CONVERT(FLOAT, MainID) as 'MainID' FROM TableA WHERE TableA_ID = 1;
SELECT CONVERT(VARCHAR(10), MainID) as 'MainID' FROM TableA WHERE TableA_ID = 1;
ユーザー変数データ型がDOUBLEの場合しかし、私は値を割り当てることはできません。私は、次のエラーメッセージが表示されます。
[Execute SQL Task] Error: An error occurred while assigning a value to variable "dUserVariable": "The type of the value being assigned to variable "User::dUserVariable" differs from the current variable type. Variables may not change type during execution. Variable types are strict, except for variables of type Object. ".
私はSSISにかなり新しいですので、私が通過するには、この変換を取得する方法に困惑ビットです。
アイデア?
ユーザー変数は、Webサービス・リクエストのパラメータとしてサードパーティのコンポーネントが必要とされます。それはそれがDOUBLEデータ型であることを期待しています。私は、Webサーバーが正しく呼び出されるように変数を更新する必要があります。 – Rob
WebサービスWebサービスを呼び出すタスク。クエリからResultSetにUserVariableを割り当てようとすると、SQL実行タスクでエラーが受信されます。 – Rob