SQL0206 Столбец или глобальная переменная P1 не найдены при вставке в таблицу DB2 с SSIS - PullRequest
1 голос
/ 05 апреля 2019

Использование потока данных SSIS 2016 и вставка в таблицу DB2 с использованием новейшего соединителя IBM.Data.DB2.iSeries .net. Я могу предварительно просмотреть данные, и SSIS извлекает столбец из таблицы DB2 и знает тип.

Таблица была создана с использованием:

create table MyLib.ADOTEST(Col1 integer)

Вот таблица определения: Using Ezview to show columns

Свойства подключения ADO:

Я могу просмотреть данные в таблице (я добавил несколько записей вручную)

Мой поток данных прост, источник скрипта, который выводит 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;
}

Также обратите внимание, что это же соединение отлично работает для выбора данных из этой таблицы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...