powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Пересекающиеся периоды записей
9 сообщений из 9, страница 1 из 1
Пересекающиеся периоды записей
    #40045644
dn33369
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В таблице 4 поля
N1 N2 DATE_START DATE_END
Нужна проверка на пересекающиеся периоды
Например, вставляю
1 1 07.02.2021 01.01.2025
Далее вставляю 2 2 04.02.2021 01.01.2025
В таблице получится :
1 1 07.02.2021 01.01.2025
2 2 04.02.2021 06.02.2021
Т е запись закрывается с -1 и в таблице может быть только одна запись с 01.01.2025
Дальше если я вставляю 3 3 05.02.2021 , запись уже вписывается в период второй записи и вывести это как ERROR_TEXT( что ошибка пересекающихся периодов)
...
Рейтинг: 0 / 0
Пересекающиеся периоды записей
    #40045715
Фотография Валерий Юринский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Раз нужна проверка, проверяйте.
Можно делать её, например, в триггере AFTER INSERT.
В чём проблема?

P.S. при оформлении кода и примеров данных используйте, пожалуйста, тэг FIXED или SRC.
...
Рейтинг: 0 / 0
Пересекающиеся периоды записей
    #40045724
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валерий Юринский

В чём проблема?

в триггере не видно незакомиченные записи

нужно блокировать ресурс

.....
stax
...
Рейтинг: 0 / 0
Пересекающиеся периоды записей
    #40045732
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dn33369
В таблице 4 поля
N1 N2 DATE_START DATE_END
Нужна проверка на пересекающиеся периоды
Например, вставляю
1 1 07.02.2021 01.01.2025
Далее вставляю 2 2 04.02.2021 01.01.2025
В таблице получится :
1 1 07.02.2021 01.01.2025
2 2 04.02.2021 06.02.2021
Т е запись закрывается с -1 и в таблице может быть только одна запись с 01.01.2025
Дальше если я вставляю 3 3 05.02.2021 , запись уже вписывается в период второй записи и вывести это как ERROR_TEXT( что ошибка пересекающихся периодов)


1 и 2 пересекаются (2 вхотит в 1), что значит запись закрывается с -1?

" я вставляю 3 3 05.02.2021" DATE_END?

.....
stax
...
Рейтинг: 0 / 0
Пересекающиеся периоды записей
    #40045735
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валерий Юринский
Можно делать её, например, в триггере AFTER INSERT.
В чём проблема?
В том, что маркетологам не следует лезть с советами туда, где они мало смыслят.
...
Рейтинг: 0 / 0
Пересекающиеся периоды записей
    #40045787
Фотография Валерий Юринский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stax
Валерий Юринский

В чём проблема?

в триггере не видно незакомиченные записи

нужно блокировать ресурс

.....
stax
Незакоммиченные записи не видны в другой сессии.

В своей сессии все видно в триггере AFTER INSERT OR UDATE уровня Statement.
...
Рейтинг: 0 / 0
Пересекающиеся периоды записей
    #40045788
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dn33369,

Выносите логику в пакеты и не давайте никому прямого доступа к таблице.
...
Рейтинг: 0 / 0
Пересекающиеся периоды записей
    #40046330
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Создаем таблицу MAP(DT DATE PRIMARY KEY)
2. Создает триггер на нашу таблицу где
a) WHEN INSERTING делаем INSERT INTO MAP SELECT :NEW.START_DT + LEVEL - 1 FROM DUAL CONNECT BY :NEW.START_DT + LEVEL - 1 <= :NEW.END_DT
b) WHEN DELETING делаем DELETE MAP WHERE DT BETWEEN :OLD.START_DT AND :OLD.NEW_DT
c) WHEN UPDATING делаем b) затем a).

SY.
P.S. Подразумевается все даты на начало дня.
...
Рейтинг: 0 / 0
Пересекающиеся периоды записей
    #40046515
Фотография orawish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Пересекающиеся периоды записей
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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