1
0

insert_param_map.db2 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. /**
  2. * @ Author: Marshall Telaumbanua
  3. * @ Create Time: 2023-06-07 19:52:33
  4. * @ Usage: CALL MWCONFIG.INSERT_PARAM_MAP(GROUP, NAME, VALUE, SEQ, DESCRIPTION)
  5. */
  6. CREATE OR REPLACE PROCEDURE INSERT_PARAM_MAP (
  7. IN GROUP VARCHAR(256),
  8. IN NAME VARCHAR(256),
  9. IN VALUE VARCHAR(1024),
  10. IN SEQ CLOB,
  11. IN DESCRIPTION VARCHAR(256)
  12. )
  13. LANGUAGE SQL
  14. BEGIN
  15. DECLARE SQL_STMT VARCHAR(10000);
  16. SET SQL_STMT = 'MERGE INTO MWCONFIG.PARAM_MAP AS T ' ||
  17. 'USING (VALUES (''' || GROUP || ''', ''' || NAME || ''', ''' || VALUE || ''', ' ||
  18. CASE
  19. WHEN SEQ IS NULL THEN 'NULL'
  20. ELSE 'CAST(' || SEQ || ' AS INTEGER)'
  21. END || ', ' ||
  22. CASE
  23. WHEN DESCRIPTION IS NULL THEN 'NULL'
  24. ELSE '''' || DESCRIPTION || ''''
  25. END || ')) AS S (GROUP, NAME, VALUE, SEQ, DESCRIPTION) ' ||
  26. 'ON (T.GROUP = S.GROUP AND T.NAME = S.NAME) ' ||
  27. 'WHEN NOT MATCHED THEN ' ||
  28. ' INSERT (GROUP, NAME, VALUE, SEQ, DESCRIPTION, MODIFIED_BY, TIMESTAMP) ' ||
  29. ' VALUES (S.GROUP, S.NAME, S.VALUE, ' ||
  30. CASE
  31. WHEN SEQ IS NULL THEN 'NULL'
  32. ELSE 'CAST(' || SEQ || ' AS INTEGER)'
  33. END || ', S.DESCRIPTION, CURRENT_USER, CURRENT_TIMESTAMP)';
  34. PREPARE STMT FROM SQL_STMT;
  35. EXECUTE STMT;
  36. END
  37. @