SQL0104令牌Col_Name无效

时间:2019-01-17 14:57:48

标签: c# db2

我正在尝试使用以下查询更新TableA,这给我一个错误 “ IBM.Data.DB2.iSeries.iDB2SQLErrorException:'SQL0104令牌CNUM无效。有效令牌:在具有偏移量限制顺序的偏移量位置使用跳过等待”。虽然我能够使用DB2中的相同查询来更新数据库。

using (IDbCommand command = this.connection.CreateCommand())
{
    command.CommandText = string.Format(
        @"UPDATE {0}.TableA
        SET
        STS = @Status,
        USR = @User
        WHERE 
        CNUM = @CNum", CoreServer.CoreCollection);

    IDbDataParameter statusParam = CoreServer.CreateParameter(command, "@Status", string.Empty, 3);
    IDbDataParameter UserParam = CoreServer.CreateParameter(command, "@User", string.Empty, 50);
    IDbDataParameter cNumberParam = CoreServer.CreateParameter(command, "@CNum", string.Empty, 30);

    statusParam.Value = CoreServer.ConvertToDatabase(input.Status);
    UserParam.Value = input.User == null ? null : input.User.Trim();
    cNumberParam.Value = input.CNumber.Trim();

    iDB2Command db2Command = (iDB2Command)command;
    db2Command.Transaction = (iDB2Transaction)transaction;
    db2Command.ExecuteNonQuery();
}

其他插入和选择查询在同一张表上正常工作

1 个答案:

答案 0 :(得分:0)

我在复制/粘贴存在某种不可打印字符的sql时遇到了此错误。

为缩小问题范围,我:

  • 用简单的内容替换了sql ...例如“ select * from myTable”
  • 删除了尽可能多的查询文本
  • 逐步放回零件,并在每个步骤后进行测试
  • 将sql放入十六进制文本编辑器(或常规编辑器,并替换为 带*的空格,然后寻找看起来像一个 空间)