SQL0104 токен Col_Name недействителен - PullRequest
0 голосов
/ 17 января 2019

Я пытаюсь обновить 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 голосов
/ 01 июня 2019

Я получил эту ошибку, когда сделал копию / вставку sql, где присутствовал какой-то непечатный символ.

Чтобы сузить проблему I:

  • заменил sql чем-то простым ... вроде "select * from myTable "
  • удалено как можно больше текста запроса
  • положить кусочки постепенно и проверять после каждого шага
  • поместите sql в шестнадцатеричный текстовый редактор (или обычный редактор и замените пробелы с *, а затем искал что-то, что выглядело как пространство)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...