| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- /**
- * @ Author: Marshall Telaumbanua
- * @ Create Time: 2023-06-07 19:52:33
- * @ Usage: CALL MWCONFIG.MERGE_MAPPING_GROUP(MAPPING_ID, ID, SOURCE, TARGET, INCLUDE_MAPPING_ID, INCLUDE_ID)
- */
- CREATE OR REPLACE PROCEDURE MERGE_MAPPING_GROUP (
- IN MAPPING_ID VARCHAR(256),
- IN ID BIGINT,
- IN SOURCE CLOB,
- IN TARGET CLOB,
- INCLUDE_MAPPING_ID VARCHAR(256),
- INCLUDE_ID BIGINT
- )
- BEGIN
- DECLARE SQL_STMT VARCHAR(10000);
- SET SQL_STMT = 'MERGE INTO MWCONFIG.MAPPING_GROUP AS T ' ||
- 'USING (VALUES (''' || MAPPING_ID || ''', ' || ID || ', ''' || SOURCE || ''', ''' || TARGET || ''', ' ||
- CASE
- WHEN INCLUDE_MAPPING_ID IS NULL THEN 'NULL'
- ELSE '''' || INCLUDE_MAPPING_ID || ''''
- END || ', ' ||
- CASE
- WHEN INCLUDE_ID IS NULL THEN 'NULL'
- ELSE '' || INCLUDE_ID || ''
- END || ')) AS S (MAPPING_ID, ID, SOURCE, TARGET, INCLUDE_MAPPING_ID, INCLUDE_ID) ' ||
- 'ON (T.MAPPING_ID = S.MAPPING_ID AND T.ID = S.ID) ' ||
- 'WHEN MATCHED THEN ' ||
- ' UPDATE SET ' ||
- ' T.SOURCE = S.SOURCE, ' ||
- ' T.TARGET = S.TARGET, ' ||
- ' T.INCLUDE_MAPPING_ID = S.INCLUDE_MAPPING_ID, ' ||
- ' T.INCLUDE_ID = S.INCLUDE_ID ' ||
- 'WHEN NOT MATCHED THEN ' ||
- ' INSERT (MAPPING_ID, ID, SOURCE, TARGET, INCLUDE_MAPPING_ID, INCLUDE_ID) ' ||
- ' VALUES (S.MAPPING_ID, S.ID, S.SOURCE, S.TARGET, S.INCLUDE_MAPPING_ID, S.INCLUDE_ID)';
- PREPARE STMT FROM SQL_STMT;
- EXECUTE STMT;
- END
- @
|