Каждый раз, когда запись обновляется, SYSDATE будет иметь другое значение. Поэтому ограничение будет проверять по-разному каждый раз. По этой причине Oracle не разрешает sysdate в ограничении.
Возможно, вы сможете решить свою проблему с помощью триггера, который проверяет, действительно ли CloseDate изменил и вызвал исключение, когда новое значение не находится в пределах диапазона.
И: Что такое (StartDate > (CloseDate + (SYSDATE + 730))))
? Вы не можете добавлять даты.
И: StartDate
должно быть после CloseDate
? Это не странно?