Страница 1 из 1

удаление строк из таблицы Oracle

Добавлено: 2023-06-23 18:34:53
Spook1680
Всем, привет.
Подскажите пожалуйста где ошибка.
По выборке пытаюсь удалить 10000 строк. :st: :st: :st:

Код: Выделить всё

delete 
  from custemp c
 where c.date between to_date('01.01.2000', 'dd.mm.yyyy') and
       to_date('01.03.2010', 'dd.mm.yyyy')
       and rownum <= 10000
 order by c.date
Ошибка ORA-00933 не верное значение SQL - Предложения
DELETE Statement

If you’re getting the “ORA-00933 sql command not properly ended” on DELETE, then your query might look like this:

The error appears because the ORDER BY does not belong in a DELETE statement. The ORDER BY is only for ordering data returned by a SELECT statement, and serves no purpose in a DELETE statement.

So, change your query to remove the ORDER BY clause:

удаление строк из таблицы Oracle

Добавлено: 2023-06-23 22:08:58
Neus
😂😂😂
Надеюсь это учебная база?
Он же тебе написал в чем ты балбес и что надо сделать: "So, change your query to remove the ORDER BY clause"

удаление строк из таблицы Oracle

Добавлено: 2023-06-26 9:47:56
Spook1680
Neus писал(а):
2023-06-23 22:08:58
Он же тебе написал в чем ты балбес и что надо сделать: "So, change your query to remove the ORDER BY clause"
Да вы правы, это я исправил в первую очередь но ошибка не исчезла.
Пробовали разные варианты. Так как идей нет поэтому и обратился за советом.
Если у вас есть идеи напишите пожалуйста будет полезно и для остальных участников форума.
Error report -

SQL Error: ORA-00933: неверное завершение SQL-предложения

00933. 00000 - "SQL command not properly ended"

*Cause:

*Action:

удаление строк из таблицы Oracle

Добавлено: 2023-06-26 10:52:56
Neus
А может надо ; в конце ставить?

удаление строк из таблицы Oracle

Добавлено: 2023-06-26 12:08:48
Neus
Хотя мне кажется что ему не нравится "and rownum <= 10000".

удаление строк из таблицы Oracle

Добавлено: 2023-06-28 23:48:28
snorlov
Мне кажется у вас несколько неоднозначный where, date.с с одной датой может быть в нескольких строчках, вы попробуйте выполнить сначала
select date
from custemp с
where c.date between to_date('01.01.2000', 'dd.mm.yyyy') and
to_date('01.03.2010', 'dd.mm.yyyy')
and rownum <= 10000
order by c.date

Честно говоря я бы удалял по первичному ключу этой таблицы