これは私が一日中見た中で最も面白いものです。SSIS Execute SQL Task Outパラメータ-1が正しく表示されない
SSIS 2005では、2つのINパラメータと1つのOUTPUTパラメータを使用するSQL 2005ストアドプロシージャを実行するSQL実行タスクがあります。 INパラメータは静的なものなので、コマンド文字列にハードコードされています。 OUTPUTパラメータはInt32型のパッケージ変数に格納されます(ただし、パラメータマッピングページのSQL実行タスクではデータ型がLONGであることがわかります)。
私はSQLタスクを実行し、出力パラメータが値> 0(2のような)を返すとき、変数には2が設定されます。SQLタスクを実行し、出力パラメータが-1を返すとき、 66682316のような値が入力されています。私はSSMSでprocを実行できます。値に-1があらかじめ設定されている場合は、-1が返されます。
DECLARE @out int
SET @out = -1
EXECUTE MyProc 'param1', 'param2', @out OUTPUT
SELECT @out -- returns -1
-1の代わりにこの値が返される理由は何ですか?私の変数はUI32でなくInt32だと確信しています。