Синтаксис даты выпуска в SQL

Я продолжаю получать это сообщение об ошибке при попытке изменить тип данных моего столбца:

alter table x modify column order_date date NOT NULL;

ОШИБКА в строке 1

ORA-00905 отсутствует ключевое слово

Я не уверен, где я иду не так, как я знаю, что есть много типов дат в SQL?

Большое спасибо

1 ответ

Решение

Предложение MODIFY не принимает COLUMN в качестве ключевого слова. Это будет работать:

alter table x modify order_date date NOT NULL;

Синтаксис задокументирован в справочнике по Oracle SQL. Узнайте больше

Нам нужно только включить COLUMN с командами, которые имеют несколько различных возможностей. Например, с помощью команды ALTER TABLE ... DROP, потому что мы можем удалить столбцы, ограничения или разделы....

alter table x drop column order_date ;

"когда я попытался ввести NOT NULL, он сказал, что таблица должна быть пустой"

Вы должны иметь возможность применить ограничение NOT NULL, при условии, что все строки в таблице имеют значение в order_date колонка. Полученное сообщение об ошибке довольно ясно:

ORA-01758 table must be empty to add mandatory (NOT NULL) column

Это означает, что в вашем столбце есть несколько строк без значений. Итак, вам нужно обновить таблицу и заполнить эти строки некоторым значением; то, что вы будете использовать по умолчанию, зависит от ваших бизнес-правил.

Другие вопросы по тегам