Вводить в BD с Оракле Дата Acces в C#

Я стараюсь вводить в таблице Oracle с этим кодом, и меня бросает это сообщение ошибки:

"Стоимость не внутри ожидаемого интервала."

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

oc.Open();

OracleDataAdapter oda = new OracleDataAdapter();



OracleCommand cmd = new OracleCommand("INSERT INTO MYTABLE (ROW_ID, CREATED, STATUS) " +
   "VALUES (:pROW_ID, :pCREATED, :pSTATUS", oc);


OracleParameter ROW_ID = new OracleParameter("pROW_ID", OracleDbType.Varchar2, 15, "ROW_ID");
OracleParameter CREATED = new OracleParameter("pCREATED", OracleDbType.Date, 30, "CREATED");
OracleParameter STATUS = new OracleParameter("pASIGNADO", OracleDbType.Varchar2, 15, "STATUS");
ROW_ID.Value = BDOracleObtenerRowIDBackOffice();

ROW_ID.Value = = "146721030020001";
CREATED.Value = "SYSDATE";
STATUS.Value = "ON_HOLD";

cmd.Parameters.Add("pROW_ID", ROW_ID);  //<-- Here throws exception
cmd.Parameters.Add("pCREATED", CREATED);
cmd.Parameters.Add("pSTATUS", STATUS);

oda.InsertCommand = cmd;

Наметь: в Oracle. ManagedDataAccess. Client. OracleParameter. ctor (String parameterName, Object obj) в Oracle. ManagedDataAccess. Client. OracleParameterCollection. Add (String ямс, Object val) в TestCore. MyClass.functionInsert (String param) в C:\Users\user_01\source\repos\file.cs:línea 2945

0
задан 28.03.2019, 09:18
2 ответа

В конце концов estÃ: я следую, правильный c¦digo - следующий:

using (oc)
{
    oc.Open();


    OracleCommand cmd = new OracleCommand("INSERT INTO myTable (ROW_ID, CREATED, STATUS) " +
      "VALUES (:pROW_ID, SYSDATE, :pSTATUS)", oc);

    cmd.Parameters.Add("pROW_ID", OracleDbType.Varchar2, "146721030020001", ParameterDirection.Input);
    cmd.Parameters.Add("pSTATUS", OracleDbType.Varchar2, "ON_HOLD", ParameterDirection.Input);

    cmd.ExecuteNonQuery();

}
0
ответ дан 19.11.2019, 21:21

Я не думаю, что ты можешь показывать ему функцию в параметре, может быть, будь должен распределять дату используя

CREATED.Value = DateTime.Now;

Или в случае concrerio показывать это в query

string query = @"INSERT INTO MYTABLE (ROW_ID, CREATED, STATUS) 
                 VALUES (:pROW_ID, SYSDATE, :pSTATUS"
OracleCommand cmd = new OracleCommand(query, oc);

ты это распределяешь прямо, не посылая параметра

0
ответ дан 19.11.2019, 21:21
  • 1
    Ответ наверху funcionó посылая ' SYSDATE' в query, вводится дата сервера. В любом случае, не podí чтобы использовать DateTime. Now, так как дата сервера базы данных отличается и - та, в которой я нуждаюсь. – ZythGera 01.04.2019, 05:19
  • 2
    ok, но мой ответ также включал определять sysdate в query прямо – Leandro Tuttini 01.04.2019, 05:42
  • 3
    Ты имеешь razó n. Но, когда publiqué вопрос có я говорю, что он не прибывал даже ahí он не удавался, когда пробовал добавлять pará метр ROW_ID. Таким же образом, большое спасибо из-за твоей помощи!! – ZythGera 02.04.2019, 10:49

Теги

Похожие вопросы