Проблема с преобразованием даты и времени в формат Oracle в запросе WebApi - сообщение «произошла ошибка» - PullRequest
0 голосов
/ 09 октября 2018

Из проекта webApi2 я добавляю строки в Oracle Db.При тестировании этого метода на моей машине для разработки все идет хорошо и создается новая запись.Развернув его на сервере и протестировав там, я заметил, что запись не добавлена, и я получаю сообщение о том, что "произошла ошибка" ..

[HttpPost]
    [Route("CreateTpmEntry")]
    [ResponseType(typeof(Process))]
    public IHttpActionResult CreateTpmEntry(Process p)
    {
        string ConStr = ConfigurationManager.ConnectionStrings["OracleConnectionString"].ConnectionString;
        var Con = new Oracle.ManagedDataAccess.Client.OracleConnection(ConStr);

        if (Con.State == System.Data.ConnectionState.Closed)
        {
            Con.Open();
        }


        string iStr = @"INSERT INTO ifc.qmes_tpm_repairs_imp (order_nr, manager_nr, start_date, closemean_nr, end_date, initial_diagnosis, repair_actions, STATUS) 
                        VALUES ('{0}', '{1}', TO_DATE('{2}', 'YYYY-MM-DD HH24:MI:SS', 'NLS_DATE_LANGUAGE = POLISH'), '{3}', TO_DATE('{4}', 'YYYY-MM-DD HH24:MI:SS', 'NLS_DATE_LANGUAGE = POLISH'), '{5}', '{6}' ,'{7}')";

        iStr = string.Format(iStr, p.Number, p.Manager, p.StartDate, p.FinishedBy, p.EndDate, p.InitialDiagnosis, p.RepairActions, p.Status);

        var Command = new Oracle.ManagedDataAccess.Client.OracleCommand(iStr, Con);

        Command.ExecuteNonQuery();

        return Ok();

    }

Я проверил это больше и обнаружил, что всеидет хорошо, когда я беру end_date и start_date из iStr, поэтому проблема должна быть связана с форматом даты.Я думал, что функция TO_DATE заботится о том, чтобы дата была в соответствующем формате, но, видимо, этого недостаточно.Вот примерный iStr:

    INSERT INTO ifc.qmes_tpm_repairs_imp (order_nr, manager_nr, start_date, closemean_nr, end_date, initial_diagnosis, repair_actions, STATUS) 
VALUES ('A/2018/152170', 'MSMITH', TO_DATE('2018-10-08 14:48:13', 'YYYY-MM-DD HH24:MI:SS', 'NLS_DATE_LANGUAGE = POLISH'), 'MSMITH', TO_DATE('2018-10-08 14:54:13', 'YYYY-MM-DD HH24:MI:SS', 'NLS_DATE_LANGUAGE = POLISH'), 'Machine not working', 'Call service for control panel' ,'AC')

Я проверил таблицы NLS_DATABASE_PARAMETERS как на компьютере разработчика, так и на компьютере развертывания, но все параметры выглядят одинаково ..

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