使用SSIS插入DB2表中时,找不到SQL0206列或全局变量P1

时间:2019-04-05 16:52:07

标签: ssis db2 ado.net ibm-midrange ssis-2016

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

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

create table MyLib.ADOTEST(Col1 integer)

这是表def: 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;
}

还请注意,对于从此表中选择数据,此连接也可以正常工作。

0 个答案:

没有答案