С Новым годом! Форум программистов, компьютерный форум, киберфорум
Oracle
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/16: Рейтинг темы: голосов - 16, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 10.09.2010
Сообщений: 4

Оповещать нужных пользователей по электронной почте об любых изменениях в БД

10.09.2010, 11:22. Показов 3172. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите ,кто знает , нет ли какого нибудь софта для Oracle 10
чтобы он позволял автоматически оповещать нужных пользователей по электронной почте об любых изменениях в БД?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.09.2010, 11:22
Ответы с готовыми решениями:

Информирование пользователей по электронной почте
Приветствую. На сайте регистрируются пользователи. Указывают свои электронные адреса. Примерно раз в месяц нужно производить рассылку...

Как реализовать ObservableCollection состоящую из DataGrids и оповещать её об изменениях?
В приложении создаю вкладки с помощью кода, которым присваиваю контент. Проблема в том что при добавлении новой вкладки и изменении в ней...

Посчитать ActualWidth всех колонок в DataGrid при любых изменениях
Как узнать общую ширину всех колонок при изменении одной из колонок вручную или автоматически? То есть это нужно, чтобы Popup всплывал...

10
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
10.09.2010, 11:26
DOOMed, это про какие вы изменения? в данных что ли?
0
0 / 0 / 0
Регистрация: 10.09.2010
Сообщений: 4
10.09.2010, 11:51  [ТС]
Lord_Voodoo
ага ).............
насколько я понял в 11 версии ет уже есть по умолчанию, а вот в 10 ,увы..........
вот и встала задача найти какой нибудь софт или крипт -_- ..............
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
10.09.2010, 11:58
DOOMed, честно говоря, про такой софт не слышал, да и необходимости в его существовании тоже, только почту будет загаживать... тем более если актуализация данных решается простым обновление источника данных (если брать к примеру софт на ODAC под билдером)...
0
0 / 0 / 0
Регистрация: 15.07.2009
Сообщений: 4
11.09.2010, 09:26
Лично я бы написал элементарный триггер вызывающий почтовую программу на java. А там буквально 30 строк кода протокола SMTP и будет тебе счастье.
Видимо потому и нету таких инструментов, оттого что это сделать очень просто.
0
648 / 77 / 0
Регистрация: 23.01.2010
Сообщений: 193
11.09.2010, 13:40
Ну, как вариант, попробовать включить аудит нужных изменений и на sys.aud$ добавить триггер который будет через UTL_MAIL отсылать письмо.
0
68 / 66 / 3
Регистрация: 23.08.2010
Сообщений: 195
12.09.2010, 23:11
Лучший ответ Сообщение было отмечено как решение

Решение

Покритикуйте такой вариант:

1. Создаем политику
Oracle 11 SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
BEGIN
 DBMS_FGA.ADD_POLICY(
   object_schema   => 'SINOPTIK', 
   object_name     => 'OBJECTS', 
   policy_name     => 'SINOPTIK_MONITORING', 
   --audit_condition VARCHAR2, 
   --audit_column    VARCHAR2, 
   --handler_schema  VARCHAR2, 
   handler_module  => 'custom_audit.manage_audit', 
   enable          =>  TRUE, 
   statement_types => 'SELECT,UPDATE,DELETE,INSERT'
   --audit_trail     BINARY_INTEGER IN DEFAULT,
   --audit_column_opts BINARY_INTEGER IN DEFAULT
   );
END;
2. Создаем пакет:
Oracle 11 SQL
1
2
3
4
CREATE OR REPLACE PACKAGE custom_audit AS
  PROCEDURE manage_audit(p_schema VARCHAR2, p_obj VARCHAR2, p_pol VARCHAR2);
  PROCEDURE send_mail(p_sender IN VARCHAR2, p_recipient IN VARCHAR2, p_message IN VARCHAR2);
