1

使用 SSIS 2016 数据流并使用最新的 IBM.Data.DB2.iSeries .net 连接器插入 DB2 表。我能够预览数据,SSIS 从 DB2 表中抓取列并知道类型。

表是使用以下方法创建的:

create table MyLib.ADOTEST(Col1 integer)

这是表定义: 使用 Ezview 显示列

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;
}

另请注意,同样的连接适用于从该表中选择数据。

4

0 回答 0