Временное отключение sequence.

Hijack_
Дата: 23.03.2011 10:56:17
Добрый день. Хочу посоветоваться с гуру оракула. Можно ли сделать так:
1) Найти для таблицы с заданным именем есть ли для нее SEQUENCE.
2) Если да, то отключить этот SEQUENCE?
3) Записать в таблицу, например, 100000 записей
4) Если был найден SEQUENCE, то установить для SEQUENCE нужный last value
5) Если был найден SEQUENCE, то включить SEQUENCE

Хочу, чтобы эта процедура работала для произвольной таблицы, т.е. в наличии есть только имена таблиц.
При попытке поиска по форуму находил не совсем то, что надо + какие-то огромные куски кода. Неужели все так сложно?
-2-
Дата: 23.03.2011 10:58:54
Hijack_
Неужели все так сложно?
Использовать при вставке nextval.
Hijack_
Дата: 23.03.2011 11:02:19
-2-
Hijack_
Неужели все так сложно?
Использовать при вставке nextval.

У меня есть набор данных, для которых должны быть определенные id. не пойдет для них nextval.
-2-
Дата: 23.03.2011 11:05:46
Hijack_,

Поменяй сиквенсы в отрицательную или дробную сторону, заведомо большую величину, чтобы набор значений не пересекался.
Hijack_
Дата: 23.03.2011 11:18:52
-2-
Hijack_,

Поменяй сиквенсы в отрицательную или дробную сторону, заведомо большую величину, чтобы набор значений не пересекался.

А просто приостановить можно?
-2-
Дата: 23.03.2011 11:23:30
Hijack_
А просто приостановить можно?
Зачем? Сначала прокручивай сиквенс, потом вставляй данные. Непонятно только, что будет с уже имеющимися.
Viewer
Дата: 23.03.2011 11:38:39
Hijack_
1) Найти для таблицы с заданным именем есть ли для нее SEQUENCE.
2) Если да, то отключить этот SEQUENCE?

Наверное я что-то упустил или не понял вопрос автора, но при "левой" вставке данных, вызов sequence для таблицы может быть только из триггера таблицы - почему бы не отключать его (если содержимое позволяет)?
orawish
Дата: 23.03.2011 12:19:11
Hijack_
Добрый день. Хочу посоветоваться с гуру оракула. Можно ли сделать так:
1) Найти для таблицы с заданным именем есть ли для нее SEQUENCE.
..

такие эксперименты на малопонятной базе чреваты.
полным-полно решений, в которых одна последовательность используется
для 2/3/.. таблиц. В пределе - 1/2/~4 последовательности на ВСЕ таблицы.
С другой стороны - не чудо прикладные системы, где на одну и ту же таблицу генерируется новая последовательность каждый божий.. (год / квартал/ ..)
andreymx
Дата: 23.03.2011 13:10:29
orawish
не чудо прикладные системы, где на одну и ту же таблицу генерируется новая последовательность каждый божий.. (год / квартал/ ..)
и имя этой последовательности вычисляется динамически
Hijack_
Дата: 29.03.2011 18:51:37
Viewer
Hijack_
1) Найти для таблицы с заданным именем есть ли для нее SEQUENCE.
2) Если да, то отключить этот SEQUENCE?

Наверное я что-то упустил или не понял вопрос автора, но при "левой" вставке данных, вызов sequence для таблицы может быть только из триггера таблицы - почему бы не отключать его (если содержимое позволяет)?


Гениально! Спасибо. :) Отключить - вовсе не проблема, проблема в том, что мои познания в Oracle слишком мизерны.

Может кто-то подскажет как теперь индексы (некластеризированные) выключить (потом включить)? В гугле не нашел. При инсерте большого объема данных слишком тормозит процес.