Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.snto-msu.net/showflat.php?Number=8804806&src=arc&showlite=
Дата изменения: Unknown
Дата индексирования: Wed Apr 13 07:06:54 2016
Кодировка: Windows-1251
[clesed] ORACLE:>> ALTER SEQUENCE ? - Public forum of MSU united student networks
Root | Google | Yandex | Mail.ru | Kommersant | Afisha | LAN Support
  
Technical >> Development (Archive)

Страницы: 1
YouJu
KOLLIAK

Рег.: 24.12.2003
Сообщений: 3102
Из: Королев
Рейтинг: 2678
  [clesed] ORACLE:>> ALTER SEQUENCE ?
      23.07.2009 16:00
 

Всем привет.

Появилась необходимость модифицировать текущее значение сиквенса. В связи с этим вознокло 2 вопроса, мб кто знает?

1) возможно ли получить текущее значение сиквенса не применяя предварительно к нему nextval ? (значения cache_size<>'1' и increment_by='1')

2) ну и собственно какой командой модифицируется текущее значение сиквенса? модифицируется ли? ( чет поиск не помог )

Спасибо.




Редактировал YouJu (24.07.2009 18:45)
YouJu
KOLLIAK

Рег.: 24.12.2003
Сообщений: 3102
Из: Королев
Рейтинг: 2678
  Re: ORACLE:>> ALTER SEQUENCE ? [re: YouJu]
      23.07.2009 16:17
 

Есть 2 сиквенса в разных базах (Прод и Тест). Каждый живет своей жизнью. Время от времени необходимо актуализировать тестовую базу. Со всеми остальными объектами все ясно, все обновляется автоматом, а вот с сиквенсами засада, пока это ручной труд... но очень хочется автоматизировать...
1) в принципе вместо курр_вал можно брать user_sequences.last_number, он по крайней мере уж точно не меньше, что уже гут.
2) а вот с автоматической модификацией пока засада... пересоздание сиквенсов не катит, т.к. слетят все гранты.


Burjui
Pooh-Bah

Рег.: 26.11.2005
Сообщений: 2416
Рейтинг: 3784
  Re: ORACLE:>> ALTER SEQUENCE ? [re: YouJu]
      23.07.2009 16:38
3

1. select sequence.curval from dual. Если из последовательности уже выбирали после старта базы.

2. Обычно делают так: если нужно значение m, а сейчас n. То делают:
alter sequence seq increment by m-n
/
select seq.nextval from dual
/
alter sequence seq increment by oldvalue
/

YouJu
KOLLIAK

Рег.: 24.12.2003
Сообщений: 3102
Из: Королев
Рейтинг: 2678
  Re: ORACLE:>> ALTER SEQUENCE ? [re: Burjui]
      23.07.2009 16:55
 

Спасибо! =)
В ответ на:


1. select sequence.curval from dual. Если из последовательности уже выбирали после старта базы.




со стартом базы этот селект никак не связан.. он отработает только в том случае, если с сиквенсом "работали" в рамках текущей сессии.

В ответ на:


2. Обычно делают так: если нужно значение m, а сейчас n. То делают:
alter sequence seq increment by m-n
/
select seq.nextval from dual
/
alter sequence seq increment by oldvalue
/




а вот это круто.. чеж я сам не догадался-то?


PS
пока вместо curr_val c user_sequences.last_number поработаю.


YouJu
KOLLIAK

Рег.: 24.12.2003
Сообщений: 3102
Из: Королев
Рейтинг: 2678
  Re: ORACLE:>> ALTER SEQUENCE ? [re: YouJu]
      24.07.2009 14:50
1

кто-то не согласен с тем, что select sequence.curval from dual отработает ТОЛЬКО В ТОМ СЛУЧАЕ, если сиквенс дергали в рамка текущей сессии и выругается если не дергали?



Butcher
Carpal Tunnel

Рег.: 04.09.2002
Сообщений: 3504
Рейтинг: -30
  Re: ORACLE:>> ALTER SEQUENCE ? [re: YouJu]
      25.07.2009 09:58
-3

сиквенсы лочаться на уровне защелок, с транзакциями и сессиями не связаны, для всех сессий select sequence.curval from dual - даст одно и тоже значение.

Burjui
Pooh-Bah

Рег.: 26.11.2005
Сообщений: 2416
Рейтинг: 3784
  Re: ORACLE:>> ALTER SEQUENCE ? [re: Butcher]
      26.07.2009 14:36
1

YouJu имел ввиду вот это:

 
В ответ на:

To use or refer to the current sequence value of your session, reference seq_name.CURRVAL. CURRVAL can only be used if seq_name.NEXTVAL has been referenced in the current user session (in the current or a previous transaction).




что ему не подходит.

To YouJu: кстати а почему не подходит? Ну создашь ты следующее значение даже если оно вдруг будет больше требуемого нигде в приложении оно у тебя не использовалось, а инкремент может быть и отрицательным, т.ч. можно легко вернуть старое.

Страницы: 1

Technical >> Development (Archive)

Дополнительная информация
0 зарегистрированных и 0 анонимных пользователей просматривают этот форум.

Модераторы:  DarkGray 

Печать темы

Права
      Вы можете создавать новые темы
      Вы можете отвечать на сообщения
      HTML отключен
      UBBCode включен

Рейтинг:
Просмотров темы:

Переход в