powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Чтение таблицы из триггера (after-insert)
25 сообщений из 178, страница 7 из 8
Чтение таблицы из триггера (after-insert)
    #40010685
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НеофитSQL
Кэш действительно глобальный, один на целый сиквенс.

Точнее, sequence cache в SGA глобальный для всех последовательностей, но с позиции выдачи значений также глобальный для одиночного сиквенса. Согласен, затупил.
...
Рейтинг: 0 / 0
Чтение таблицы из триггера (after-insert)
    #40010688
НеофитSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
env
НеофитSQL,

Держите "загадку".

От первого nextval до select currval других сессий не было.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
SQL> create table dropme_t(n number);

Table created.

SQL> create sequence dropme_s start with 1 maxvalue 1000 nocache order;

Sequence created.

SQL> insert into dropme_t(n) values(dropme_s.nextval);

1 row created.

SQL> insert into dropme_t(n) values(dropme_s.nextval);

1 row created.

SQL> select * from dropme_t;

         N
----------
         1
         3

SQL> select dropme_s.currval c from dual;

         C
----------
         4



Изученных инструментов должно хватить для "решения".


Возможно, вы добавили триггер между первой и последней строкой, но об этом не сказали?

Или можно полагать что экран правдиво отражает весь инпут полученный ораклом с начала до конца?
...
Рейтинг: 0 / 0
Чтение таблицы из триггера (after-insert)
    #40010689
Фотография кит северных морей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НеофитSQL
Или можно полагать что экран правдиво отражает весь инпут полученный ораклом с начала до конца?
обычно спулы sql plus принято выкладывать как есть, без модификаций.
...
Рейтинг: 0 / 0
Чтение таблицы из триггера (after-insert)
    #40010696
НеофитSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
K790
НеофитSQL...
По этой причине, Ораклу пришло много баг репортов, и их отделу техподдержки пришлось писать аж целую объяснительную.
https://support.oracle.com/knowledge/Oracle Database Products/2588246_1.html

Смотрю в книгу вижу RAC фигу. О чем и говорил Вячеслав.

Непонятно только, зачем этот бессознательный поток на форум нести? Освой концепции и вопросов станет на порядок меньше.

Я вижу, вы второй параграф не осилили, застряли на фиге RAC.

Перевожу: "применяется к:
Ораклу: версия 7 и позже. Информация в документе применима ко всем платформам"

Вы понимаете, почему в документах тех поддержки симптом описывается в одной конфигурации, а ответ захватывает более широкую сферу?

Я могу объяснить, это вытекает из правил процесса тех поддержки.
...
Рейтинг: 0 / 0
Чтение таблицы из триггера (after-insert)
    #40010698
НеофитSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
кит северных морей
НеофитSQL
Или можно полагать что экран правдиво отражает весь инпут полученный ораклом с начала до конца?
обычно спулы sql plus принято выкладывать как есть, без модификаций.


Да, поэтому я задал уточняющий вопрос.
Подождем, что ответит.

Мой спул был без модификаций, но не с начала сессии, чтобы показать эффект состояния БД на одинокую сессию.. Вырезать что-то из середины или править текст это конечно обман.
...
Рейтинг: 0 / 0
Чтение таблицы из триггера (after-insert)
    #40010724
проходил мимо...
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
это единственный человек для которого так много оказалось интиетивно неправильно понятным, что читать документацию совсем не обязательно

я скажу больше.
это единственный на моей памяти придурок оригинал на этом форуме, которому неглупые и критически настроенные в обычной ситуации люди уже не первую неделю пытаются хирургически пересадить свои мозги.
честно - я в ахфиге.
...
Рейтинг: 0 / 0
Чтение таблицы из триггера (after-insert)
    #40010725
dmdmdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
проходил мимо...
честно - я в ахфиге.


Аналогично.

Если бы я знал больше об AI (искусственном интеллекте), я бы мог предположить, что наш век заканчивается, и неофиты нас сменяют.
...
Рейтинг: 0 / 0
Чтение таблицы из триггера (after-insert)
    #40010740
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
dmdmdm
проходил мимо...
честно - я в ахфиге.


Аналогично.

