merge_dlog_md.db2 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  1. /**
  2. * @ Usage: CALL MWCONFIG.MERGE_DLOG_MD(ADAPTOR_ID, PORT, SERVER, GROUP)
  3. */
  4. CREATE OR REPLACE PROCEDURE MERGE_DLOG_MD (
  5. IN type VARCHAR(256),
  6. IN codex VARCHAR(256),
  7. IN pcorrelationid VARCHAR(1024),
  8. IN psource VARCHAR(1024),
  9. IN pcode VARCHAR(1024),
  10. IN pbase VARCHAR(1024),
  11. IN modified_by VARCHAR(64) DEFAULT CURRENT USER,
  12. IN c1 VARCHAR(64),
  13. IN p1 VARCHAR(256),
  14. IN c2 VARCHAR(64),
  15. IN p2 VARCHAR(256),
  16. IN c3 VARCHAR(64),
  17. IN p3 VARCHAR(256),
  18. IN c4 VARCHAR(64),
  19. IN p4 VARCHAR(256),
  20. IN c5 VARCHAR(64),
  21. IN p5 VARCHAR(256),
  22. IN c6 VARCHAR(64),
  23. IN p6 VARCHAR(256),
  24. IN c7 VARCHAR(64),
  25. IN p7 VARCHAR(256),
  26. IN c8 VARCHAR(64),
  27. IN p8 VARCHAR(256),
  28. IN c9 VARCHAR(64),
  29. IN p9 VARCHAR(256),
  30. IN c10 VARCHAR(64),
  31. IN p10 VARCHAR(256),
  32. IN c11 VARCHAR(64),
  33. IN p11 VARCHAR(256),
  34. IN c12 VARCHAR(64),
  35. IN p12 VARCHAR(256),
  36. IN c13 VARCHAR(64),
  37. IN p13 VARCHAR(256),
  38. IN c14 VARCHAR(64),
  39. IN p14 VARCHAR(256),
  40. IN c15 VARCHAR(64),
  41. IN p15 VARCHAR(256),
  42. IN c16 VARCHAR(64),
  43. IN p16 VARCHAR(256),
  44. IN c17 VARCHAR(64),
  45. IN p17 VARCHAR(256),
  46. IN c18 VARCHAR(64),
  47. IN p18 VARCHAR(256),
  48. IN c19 VARCHAR(64),
  49. IN p19 VARCHAR(256),
  50. IN c20 VARCHAR(64),
  51. IN p20 VARCHAR(256),
  52. IN c21 VARCHAR(64),
  53. IN p21 VARCHAR(256),
  54. IN c22 VARCHAR(64),
  55. IN p22 VARCHAR(256),
  56. IN c23 VARCHAR(64),
  57. IN p23 VARCHAR(256),
  58. IN c24 VARCHAR(64),
  59. IN p24 VARCHAR(256),
  60. IN c25 VARCHAR(64),
  61. IN p25 VARCHAR(256),
  62. IN c26 VARCHAR(64),
  63. IN p26 VARCHAR(256),
  64. IN c27 VARCHAR(64),
  65. IN p27 VARCHAR(256),
  66. IN c28 VARCHAR(64),
  67. IN p28 VARCHAR(256),
  68. IN c29 VARCHAR(64),
  69. IN p29 VARCHAR(256),
  70. IN c30 VARCHAR(64),
  71. IN p30 VARCHAR(256),
  72. IN c31 VARCHAR(64),
  73. IN p31 VARCHAR(256),
  74. IN c32 VARCHAR(64),
  75. IN p32 VARCHAR(256),
  76. IN c33 VARCHAR(64),
  77. IN p33 VARCHAR(256),
  78. IN c34 VARCHAR(64),
  79. IN p34 VARCHAR(256),
  80. IN c35 VARCHAR(64),
  81. IN p35 VARCHAR(256),
  82. IN c36 VARCHAR(64),
  83. IN p36 VARCHAR(256),
  84. IN c37 VARCHAR(64),
  85. IN p37 VARCHAR(256),
  86. IN c38 VARCHAR(64),
  87. IN p38 VARCHAR(256),
  88. IN c39 VARCHAR(64),
  89. IN p39 VARCHAR(256),
  90. IN c40 VARCHAR(64),
  91. IN p40 VARCHAR(256)
  92. )
  93. BEGIN
  94. DECLARE SQL_STMT VARCHAR(4000);
  95. SET SQL_STMT = 'MERGE INTO MWLOG.DLOG_MD AS T ' ||
  96. 'USING (VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)) ' ||
  97. 'AS S (TYPE, CODEX, PCORRELATIONID, PSOURCE, PCODE, PBASE, MODIFIED_BY, C_1, P_1, C_2, P_2, C_3, P_3, C_4, P_4, C_5, P_5, C_6, P_6, C_7, P_7, C_8, P_8, C_9, P_9, C_10, P_10, C_11, P_11, C_12, P_12, C_13, P_13, C_14, P_14, C_15, P_15, C_16, P_16, C_17, P_17, C_18, P_18, C_19, P_19, C_20, P_20, C_21, P_21, C_22, P_22, C_23, P_23, C_24, P_24, C_25, P_25, C_26, P_26, C_27, P_27, C_28, P_28, C_29, P_29, C_30, P_30, C_31, P_31, C_32, P_32, C_33, P_33, C_34, P_34, C_35, P_35, C_36, P_36, C_37, P_37, C_38, P_38, C_39, P_39, C_40, P_40) ' ||
  98. 'ON (T.TYPE = S.TYPE) ' ||
  99. 'WHEN MATCHED THEN ' ||
  100. 'UPDATE SET T.CODEX = CASE WHEN S.CODEX IS NOT NULL THEN S.CODEX ELSE T.CODEX END, ' ||
  101. 'T.PCORRELATIONID = CASE WHEN S.PCORRELATIONID IS NOT NULL THEN S.PCORRELATIONID ELSE T.PCORRELATIONID END, ' ||
  102. 'T.PSOURCE = CASE WHEN S.PSOURCE IS NOT NULL THEN S.PSOURCE ELSE T.PSOURCE END, ' ||
  103. 'T.PCODE = CASE WHEN S.PCODE IS NOT NULL THEN S.PCODE ELSE T.PCODE END, ' ||
  104. 'T.PBASE = CASE WHEN S.PBASE IS NOT NULL THEN S.PBASE ELSE T.PBASE END, ' ||
  105. 'T.MODIFIED_BY = CASE WHEN S.MODIFIED_BY IS NOT NULL THEN S.MODIFIED_BY ELSE T.MODIFIED_BY END, ' ||
  106. 'T.TIMESTAMP = CURRENT TIMESTAMP, ' ||
  107. 'T.C_1 = CASE WHEN S.C_1 IS NOT NULL THEN S.C_1 ELSE T.C_1 END, ' ||
  108. 'T.P_1 = CASE WHEN S.P_1 IS NOT NULL THEN S.P_1 ELSE T.P_1 END, ' ||
  109. 'T.C_2 = CASE WHEN S.C_2 IS NOT NULL THEN S.C_2 ELSE T.C_2 END, ' ||
  110. 'T.P_2 = CASE WHEN S.P_2 IS NOT NULL THEN S.P_2 ELSE T.P_2 END, ' ||
  111. 'T.C_3 = CASE WHEN S.C_3 IS NOT NULL THEN S.C_3 ELSE T.C_3 END, ' ||
  112. 'T.P_3 = CASE WHEN S.P_3 IS NOT NULL THEN S.P_3 ELSE T.P_3 END, ' ||
  113. 'T.C_4 = CASE WHEN S.C_4 IS NOT NULL THEN S.C_4 ELSE T.C_4 END, ' ||
  114. 'T.P_4 = CASE WHEN S.P_4 IS NOT NULL THEN S.P_4 ELSE T.P_4 END, ' ||
  115. 'T.C_5 = CASE WHEN S.C_5 IS NOT NULL THEN S.C_5 ELSE T.C_5 END, ' ||
  116. 'T.P_5 = CASE WHEN S.P_5 IS NOT NULL THEN S.P_5 ELSE T.P_5 END, ' ||
  117. 'T.C_6 = CASE WHEN S.C_6 IS NOT NULL THEN S.C_6 ELSE T.C_6 END, ' ||
  118. 'T.P_6 = CASE WHEN S.P_6 IS NOT NULL THEN S.P_6 ELSE T.P_6 END, ' ||
  119. 'T.C_7 = CASE WHEN S.C_7 IS NOT NULL THEN S.C_7 ELSE T.C_7 END, ' ||
  120. 'T.P_7 = CASE WHEN S.P_7 IS NOT NULL THEN S.P_7 ELSE T.P_7 END, ' ||
  121. 'T.C_8 = CASE WHEN S.C_8 IS NOT NULL THEN S.C_8 ELSE T.C_8 END, ' ||
  122. 'T.P_8 = CASE WHEN S.P_8 IS NOT NULL THEN S.P_8 ELSE T.P_8 END, ' ||
  123. 'T.C_9 = CASE WHEN S.C_9 IS NOT NULL THEN S.C_9 ELSE T.C_9 END, ' ||
  124. 'T.P_9 = CASE WHEN S.P_9 IS NOT NULL THEN S.P_9 ELSE T.P_9 END, ' ||
  125. 'T.C_10 = CASE WHEN S.C_10 IS NOT NULL THEN S.C_10 ELSE T.C_10 END, ' ||
  126. 'T.P_10 = CASE WHEN S.P_10 IS NOT NULL THEN S.P_10 ELSE T.P_10 END, ' ||
  127. 'T.C_11 = CASE WHEN S.C_11 IS NOT NULL THEN S.C_11 ELSE T.C_11 END, ' ||
  128. 'T.P_11 = CASE WHEN S.P_11 IS NOT NULL THEN S.P_11 ELSE T.P_11 END, ' ||
  129. 'T.C_12 = CASE WHEN S.C_12 IS NOT NULL THEN S.C_12 ELSE T.C_12 END, ' ||
  130. 'T.P_12 = CASE WHEN S.P_12 IS NOT NULL THEN S.P_12 ELSE T.P_12 END, ' ||
  131. 'T.C_13 = CASE WHEN S.C_13 IS NOT NULL THEN S.C_13 ELSE T.C_13 END, ' ||
  132. 'T.P_13 = CASE WHEN S.P_13 IS NOT NULL THEN S.P_13 ELSE T.P_13 END, ' ||
  133. 'T.C_14 = CASE WHEN S.C_14 IS NOT NULL THEN S.C_14 ELSE T.C_14 END, ' ||
  134. 'T.P_14 = CASE WHEN S.P_14 IS NOT NULL THEN S.P_14 ELSE T.P_14 END, ' ||
  135. 'T.C_15 = CASE WHEN S.C_15 IS NOT NULL THEN S.C_15 ELSE T.C_15 END, ' ||
  136. 'T.P_15 = CASE WHEN S.P_15 IS NOT NULL THEN S.P_15 ELSE T.P_15 END, ' ||
  137. 'T.C_16 = CASE WHEN S.C_16 IS NOT NULL THEN S.C_16 ELSE T.C_16 END, ' ||
  138. 'T.P_16 = CASE WHEN S.P_16 IS NOT NULL THEN S.P_16 ELSE T.P_16 END, ' ||
  139. 'T.C_17 = CASE WHEN S.C_17 IS NOT NULL THEN S.C_17 ELSE T.C_17 END, ' ||
  140. 'T.P_17 = CASE WHEN S.P_17 IS NOT NULL THEN S.P_17 ELSE T.P_17 END, ' ||
  141. 'T.C_18 = CASE WHEN S.C_18 IS NOT NULL THEN S.C_18 ELSE T.C_18 END, ' ||
  142. 'T.P_18 = CASE WHEN S.P_18 IS NOT NULL THEN S.P_18 ELSE T.P_18 END, ' ||
  143. 'T.C_19 = CASE WHEN S.C_19 IS NOT NULL THEN S.C_19 ELSE T.C_19 END, ' ||
  144. 'T.P_19 = CASE WHEN S.P_19 IS NOT NULL THEN S.P_19 ELSE T.P_19 END, ' ||
  145. 'T.C_20 = CASE WHEN S.C_20 IS NOT NULL THEN S.C_20 ELSE T.C_20 END, ' ||
  146. 'T.P_20 = CASE WHEN S.P_20 IS NOT NULL THEN S.P_20 ELSE T.P_20 END, ' ||
  147. 'T.C_21 = CASE WHEN S.C_21 IS NOT NULL THEN S.C_21 ELSE T.C_21 END, ' ||
  148. 'T.P_21 = CASE WHEN S.P_21 IS NOT NULL THEN S.P_21 ELSE T.P_21 END, ' ||
  149. 'T.C_22 = CASE WHEN S.C_22 IS NOT NULL THEN S.C_22 ELSE T.C_22 END, ' ||
  150. 'T.P_22 = CASE WHEN S.P_22 IS NOT NULL THEN S.P_22 ELSE T.P_22 END, ' ||
  151. 'T.C_23 = CASE WHEN S.C_23 IS NOT NULL THEN S.C_23 ELSE T.C_23 END, ' ||
  152. 'T.P_23 = CASE WHEN S.P_23 IS NOT NULL THEN S.P_23 ELSE T.P_23 END, ' ||
  153. 'T.C_24 = CASE WHEN S.C_24 IS NOT NULL THEN S.C_24 ELSE T.C_24 END, ' ||
  154. 'T.P_24 = CASE WHEN S.P_24 IS NOT NULL THEN S.P_24 ELSE T.P_24 END, ' ||
  155. 'T.C_25 = CASE WHEN S.C_25 IS NOT NULL THEN S.C_25 ELSE T.C_25 END, ' ||
  156. 'T.P_25 = CASE WHEN S.P_25 IS NOT NULL THEN S.P_25 ELSE T.P_25 END, ' ||
  157. 'T.C_26 = CASE WHEN S.C_26 IS NOT NULL THEN S.C_26 ELSE T.C_26 END, ' ||
  158. 'T.P_26 = CASE WHEN S.P_26 IS NOT NULL THEN S.P_26 ELSE T.P_26 END, ' ||
  159. 'T.C_27 = CASE WHEN S.C_27 IS NOT NULL THEN S.C_27 ELSE T.C_27 END, ' ||
  160. 'T.P_27 = CASE WHEN S.P_27 IS NOT NULL THEN S.P_27 ELSE T.P_27 END, ' ||
  161. 'T.C_28 = CASE WHEN S.C_28 IS NOT NULL THEN S.C_28 ELSE T.C_28 END, ' ||
  162. 'T.P_28 = CASE WHEN S.P_28 IS NOT NULL THEN S.P_28 ELSE T.P_28 END, ' ||
  163. 'T.C_29 = CASE WHEN S.C_29 IS NOT NULL THEN S.C_29 ELSE T.C_29 END, ' ||
  164. 'T.P_29 = CASE WHEN S.P_29 IS NOT NULL THEN S.P_29 ELSE T.P_29 END, ' ||
  165. 'T.C_30 = CASE WHEN S.C_30 IS NOT NULL THEN S.C_30 ELSE T.C_30 END, ' ||
  166. 'T.P_30 = CASE WHEN S.P_30 IS NOT NULL THEN S.P_30 ELSE T.P_30 END, ' ||
  167. 'T.C_31 = CASE WHEN S.C_31 IS NOT NULL THEN S.C_31 ELSE T.C_31 END, ' ||
  168. 'T.P_31 = CASE WHEN S.P_31 IS NOT NULL THEN S.P_31 ELSE T.P_31 END, ' ||
  169. 'T.C_32 = CASE WHEN S.C_32 IS NOT NULL THEN S.C_32 ELSE T.C_32 END, ' ||
  170. 'T.P_32 = CASE WHEN S.P_32 IS NOT NULL THEN S.P_32 ELSE T.P_32 END, ' ||
  171. 'T.C_33 = CASE WHEN S.C_33 IS NOT NULL THEN S.C_33 ELSE T.C_33 END, ' ||
  172. 'T.P_33 = CASE WHEN S.P_33 IS NOT NULL THEN S.P_33 ELSE T.P_33 END, ' ||
  173. 'T.C_34 = CASE WHEN S.C_34 IS NOT NULL THEN S.C_34 ELSE T.C_34 END, ' ||
  174. 'T.P_34 = CASE WHEN S.P_34 IS NOT NULL THEN S.P_34 ELSE T.P_34 END, ' ||
  175. 'T.C_35 = CASE WHEN S.C_35 IS NOT NULL THEN S.C_35 ELSE T.C_35 END, ' ||
  176. 'T.P_35 = CASE WHEN S.P_35 IS NOT NULL THEN S.P_35 ELSE T.P_35 END, ' ||
  177. 'T.C_36 = CASE WHEN S.C_36 IS NOT NULL THEN S.C_36 ELSE T.C_36 END, ' ||
  178. 'T.P_36 = CASE WHEN S.P_36 IS NOT NULL THEN S.P_36 ELSE T.P_36 END, ' ||
  179. 'T.C_37 = CASE WHEN S.C_37 IS NOT NULL THEN S.C_37 ELSE T.C_37 END, ' ||
  180. 'T.P_37 = CASE WHEN S.P_37 IS NOT NULL THEN S.P_37 ELSE T.P_37 END, ' ||
  181. 'T.C_38 = CASE WHEN S.C_38 IS NOT NULL THEN S.C_38 ELSE T.C_38 END, ' ||
  182. 'T.P_38 = CASE WHEN S.P_38 IS NOT NULL THEN S.P_38 ELSE T.P_38 END, ' ||
  183. 'T.C_39 = CASE WHEN S.C_39 IS NOT NULL THEN S.C_39 ELSE T.C_39 END, ' ||
  184. 'T.P_39 = CASE WHEN S.P_39 IS NOT NULL THEN S.P_39 ELSE T.P_39 END, ' ||
  185. 'T.C_40 = CASE WHEN S.C_40 IS NOT NULL THEN S.C_40 ELSE T.C_40 END, ' ||
  186. 'T.P_40 = CASE WHEN S.P_40 IS NOT NULL THEN S.P_40 ELSE T.P_40 END ' ||
  187. 'WHEN NOT MATCHED THEN ' ||
  188. 'INSERT (TYPE, CODEX, PCORRELATIONID, PSOURCE, PCODE, PBASE, MODIFIED_BY, TIMESTAMP, C_1, P_1, C_2, P_2, C_3, P_3, C_4, P_4, C_5, P_5, C_6, P_6, C_7, P_7, C_8, P_8, C_9, P_9, C_10, P_10, C_11, P_11, C_12, P_12, C_13, P_13, C_14, P_14, C_15, P_15, C_16, P_16, C_17, P_17, C_18, P_18, C_19, P_19, C_20, P_20, C_21, P_21, C_22, P_22, C_23, P_23, C_24, P_24, C_25, P_25, C_26, P_26, C_27, P_27, C_28, P_28, C_29, P_29, C_30, P_30, C_31, P_31, C_32, P_32, C_33, P_33, C_34, P_34, C_35, P_35, C_36, P_36, C_37, P_37, C_38, P_38, C_39, P_39, C_40, P_40) ' ||
  189. 'VALUES (?, ?, ?, ?, ?, ?, ?, CURRENT TIMESTAMP, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)';
  190. PREPARE STMT FROM SQL_STMT;
  191. EXECUTE STMT;
  192. END
  193. @