END;
Oracle 11 SQL
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
29
30
31
32
33
34
35
36
37
38
39
40
CREATE OR REPLACE PACKAGE BODY custom_audit AS
  PROCEDURE manage_audit(p_schema VARCHAR2, p_obj VARCHAR2, p_pol VARCHAR2) AS    
    cur_user all_users.username%TYPE;
    v_command VARCHAR2(32000);
  BEGIN
    BEGIN
      SELECT sql_text INTO v_command FROM dba_fga_audit_trail WHERE db_user = USER 
        AND TIMESTAMP = (SELECT MAX(TIMESTAMP) FROM dba_fga_audit_trail WHERE db_user = USER);
    EXCEPTION
      WHEN OTHERS THEN raise_application_error(-20000,'Исключение: ' || SQLCODE || ' ' || SQLERRM);
    END;
    BEGIN
      SELECT USER INTO cur_user FROM dual;
    EXCEPTION
      WHEN OTHERS THEN raise_application_error(-20000,'Исключение: ' || SQLCODE || ' ' || SQLERRM);
    END;    
    send_mail('sinoptik@mail.ru','sinoptik@gmail.com','''' || cur_user || '' || ' - ' || '' || v_command || '''');     
  END;
  
  PROCEDURE send_mail(p_sender IN VARCHAR2, p_recipient IN VARCHAR2, p_message IN VARCHAR2) AS   
    l_mailhost VARCHAR2(255) := 'smtp.mail.ru';
    l_mail_conn utl_smtp.connection;
  BEGIN
    l_mail_conn := utl_smtp.open_connection(l_mailhost, 25);
    utl_smtp.helo(l_mail_conn, l_mailhost);
    -- For Authenication
    UTL_SMTP.command(l_mail_conn,'AUTH LOGIN');
    UTL_SMTP.command(l_mail_conn, UTL_RAW.CAST_TO_VARCHAR2(
      UTL_ENCODE.BASE64_ENCODE(UTL_RAW.CAST_TO_RAW('SINOPTIK'))));
    UTL_SMTP.command(l_mail_conn, UTL_RAW.CAST_TO_VARCHAR2(
      UTL_ENCODE.BASE64_ENCODE(UTL_RAW.CAST_TO_RAW('PASSWORD'))));
    -- For Authenication  
    utl_smtp.mail(l_mail_conn, p_sender);
    utl_smtp.rcpt(l_mail_conn, p_recipient);
    utl_smtp.open_data(l_mail_conn );
    utl_smtp.write_data(l_mail_conn, p_message);
    utl_smtp.close_data(l_mail_conn );
    utl_smtp.quit(l_mail_conn);
  END;    
END;
Результат - sql команда (DML, select) выполненная пользователем приходит на e-mail.
3
0 / 0 / 0
Регистрация: 10.09.2010
Сообщений: 4
13.09.2010, 10:04  [ТС]
О_о и это как бэ просто? .............
пЫ сЫ. для человека который даже не знает, что такое триггер)).............
0
648 / 77 / 0
Регистрация: 23.01.2010
Сообщений: 193
13.09.2010, 14:21
Цитата Сообщение от BLEDNYKHAP Посмотреть сообщение
Покритикуйте такой вариант
Вариант неплох, но только для редакции Enterprise, в standard нету FGA, а свою редакцию ТС не указал.
0
105 / 75 / 0
Регистрация: 29.06.2009
Сообщений: 328
13.09.2010, 14:42
Цитата Сообщение от DOOMed Посмотреть сообщение
Подскажите ,кто знает , нет ли какого нибудь софта для Oracle 10
чтобы он позволял автоматически оповещать нужных пользователей по электронной почте об любых изменениях в БД?
1. Слово "любых" заставляет задуматься. Прям так надо "любых"?

2. Если это "высокоуровневое" оповещения для конечного пользователя, то я бы вынес всё это хозяйство из базы.

3. Для себя. Сделал бы таблицу с логом и какой-нибудь тригеер на то, что нужно. Запускал бы по расписанию батник на js для выгрузки данных и отправки их по email .

База - это пассивное создание, молчит пока не спросят. Проявлять инициативу создатель её не учил (почему-то).

Исходящие коннекты могут подвесить так, что фиг отлепишь. Хвост зависших сессий из-за проблем в таймаутах tcp - обычное дело. А гимор с jobами на рефреш снэпшотов не хочется даже вспоминать.
1
0 / 0 / 0
Регистрация: 10.09.2010
Сообщений: 4
13.09.2010, 15:35  [ТС]
Laba
Слово "любых" заставляет задуматься. Прям так надо "любых"?
Ну не савсем ,.любых,,...........
например в таблице...........

комп №1 | название | характеристики | и тп |

и если хотябы чтото в данных меняется , то извольте оповестить ..............

в столбце 1 | комп №1 |-> измененно | комп №2 |.............

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.09.2010, 15:35
Помогаю со студенческими работами здесь

Уриб Ут 11 По Электронной Почте
В общем ситуация такая: У клиента есть 3 филиала и 1 общий склад... ИП. Эти 3 филиала находятся друг от друга на расстоянии в 100 метров....

Отправка по электронной почте
При попытке отправить сообщение возникает SMTPExeption public string MailToAddress = "куда@gmail.com"; public string...

Не прикрепляются изображения по электронной почте
не прикрепляются изображение по электронной почте?

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

Синхронизация Документов По Электронной Почте
Привет! Есть два сервера, между ними нет связи, кроме электронной почты. Необходимо наладить синхронизацию документов между базами...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru