powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Поиск sequence по БД
9 сообщений из 9, страница 1 из 1
Поиск sequence по БД
    #39558887
Reflector
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Появилась необходимость отследить последовательность, которая используется при вставке в таблицу БД, когда идет определенное действие в интерфейсе(установка флажка). Простейшая таблица с 2-мя полями, в одном из которых ID, как раз генерится.
Есть ли какой-то способ отследить sequence, которая используется при этом?
По
Код: plsql
1.
select  * from dba_sequences a where a.LAST_NUMBER=147212

не работает, скорее всего эта последовательность лежит в пакете(или я не прав). Но в данной таблице ее нет. Тоже бы хотелось узнать, из-за чего.
Пробовал искать по all_source и фильтровать по last_ddl_time, но там не увидел ничего кроме таблиц(что логично).
Заранее спасибо за инфу
...
Рейтинг: 0 / 0
Поиск sequence по БД
    #39558891
tru55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. последовательность не может быть в пакете
2. последовательность "дергается" либо в клиентской программе, производящей вставку, либо в триггере
3. любой SQL можно отследить, включив трассировку сессии
...
Рейтинг: 0 / 0
Поиск sequence по БД
    #39558899
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Reflector,

Код: plsql
1.
2.
3.
4.
select * 
from v$open_cursor c 
where c.sid=:SID_нужной_сессии 
and upper(sql_text) like '%NEXTVAL%';
...
Рейтинг: 0 / 0
Поиск sequence по БД
    #39558909
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Reflectorselect * from dba_sequences a where a.LAST_NUMBER=147212

если без трассы
select * from dba_sequences a where a.LAST_NUMBER between 147212 and 147212+CACHE_SIZE+??? еще немного

dba_sequences учитывает cache

ps
можно попробовать
... LAST_NUMBER like '147___'

.....
stax
...
Рейтинг: 0 / 0
Поиск sequence по БД
    #39558913
цацхе 10
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plsql
1.
select  * from dba_sequences a where a.LAST_NUMBER=147212

Вероятность попасть на конкретный номер зависит от атрибутов сиквенса, для некоторых значений равна нулю, а для некоторых меньше единицы. Отсортируй список и ткни пальцем в близкие значения.
...
Рейтинг: 0 / 0
Поиск sequence по БД
    #39558936
Reflector
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stax,
Спасибо, помогло. Просто есть последовательность, очень похожая. Но ее last_number=147321, а БД на данный момент вставляется запись id=147217.
Правильно ли я понимаю, что есть определенный "запас" для интерфейса? И будет ли правильным, если я, имитируя этот запрос буду вставлять запись
Код: plsql
1.
select sequence.nextval from dual


?
Ведь он вставит значение не из кэша, верно?
...
Рейтинг: 0 / 0
Поиск sequence по БД
    #39558939
Reflector
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
цацхе 10,
Спасибо большое за помощь, видел такую последовательность, но решил, что это не моя:)
...
Рейтинг: 0 / 0
Поиск sequence по БД
    #39558982
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ReflectorВедь он вставит значение не из кэша, верно?
мож неправильно понимаю вопрос

если есть cache, то именно из кеша

тоесть
если cache 100 то токо "раз" sequence.nextval совпадет с LAST_NUMBER

ps
я (почти) всегда использовал cache

.....
stax
...
Рейтинг: 0 / 0
Поиск sequence по БД
    #39559159
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Reflector,

А у меня вообще сумашедшая идея для дебаггинга возникла ( для случая, когда имя последовательности известно, но не ясно, кто её дергает )

1) последовательность переименовываем как-нибудь
2) Создаем package со старым именем последовательности, в нем функцию Nextval
3) В "функционирующем" случае из этой функции дергаем Nextval из последовательности
4) а вот когда хотим "дебаггинг", пусть Nextval генерирует исключение (exception) и вот тогда по call-stack 'у в некоторых случаях можно будет понять, кто вызвал Nextval
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Поиск sequence по БД
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]