Прежде всего, синтаксис:
delete from table1 partition(partition3)
Во-вторых, вы не должны ссылаться на имена разделов. Это создает зависимость от физического расположения таблицы. Это может быть разделено ежемесячно сегодня, но это может быть перераспределено на недели или дни когда-нибудь в будущем. Когда это произойдет, ваш код сломается. Oracle может вывести раздел просто из предиката в столбце разделения. Постарайтесь забыть о разбиении таблицы.
В-третьих, ваш подвыбор потерпит неудачу из-за того, что select *
сравнивается с ID.
Заявление, которое вы ищете, скорее всего, выглядит примерно так:
delete
from table1
where group_code = 'pilot'
and partition_column = 'some value';