Ответ 1
Это основано на предположении, что вы получаете ошибку о формате даты, например, недопустимое значение месяца или нечисловой символ при ожидаемом числовом значении.
Даты, хранящиеся в базе данных, не имеют форматов. Когда вы запрашиваете дату, когда ваш клиент форматирует дату показа, в качестве 4/16/2011
. Обычно такой же формат даты используется для выбора и обновления дат, но в этом случае они кажутся разными - поэтому ваш клиент, очевидно, делает что-то более сложное, например, SQL * Plus.
При попытке обновить его, используя модель формата даты . Из-за того, как он отображается, вы предполагаете, что это MM/DD/YYYY
, но, похоже, это не так. Вы можете узнать, что это такое, но лучше не полагаться на модели по умолчанию или на любые модели неявного формата.
Независимо от того, является ли это проблемой или нет, вы всегда должны указывать модель даты:
UPDATE PASOFDATE SET ASOFDATE = TO_DATE('11/21/2012', 'MM/DD/YYYY');
Поскольку вы не указываете компонент времени - все столбцы Oracle DATE
включают время, даже если оно полночь, вы также можете использовать литерал даты:
UPDATE PASOFDATE SET ASOFDATE = DATE '2012-11-21';
Возможно, вам стоит проверить, что текущее значение не включает время, хотя имя столбца не указывает на то, что оно не работает.