SSISパッケージには、値を(パッケージパラメータを使用して)取り込み、スクリプト変数(読み取り専用変数)を介してスクリプトタスクに渡し、別のものスクリプトタスク内の値を読み込み、最後にその値を別のスクリプト変数(readwrite変数)に書き込みます。パッケージには、スクリプトタスク以外の他のSSISモジュールはありません。私は(SQL経由)パッケージの外側から、やりたい何SSISパッケージスクリプトタスクを実行するストアドプロシージャから変数値を取得する
は次のとおりです。
- 読み取りの値を取得します
- 私のパラメータの値を渡し、SSISパッケージを呼び出し、変数 /スクリプトタスクの実行の終わり
で決定された変数を書き、私はちょうど#2を把握することはできません、ステップ#1作業を持っています。
SSISパッケージが実行された後、package変数の値を取得するにはどうすればよいですか?それはアクセス可能ですか?それはどこに保存されていますか、SSISカタログのどこかに保存できますか? SSISDBに格納されているかどうか確認しようとしました。[カタログ] .executionsテーブルのどこかにありますが、そうではありません。
スクリプト変数を実行後にSQLから確認するには、そのスクリプト変数をパッケージパラメータに書き込む必要がありますか? EXEC [SSISDB]。[catalog] .get_parameter_valuesを使用して表示することもできますか、それともパッケージ実行前にパラメータ値を表示するだけですか?私はこれについて完全に間違った方法をしていますか?
ありがとうございます!
SSISはログを出力しません。これがSSIS 2012の場合は、SSISカタログの管理ビューを使用して変数値を取得することはおそらく可能ですが、お勧めしません。あなたがしていることは、まったく畳み込まれていません。実際に何をしようとしているのかを説明したい場合は、より簡単な方法があるかもしれません。だから、SSISとSQLのバージョン(2008年、2012年、2104年)を投稿してください。実際に何をしようとしていますか?スクリプトタスクが何をして、あなたはSQLからパッケージを呼び出して、SQLで結果を得ようとしていますか? –
確かです。それはSQL Sever 2012です。 私は基本的に誰かがVBで数年前に書いた小さなコードを持っています。ほとんどが非常にシンプルで、1つの入力と1つの出力がメインフレームのデータを準備しています。真ん中の「仕事」はかなり複雑です。私が働いている組織は、このVBコードをいくつかのSQLストアドプロシージャに統合しようとしていますが、SQLでロジックを書き直す時間を費やされたくありません。だから私のアプローチは、SQLからのスクリプトタスクでVBコードでパッケージを呼び出し、パッケージ実行からの出力変数を取得し、ストアドプロシージャでローリングを続けることです。 –
実際に私がCLR機能という別の名前で人生をしようとしているような音がします。 –