Я стараюсь вводить в таблице 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
В конце концов 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();
}
Я не думаю, что ты можешь показывать ему функцию в параметре, может быть, будь должен распределять дату используя
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);
ты это распределяешь прямо, не посылая параметра