Guest User

Untitled

a guest
Jan 17th, 2019
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.97 KB | None | 0 0
  1. CREATE OR REPLACE PROCEDURE proc1 (
  2. pCustId IN NUMBER,
  3. pAcctNo IN NUMBER,
  4. pSearchCriteria IN DATA_INPUTLIST,
  5. pRecordSet OUT SYS_REFCURSOR,
  6. out_error_code OUT NUMBER,
  7. out_error_message OUT VARCHAR2
  8. ) AS
  9.  
  10. --Variables
  11. v_SUN_DATE DATE := TO_DATE('01/15/2011', 'mm/dd/yyyy');
  12. vCount NUMBER := 0;
  13. v_mtn NUM
  14.  
  15. BER;
  16. v_mtn_eff_date DATE;
  17. cMtnPricePlanInfo DATA_RESULTLIST;
  18.  
  19. BEGIN
  20.  
  21. SELECT COUNT(*) INTO vCount FROM TABLE (pSearchCriteria);
  22.  
  23. FOR i IN 1..vCount LOOP
  24.  
  25. SELECT MTN, TO_DATE(MTN_EFF_DATE, 'mm/dd/yyyy') into v_mtn, v_mtn_eff_date
  26. FROM TABLE (pSearchCriteria)
  27. WHERE
  28. ROWNUM = i;
  29.  
  30. SELECT
  31. A.PPLAN_ID, A.EFF_DATE, A.MTN INTO cMtnPricePlanInfo(i).PPLAN_ID, cMtnPricePlanInfo(i).EFF_DATE, cMtnPricePlanInfo(i).MTN
  32. FROM CUST_ACCT_LINE_PPLAN A, CUST_ACCT_LINE_PPLAN_HIST B
  33. WHERE
  34. A.CUST_ID = pCustId
  35. AND A.ACCT_NO = pAcctNo
  36. AND A.MTN = v_mtn
  37. AND A.MTN_EFF_DATE = v_mtn_eff_date
  38. AND A.EFF_DATE >=
  39. (SELECT MAX(EFF_DATE) FROM CUST_ACCT_LINE_PPLAN_HIST C
  40. WHERE
  41. C.CUST_ID = pCustId
  42. AND C.ACCT_NO = pAcctNo
  43. AND C.MTN = v_mtn
  44. AND C.MTN_EFF_DATE = v_mtn_eff_date
  45. AND C.EFF_DATE <= v_SUN_DATE)
  46. AND A.CUST_ID = B.CUST_ID
  47. AND A.ACCT_NO = B.ACCT_NO
  48. AND A.MTN = B.MTN
  49. AND A.MTN_EFF_DATE = B.MTN_EFF_DATE
  50. AND A.PPLAN_ID = B.PPLAN_ID;
  51.  
  52. END LOOP;
  53. OPEN pRecordSet FOR
  54. SELECT * FROM TABLE (cMtnPricePlanInfo);
  55.  
  56. END;
  57. /
  58.  
  59. SELECT MTN, TO_DATE(MTN_EFF_DATE, 'mm/dd/yyyy') into v_mtn, v_mtn_eff_date
  60. FROM TABLE (pSearchCriteria)
  61. WHERE
  62. ROWNUM = i;
  63.  
  64. v_mtn := pSearchCriteria(i).MTN;
  65. v_mtn_eff_date := TO_DATE(pSearchCriteria(i).MTN_EFF_DATE, 'mm/dd/yyyy');
Add Comment
Please, Sign In to add comment