2013-04-07 1 views
-1

я получаю сообщение об ошибке при попытке изменить тип данных моей колонки:дата выдачи синтаксис SQL

alter table x modify column order_date date NOT NULL; 

Ошибка в строке 1

ORA-00905 недостающего ключевого слова

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

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

ответ

3

MODIFY на пункт не принимает КОЛОННА в качестве ключевого слова. Это будет работать:

alter table x modify order_date date NOT NULL; 

Синтаксис документирован в ссылке Oracle SQL. Find out more.

Нам нужно включить 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 

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

+0

Отличный ответ спасибо много, но когда я попытался ввести NOT NULL, он сказал, что таблица должна быть пустой, поэтому укажите параметр NOT NULL, который не имеет смысла, поскольку это поле не должно влиять на остальных? –

+0

Таблица ORA-01758 должна быть пустой, чтобы добавить обязательную (NOT NULL) колонку –

 Смежные вопросы

  • Нет связанных вопросов^_^