Advertisement
Guest User

Untitled

a guest
May 30th, 2017
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. PROCEDURE after_event (
  2.         p_configuration_id  NUMBER,
  3.         p_session_id        NUMBER,
  4.         p_phase             NUMBER
  5.     )
  6.  IS
  7.     PRAGMA              autonomous_transaction;
  8.     l_configuration     pkg_n2n_replication.configuration_type;
  9.     l_is_existing       NUMBER;
  10.     l_query             VARCHAR2(4000);
  11.  BEGIN
  12.     SELECT COUNT(1) INTO l_is_existing FROM nc_n2n_configurations conf WHERE conf.configuration_id = p_configuration_id;
  13.     IF (l_is_existing = 0) THEN RETURN; END IF;
  14.     l_configuration := pkg_n2n_replication.load_configuration(p_configuration_id);
  15.    
  16.     pkg_n2n_replication.refresh_mviews(p_configuration_id);
  17.     pkg_n2n_replication.add_log_message(l_configuration, p_session_id, 'start replicating cia tables', pkg_n2n_replication.g_info_severity, 'replicate cia');
  18.     -- check phase
  19.     IF (p_phase = 0) THEN
  20.         -- routine work
  21.         pkg_n2n_replication.add_log_message(l_configuration, p_session_id, 'routine phase', pkg_n2n_replication.g_debug_severity, 'replicate cia');
  22.         -- dependencies
  23.         l_query :=
  24.         'merge into NC_CIA_DEPENDENCIES t
  25.            using (select root_cause_ticket_id,
  26.                         object_id,
  27.                         referenced_object_id,
  28.                         rule_id
  29.                    from MV_NC_CIA_DEPENDENCIES) v
  30.            on (t.object_id = v.object_id)
  31.            when matched then
  32.                 update
  33.                 set t.root_cause_ticket_id = v.root_cause_ticket_id,
  34.                     t.referenced_object_id = v.referenced_object_id,
  35.                     t.rule_id = v.rule_id
  36.            when not matched then
  37.                 insert (root_cause_ticket_id, object_id, referenced_object_id, rule_id)
  38.                 values (v.root_cause_ticket_id, v.object_id, v.referenced_object_id, v.rule_id);';
  39.         EXECUTE IMMEDIATE l_query;
  40.         l_query :=    
  41.         'delete from NC_CIA_DEPENDENCIES
  42.         where object_id not in (select object_id from MV_NC_CIA_DEPENDENCIES);';
  43.         EXECUTE IMMEDIATE l_query;
  44.         pkg_n2n_replication.add_log_message(l_configuration, p_session_id, 'insert/update/delete cia dependencies', pkg_n2n_replication.g_info_severity, 'replicate cia');
  45.  
  46.         -- severities
  47.         l_query :=
  48.         'merge into NC_CIA_SEVERITIES t
  49.            using (select object_id, service_level
  50.                    from MV_NC_CIA_SEVERITIES) v
  51.            on (t.object_id = v.object_id)
  52.            when matched then
  53.                update
  54.                set t.service_level = v.service_level
  55.            when not matched then
  56.                insert (object_id, service_level)
  57.                values (v.object_id, v.service_level);';
  58.         EXECUTE IMMEDIATE l_query;
  59.         l_query :=
  60.         'delete from NC_CIA_SEVERITIES
  61.         where object_id not in (select object_id from MV_NC_CIA_SEVERITIES);';
  62.         EXECUTE IMMEDIATE l_query;
  63.         pkg_n2n_replication.add_log_message(l_configuration, p_session_id, 'insert/update/delete cia severities', pkg_n2n_replication.g_info_severity, 'replicate cia');
  64.     ELSIF (p_phase = 1) THEN
  65.     -- initialization work
  66.         l_query :=
  67.         'delete from NC_CIA_SEVERITIES;';
  68.         EXECUTE IMMEDIATE l_query;
  69.         l_query :=
  70.         'insert into NC_CIA_SEVERITIES (object_id, service_level)
  71.         select object_id, service_level from MV_NC_CIA_SEVERITIES;';
  72.         EXECUTE IMMEDIATE l_query;
  73.         l_query :=
  74.         'delete from NC_CIA_DEPENDENCIES;';
  75.         EXECUTE IMMEDIATE l_query;
  76.         l_query :=
  77.         'insert into NC_CIA_DEPENDENCIES (root_cause_ticket_id, object_id, referenced_object_id, rule_id)
  78.         select root_cause_ticket_id, object_id, referenced_object_id, rule_id from MV_NC_CIA_DEPENDENCIES;';
  79.         EXECUTE IMMEDIATE l_query;    
  80.         pkg_n2n_replication.add_log_message(l_configuration, p_session_id, 'init phase', pkg_n2n_replication.g_debug_severity, 'replicate cia');
  81.     END IF;
  82.     pkg_n2n_replication.add_log_message(l_configuration, p_session_id, 'end replicating cia tables', pkg_n2n_replication.g_info_severity, 'replicate cia');  
  83.  EXCEPTION
  84.  WHEN OTHERS THEN
  85.     pkg_n2n_replication.add_log_message(l_configuration, p_session_id, SQLCODE||' - '||SQLERRM, pkg_n2n_replication.g_error_severity, 'replicate cia');
  86.    
  87.  END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement