Advertisement
Lemesh

countdown_event

Mar 25th, 2019
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. CREATE OR REPLACE FUNCTION create_xml_event(
  2.     event text,
  3.     params text)
  4.   RETURNS void AS
  5. $BODY$
  6. DECLARE
  7.     param text;
  8.     param_name text[];
  9.     param_value text[];
  10.     param_matches text[];
  11.     event_params_string text default '';
  12.     xml_string text;
  13. begin
  14.     select array (select regexp_matches($2,'([^\/]*)/', 'g') from dual) into param_matches;
  15.     foreach param in array param_matches loop
  16.         select REGEXP_MATCHES(param,'(.*):=', 'g') into param_name from dual;
  17.         select REGEXP_MATCHES(param,':=(.*)', 'g') into param_value from dual;
  18.     event_params_string := ''||event_params_string||'<par name="'||param_name[1]||'" type="string">'||param_value[1]||'</par> ';
  19.     end loop;
  20.     xml_string := '<event name="'||$1||'">'||event_params_string||'</event>';
  21.     INSERT INTO "XML_EVENT" ("ID", "STATUS", "OPSTATUS", "DEST", "EVENT", "XML_DATA", "CREATED_BY", "MODIFIED_BY")
  22.     VALUES (3,    'new',  'new',  'notifier', ''||$1||'', XMLPARSE (content xml_string),  'SYSTEM',  'SYSTEM');
  23. end;
  24. $BODY$
  25.   LANGUAGE plpgsql;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement