RETURNS SETOF refcursor AS
$BODY$
DECLARE
pRefErrorValidate REFCURSOR := 'errorValidate';
pSessionId ALIAS FOR $1;
vYes character varying := 'Y';
vNo character varying := 'N';
vEmptyChar character varying := '';
BEGIN
DELETE FROM temp_error_data WHERE session_id = pSessionId;
/* update nilai flg_valid dan flg_migrate = N */
UPDATE temp_supp_merchant
SET flg_valid = vNo,
flg_migrate = vNo
WHERE flg_valid = vNo AND flg_migrate =vNo;
SELECT A.merchant_code
FROM temp_supp_merchant A
WHERE EXIST(SELECT B.merchant_code FROM supp_merchant B
WHERE A.merchant_code = B.merchant_code);
IF FOUND THEN
INSERT INTO temp_error_data(
session_id, group_data, validasi_data, data)
SELECT pSessionId, 'MERCHANT', 'KODE SUDAH ADA', merchant_code;
END IF;
IF NOT EXISTS(SELECT 1 FROM temp_error_data WHERE session_id = pSessionId) THEN
UPDATE temp_supp_merchant
SET flg_valid = vYes
WHERE merchant_code = pSessionId
AND flg_valid = vNo;
END IF;
Open pRefErrorValidate FOR
SELECT session_id, group_data, validasi_data, data
FROM temp_error_data
WHERE data = merchant_code;
RETURN NEXT pRefErrorValidate;
DELETE FROM temp_error_data WHERE session_id = pSessionId;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100
ROWS 1000;
/