Если бы я знал больше об AI (искусственном интеллекте), я бы мог предположить, что наш век заканчивается, и неофиты нас сменяют.
слишком плохое мнение об ИИ он бы доку осилил в пару первых секунд...
...
Рейтинг: 0 / 0
Чтение таблицы из триггера (after-insert)
    #40010741
graycode
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dmdmdm
Если бы я знал больше об AI (искусственном интеллекте), я бы мог предположить, что наш век заканчивается, и неофиты нас сменяют.

Не, неофит не AI, неофит это китайская комната))
...
Рейтинг: 0 / 0
Чтение таблицы из триггера (after-insert)
    #40010783
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НеофитSQL
экран правдиво отражает весь инпут полученный ораклом с начала до конца

Разумеется нет, т.к. инпут полученный ораклом от других процессов, включая системные экран не отразит.
Если же речь про "команды полученные в одной сессии", тогда да. Даже правдивее, чем было у вас, ничего не пропущено.

НеофитSQL
Возможно, вы добавили триггер

Да, воспользовался вашей же казуистикой про "другие сессии"
env
От первого nextval до select currval других сессий не было.

и добавил триггер в другой сессии до первого nextval. Поэтому уточнил, что должно хватить изученных инструментов.

Пример показывает, что при использовании общего сиквенса в разных кусках кода последний явный вызов nextval в коде пользователя не обязательно будет совпадать с currval в этой же сессии. Никакого чуда, ожидаемое поведение.
...
Рейтинг: 0 / 0
Чтение таблицы из триггера (after-insert)
    #40010784
Фотография кит северных морей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
env
добавил триггер в другой сессии до первого nextval
скучно, я думал на sys.seq$ триггер
...
Рейтинг: 0 / 0
Чтение таблицы из триггера (after-insert)
    #40010792
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще-то именно на 11G был такой неопубликованный баг (Sequence Starts With Value 2 In 11G (Doc ID 1273858.1))
И даже вроде SY его здесь показывал
...
Рейтинг: 0 / 0
Чтение таблицы из триггера (after-insert)
    #40010793
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кит северных морей
env
добавил триггер в другой сессии до первого nextval
скучно, я думал на sys.seq$ триггер


Была мысль. Но решил, что это не сильно отличается.
...
Рейтинг: 0 / 0
Чтение таблицы из триггера (after-insert)
    #40010821
Фотография orawish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав Любомудров
Вообще-то именно на 11G был такой неопубликованный баг (Sequence Starts With Value 2 In 11G (Doc ID 1273858.1))
И даже вроде SY его здесь показывал

я думаю, что всё проще
и сессии одной достаточно (и автора ,кто ищет, тот найдет .. в зеркале)
примерно было так:
Sequence
...
Рейтинг: 0 / 0
Чтение таблицы из триггера (after-insert)
    #40010892
graycode
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
кит северных морей
https://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_6015.htm ORDER
Specify ORDER to guarantee that sequence numbers are generated in order of request. This clause is useful if you are using the sequence numbers as timestamps. Guaranteeing order is usually not important for sequences used to generate primary keys.

в какой ситуации, выполняя запросы вида insert into tab(id, ts) values (seq.nextval, systimestamp), мы получим расхождение в очередности id и ts?
Dimitry Sibiryakov не говорил именно о таком запросе, в общем случае id может быть получено ранее до вставки в таблицу, на таблице может быть триггер на ts, причем триггер может явно поломать даже ваш вариант, кроме того, я не помню чтобы Oracle давал гарантии последовательности и четкой очередности вызова различных функций в запросе, тем более что запрос не один и в разных сессиях, в вашем примере я вижу четыре конкурирующих по времени процесса: получение id и ts в первом запросе и получение id и ts во втором запросе, если Oracle дает гарантию последовательности выполнения получения id1 - ts1 -id2 - ts2, хотелось бы увидеть где это описано.

В этой ситуации есть еще нюанс, допустим разные сессии вставляют записи с id - 8, 9, 10; 8 и 10 были подтверждены, в этот момент наш неофит начал некую обработку и считал записи вплоть до последней 10-й, обработал их и думает, что он обработал все записи до 10-й включительно, после этого проходит commit 9-й и ущербная логика программного модуля неофита поломалась.
...
Рейтинг: 0 / 0
Чтение таблицы из триггера (after-insert)
    #40010895
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
graycode,

