Edited at

動的にInMemoryのテーブルを生成し、SQL Serverのテーブルにデータを追加する方法

More than 1 year has passed since last update.

テーブルを動的に生成して、DBに突っ込む方法。


SSISパッケージの作り方


  • スクリプトタスクを追加する。

  • ユーザー変数にObject型の変数を追加する。

  • スクリプトタスク内でRecordSetを生成し、ユーザー変数に代入

  • Foreach ループ コンテナー追加し、ADO型で用意したユーザー変数から値をとる。

  • ループ内にSQL実行タスクを追加し、DBにINSETする。

RecordSet内のカラムで、ADODB.DataTypeEnum.adVarChar型の変数にNULLが入っていると次のエラーが。

取り急ぎ空文字を入れて回避した。

変数 "User::XXXXX" に代入されている値の型 (DBNull) が、現在の変数の型 (String) と異なります。変数の型は実行中に変更できません。変数の型は厳密に一致している必要があります。ただし、オブジェクト型の変数は除きます。

コチラのサイトに、データフロータスクのソースにスクリプト コンポーネントを利用する方法が記載されているので参考にされたし。

https://www.timmitchell.net/post/2015/04/20/using-the-ssis-object-variable-as-a-data-flow-source/