CREATE OR REPLACE FUNCTION f_validate_migrate_merchant(character varying)


SUBMITTED BY: fastrider

DATE: March 10, 2017, 11:42 a.m.

FORMAT: Text only

SIZE: 1.4 kB

HITS: 335

  1. RETURNS SETOF refcursor AS
  2. $BODY$
  3. DECLARE
  4. pRefErrorValidate REFCURSOR := 'errorValidate';
  5. pSessionId ALIAS FOR $1;
  6. vYes character varying := 'Y';
  7. vNo character varying := 'N';
  8. vEmptyChar character varying := '';
  9. BEGIN
  10. DELETE FROM temp_error_data WHERE session_id = pSessionId;
  11. /* update nilai flg_valid dan flg_migrate = N */
  12. UPDATE temp_supp_merchant
  13. SET flg_valid = vNo,
  14. flg_migrate = vNo
  15. WHERE flg_valid = vNo AND flg_migrate =vNo;
  16. SELECT A.merchant_code
  17. FROM temp_supp_merchant A
  18. WHERE EXIST(SELECT B.merchant_code FROM supp_merchant B
  19. WHERE A.merchant_code = B.merchant_code);
  20. IF FOUND THEN
  21. INSERT INTO temp_error_data(
  22. session_id, group_data, validasi_data, data)
  23. SELECT pSessionId, 'MERCHANT', 'KODE SUDAH ADA', merchant_code;
  24. END IF;
  25. IF NOT EXISTS(SELECT 1 FROM temp_error_data WHERE session_id = pSessionId) THEN
  26. UPDATE temp_supp_merchant
  27. SET flg_valid = vYes
  28. WHERE merchant_code = pSessionId
  29. AND flg_valid = vNo;
  30. END IF;
  31. Open pRefErrorValidate FOR
  32. SELECT session_id, group_data, validasi_data, data
  33. FROM temp_error_data
  34. WHERE data = merchant_code;
  35. RETURN NEXT pRefErrorValidate;
  36. DELETE FROM temp_error_data WHERE session_id = pSessionId;
  37. END;
  38. $BODY$
  39. LANGUAGE plpgsql VOLATILE
  40. COST 100
  41. ROWS 1000;
  42. /

comments powered by Disqus