#oracle #oracle12c
#Oracle #oracle12c
Вопрос:
Я хочу создать новый столбец в моей таблице, который содержит значение 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. Вам определенно следует выяснить, почему ваше пакетное задание прерывается, и исправить это, а не добавлять бессмысленный столбец в вашу таблицу.
Ответ №1:
Поскольку ваша DBMS
версия является 12c
, вы можете добавить существующую последовательность как default
с not null
опцией ограничения, чтобы заполнить начальные значения и предоставить новые значения для предстоящих записей
alter table mytable
add new_col integer
default seq_odeme.nextval not null;