#ssis #db2 #ado.net #ibm-midrange #ssis-2016
#ssis #db2 #ado.net #ibm-средний уровень #ssis-2016
Вопрос:
Использование потока данных SSIS 2016 и вставка в таблицу DB2 с использованием последней версии IBM.Data.DB2.iSeries .net connector. Я могу просмотреть данные, и SSIS извлекает столбец из таблицы DB2 и знает тип.
Таблица была создана с использованием:
create table MyLib.ADOTEST(Col1 integer)
Я могу просмотреть данные в таблице (я вручную добавил некоторые записи)
Мой поток данных прост, источник сценария, который выводит 1 строку с 1 столбцом INT
public override void CreateNewOutputRows()
{
Output0Buffer.AddRow();
Output0Buffer.test = 100;
}
Добавлен msgbox для отображения значения и типа, которые находятся в потоке данных:
Сообщение об ошибке AS400 в моем сеансе:
Это та же ошибка, которую я получаю в SSIS:
Я понятия не имею, как двигаться дальше, я перепробовал все, что мог придумать. Рад включить любую другую информацию. Я чувствую, что есть простое исправление, мне просто нужно предложить что-то еще, чтобы посмотреть, что угодно, пожалуйста.
Это работает, когда я запускаю вставку из задачи сценария, используя следующий код:
using IBM.Data.DB2.iSeries;
public void Main()
{
// define the conn
iDB2Connection conn = new iDB2Connection("DataSource=MYAS400SERVER;UserID=MYUSERID; Password=myp@ssw0rd;Database=DB2RDBS;DefaultIsolationLevel=Chaos;Enlist=False;");
// create a cmd
iDB2Command cmd = conn.CreateCommand();
// set command type
cmd.CommandType = CommandType.Text;
// set command text
cmd.CommandText = "insert into mylibrary.adotest values(88)";
// open db2 connection
conn.Open();
// run the insert
cmd.ExecuteNonQuery();
Dts.TaskResult = (int)ScriptResults.Success;
}
Также обратите внимание, что это же соединение отлично работает для выбора данных из этой таблицы.
Комментарии:
1. Какой сценарий в этом компоненте сценария? Вы проверили, соответствует ли результат вашим ожиданиям?
2. Скрипт выводит одну запись с 1 столбцом, целочисленного типа, я получаю ту же ошибку независимо от источника.
3. Я обновил сообщение, чтобы показать столбец вывода скрипта и код скрипта
4. Я не так хорошо знаком со стороной SSIS, но есть ли у нее свойство переименования столбца? Похоже, что он передает P1 в инструкцию insert и не может найти столбец на стороне IBM, вместо этого он должен быть COL1. Все ли выходные данные SSIS передаются на P1, P2 и т.д.?
5. @MichaelS. Я проверил все свойства, о которых я могу думать. Отображение показывает COL1, внешние столбцы показывают COL1, я понятия не имею, как даже определить, какой оператор на самом деле отправляется.