Литерал не соответствует строке формата

Я пытаюсь вставить данные в таблицу oracle express 10 g.

Моя таблица содержит следующие столбцы:

Field Name                           Data Type

 ATDATE                               DATE
 ATTIME                               VARCHAR2(5)
 EMPNO                                NUMBER(8)
 INOUTIND                             CHAR(1)
 TRTNO                                CHAR(3)
 FLAG                                 NUMBER(2)
 STATUS                               CHAR(1)
 LUPDT                                DATE

Теперь, когда я пытаюсь вставить данные из своего приложения C # для Windows, я получаю сообщение об ошибке

ORA-01861: литерал не соответствует строке формата"

Итак, как я могу это решить?

Я пишу команду вставки в самой форме, используя OracleCommand.


OracleCommand cmd = new OracleCommand("INSERT INTO TMPATND values(:Atdate,:Attime,:Empno,:Inoutind,:Trtno,:Flag,:Status,:Lupdt)", con); 

:Atdate,:Attime etc are parameters. e.g: cmd.Parameters.AddWithValue(":Atdate","20120103");

В каком формате я должен передать дату? (дд/мм/гггг или ггггммдд или другие)


person Kishan Gajjar    schedule 04.01.2012    source источник
comment
OracleCommand cmd = new OracleCommand (INSERT INTO TMPATND values ​​(: Atdate,: Attime,: Empno,: Inoutind,: Trtno,: Flag,: Status,: Lupdt), con); :Atdate,:Attime и т.д. являются параметрами. например: cmd.Parameters.AddWithValue(:Atdate,20120103);   -  person Kishan Gajjar    schedule 04.01.2012


Ответы (1)


Если вы выполняете вставку с использованием параметров, вам не придется беспокоиться о формате строки.

Однако, если это не вариант, вы можете использовать:

myDate.ToString("dd-MMM-yy").ToUpper()
person competent_tech    schedule 04.01.2012