Он живёт в парадигме
НеофитSQL
В таблицу импорта событий пишет один пользователь, больше никто

Предположу, что один пользователь == одна сессия в этой парадигме.
...
Рейтинг: 0 / 0
Чтение таблицы из триггера (after-insert)
    #40010904
graycode
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
env,

Меня больше смущает даже не это, а то что его творчество проходит кодревью ...
...
Рейтинг: 0 / 0
Чтение таблицы из триггера (after-insert)
    #40010907
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
graycode,

systimestamp получаем на момент старта оператора для всех строк, потом уже id, ф-ции, триггера и тд

и чисто теретически (если не латчить ) , можно получить рассогласование


в двух сессиях выполняем insert into tab(id, ts) values (seq.nextval, systimestamp),

1) в первой сессии старт инсерта - вычисляется systimestamp получили напр xxx.001001

2) "прерывание" (переключаемся на вторую сессию)

3) во второй стартует инсерт вычисляется systimestamp получили напр xxx.001005

4) во втрой получаем ИД напр 17, "прерывание" (возвращаемся к обслуживанию инсерта в первой сессии)

5) в первой получаем ИД напр 18

итого, ид не согласованы по времени

как на самом деле я не знаю

.....
stax
...
Рейтинг: 0 / 0
Чтение таблицы из триггера (after-insert)
    #40010909
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
graycode,

Судя по предыдущим топикам, "старший товарищ" там уже развёл такой зоопарк, что это неудивительно.
...
Рейтинг: 0 / 0
Чтение таблицы из триггера (after-insert)
    #40010919
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
graycode
env,

Меня больше смущает даже не это, а то что его творчество проходит кодревью ...

Это бывает, что непрывного code review нет, или есть "по желанию".

А вот то, что "боевая база" - 11.2.0.1.0, и разработка ведется прямо на ней - не смущает?
Вот это в моей голове со словом "работа" ни в каком извороте не комбинируется.
...
Рейтинг: 0 / 0
Чтение таблицы из триггера (after-insert)
    #40010920
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
booby,

Про наличие админа никто же не говорил. Бэкапов скорее всего тоже нет и база возможно в noarchivelog.
...
Рейтинг: 0 / 0
Чтение таблицы из триггера (after-insert)
    #40010928
graycode
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
booby,

С большой долей вероятности лицензий на Oracle у организации нет, деньги на девелоперскую среду не выделяются и вообще деньги не выделяются, поэтому сидит два-три человека с зарплатой сильно ниже рынка и пилят систему на ворованном Oracle без всякой организации процесса разработки.
...
Рейтинг: 0 / 0
Чтение таблицы из триггера (after-insert)
    #40010933
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
graycode
booby,

С большой долей вероятности лицензий на Oracle у организации нет

в Украине позволить себе купить оракле могут лишь немногие

https://prozorro.gov.ua/tender/search/?query=oracle

....
stax
...
Рейтинг: 0 / 0
Чтение таблицы из триггера (after-insert)
    #40010950
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stax
graycode
booby,

С большой долей вероятности лицензий на Oracle у организации нет

в Украине позволить себе купить оракле могут лишь немногие

https://prozorro.gov.ua/tender/search/?query=oracle

....
stax


В России так же было, прошло 15 лет, в результате:
Oracle DBA/Developer на рынке доступнее чем по другим базам
Oracle база сидит на каждом рабочем месте, не говоря о информационных системах.

первая доза бесплатна, как только появятся бабки, все резко изменится...
...
Рейтинг: 0 / 0
Чтение таблицы из триггера (after-insert)
    #40011006
НеофитSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot env#22218733]
НеофитSQL

Пример показывает, что при использовании общего сиквенса в разных кусках кода последний явный вызов nextval в коде пользователя не обязательно будет совпадать с currval в этой же сессии. Никакого чуда, ожидаемое поведение.


ничего удивительного. Для оракла все равно, видит пользователь вызов nextval на экране или нет. Хоть в триггере, хоть в функции. Главное, чтобы в той же сессии.
...
Рейтинг: 0 / 0
25 сообщений из 178, страница 7 из 8
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Чтение таблицы из триггера (after-insert)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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