Создать категориальную переменную для пакетной обработки в Oracle - PullRequest
0 голосов
/ 25 марта 2019

Я хочу создать в моей таблице новый столбец, который будет содержать значение 1 для первой 100 000 строк, 2 для следующих 100 000 строк и т. Д.
Это необходимо (или я так думаю), поскольку сервер, на котором находится Oracleвыполняется через 30 минут после отмены всех запросов, и я знаю, что с запросом, который я хочу выполнить, 100,00 записей находятся на безопасной стороне для обработки.
Я посмотрел в CREATE SEQUENCE, но это не то, что мне нужно
То, что я получил до сих пор:

ALTER TABLE mytable ADD (new_colNUMBER(3,0));  
UPDATE SET new_col = ...

Я также открыт для предложений о том, как решить эту проблему под другим углом.

РЕДАКТИРОВАТЬ Моя версия Oracle - 12c Enterprise.

1 Ответ

0 голосов
/ 25 марта 2019

Поскольку ваша версия DBMS равна 12c, вы можете добавить существующую последовательность как default с параметром ограничения not null, чтобы заполнить начальные значения и предоставить новые значения для предстоящих записей

alter table mytable 
add new_col integer 
default seq_odeme.nextval not null;
...