Create or Replace Multiple Query Store Procedure inn Oracle

  1. CREATE OR REPLACE PROCEDURE spr_Appr_SearchData (  
  2. vNACHDEST IN VARCHAR2,  
  3. vFLAGMASTER IN VARCHAR2,  
  4. vSearchText IN VARCHAR2,  
  5. vCetegory IN VARCHAR2,  
  6. vCondition IN VARCHAR2,  
  7. cur_Out OUT SYS_REFCURSOR  
  8. )  
  9. AS  
  10. mQuery VARCHAR2(4000);  
  11. mErr_Msg VARCHAR2(200);  
  12. BEGIN  
  13. -- Show Mandate base on UMRN----  
  14. IF (vCondition = 'All' AND vCetegory= 'UMRN'THEN  
  15. mQuery := 'SELECT MANDATE_DATE, IHNO, MANDATE_ID, CUST_REFNO, SCH_REFNO, UMRN, BANK_CODE, ACNO,'||  
  16. 'FREQUENCY, PERIOD, CUST_ID, TEL_NO, MOBILE_NO, MAIL_ID,B.CODE_DESC,UMRN,CUST_NAME,AC_TYPE,'||  
  17. ' ACNO,AMOUNT,START_DATE,END_DATE,A.STATUS,STATUS_CODE,COLLECTION_TYPE, '||  
  18. 'CUST_BANKNM FROM ' || vNACHDEST ||' A,'|| vFLAGMASTER ||' B WHERE B.ID(+)=''R'' AND A.STATUS_CODE=B.CODE(+) AND '||  
  19. ' NVL(TRIM(A.STATUS),'' '') <> '' '' AND UMRN='''|| vSearchText ||'''';  
  20. OPEN cur_Out FOR  
  21. mQuery;  
  22. ELSE IF (vCondition = 'Accepted' AND vCetegory= 'UMRN'THEN  
  23. mQuery := 'SELECT MANDATE_DATE, IHNO, MANDATE_ID, CUST_REFNO, SCH_REFNO, UMRN, BANK_CODE, ACNO,'||  
  24. 'FREQUENCY, PERIOD, CUST_ID, TEL_NO, MOBILE_NO, MAIL_ID,B.CODE_DESC,UMRN,CUST_NAME,AC_TYPE,'||  
  25. ' ACNO,AMOUNT,START_DATE,END_DATE,A.STATUS,STATUS_CODE,COLLECTION_TYPE, '||  
  26. 'CUST_BANKNM FROM ' || vNACHDEST ||' A,'|| vFLAGMASTER ||' B WHERE B.ID(+)=''R'' AND A.STATUS_CODE=B.CODE(+) AND '||  
  27. ' NVL(TRIM(A.STATUS),'' '') = ''A'' AND UMRN='''|| vSearchText ||'''';  
  28. OPEN cur_Out FOR  
  29. mQuery;  
  30. ELSE IF (vCondition = 'Rejected' AND vCetegory= 'UMRN'THEN  
  31. mQuery := 'SELECT MANDATE_DATE, IHNO, MANDATE_ID, CUST_REFNO, SCH_REFNO, UMRN, BANK_CODE, ACNO,'||  
  32. 'FREQUENCY, PERIOD, CUST_ID, TEL_NO, MOBILE_NO, MAIL_ID,B.CODE_DESC,UMRN,CUST_NAME,AC_TYPE,'||  
  33. ' ACNO,AMOUNT,START_DATE,END_DATE,A.STATUS,STATUS_CODE,COLLECTION_TYPE, '||  
  34. 'CUST_BANKNM FROM ' || vNACHDEST ||' A,'|| vFLAGMASTER ||' B WHERE B.ID(+)=''R'' AND A.STATUS_CODE=B.CODE(+) AND '||  
  35. ' NVL(TRIM(A.STATUS),'' '') = ''R'' AND UMRN='''|| vSearchText ||'''';  
  36. OPEN cur_Out FOR  
  37. mQuery;  
  38. -- Show Mandate base on Cust NAME----  
  39. ELSE IF (vCondition = 'All' AND vCetegory= 'NAME'THEN  
  40. mQuery := 'SELECT MANDATE_DATE, IHNO, MANDATE_ID, CUST_REFNO, SCH_REFNO, UMRN, BANK_CODE, ACNO,FREQUENCY, '||  
  41. 'PERIOD, CUST_ID, TEL_NO, MOBILE_NO, MAIL_ID,B.CODE_DESC,UMRN,CUST_NAME,AC_TYPE,ACNO,AMOUNT, '||  
  42. 'START_DATE,END_DATE,STATUS,STATUS_CODE,COLLECTION_TYPE,CUST_BANKNM FROM '|| vNACHDEST ||' A, '||  
  43. ''|| vFLAGMASTER ||' B WHERE B.ID(+)=''R'' AND A.STATUS_CODE=B.CODE(+) AND '||  
  44. ' NVL(TRIM(STATUS),'' '') <> '' '' AND CUST_NAME LIKE ''%'|| vSearchText ||'''';  
  45. OPEN cur_Out FOR  
  46. mQuery;  
  47. ELSE IF (vCondition = 'Accepted' AND vCetegory= 'NAME' ) THEN  
  48. mQuery := 'SELECT MANDATE_DATE, IHNO, MANDATE_ID, CUST_REFNO, SCH_REFNO, UMRN, BANK_CODE, ACNO,FREQUENCY, '||  
  49. 'PERIOD, CUST_ID, TEL_NO, MOBILE_NO, MAIL_ID,B.CODE_DESC,UMRN,CUST_NAME,AC_TYPE,ACNO,AMOUNT, '||  
  50. 'START_DATE,END_DATE,STATUS,STATUS_CODE,COLLECTION_TYPE,CUST_BANKNM FROM '|| vNACHDEST ||' A, '||  
  51. ''|| vFLAGMASTER ||' B WHERE B.ID(+)=''R'' AND A.STATUS_CODE=B.CODE(+) AND '||  
  52. ' NVL(TRIM(STATUS),'' '') = ''A'' AND CUST_NAME LIKE ''%'|| vSearchText ||'''';  
  53. OPEN cur_Out FOR  
  54. mQuery;  
  55. ELSE IF (vCondition = 'Rejected' AND vCetegory= 'NAME'THEN  
  56. mQuery := 'SELECT MANDATE_DATE, IHNO, MANDATE_ID, CUST_REFNO, SCH_REFNO, UMRN, BANK_CODE, ACNO,FREQUENCY, '||  
  57. 'PERIOD, CUST_ID, TEL_NO, MOBILE_NO, MAIL_ID,B.CODE_DESC,UMRN,CUST_NAME,AC_TYPE,ACNO,AMOUNT, '||  
  58. 'START_DATE,END_DATE,STATUS,STATUS_CODE,COLLECTION_TYPE,CUST_BANKNM FROM '|| vNACHDEST ||' A, '||  
  59. ''|| vFLAGMASTER ||' B WHERE B.ID(+)=''R'' AND A.STATUS_CODE=B.CODE(+) AND '||  
  60. ' NVL(TRIM(STATUS),'' '') = ''R'' AND CUST_NAME LIKE ''%'|| vSearchText ||'''';  
  61. OPEN cur_Out FOR  
  62. mQuery;  
  63. -- Show Mandate base on ACNO----  
  64. ELSE IF (vCondition = 'All' AND vCetegory= 'ACNO' ) THEN  
  65. mQuery := 'SELECT MANDATE_DATE, IHNO, MANDATE_ID, CUST_REFNO, SCH_REFNO, UMRN, BANK_CODE, ACNO,'||  
  66. 'FREQUENCY, PERIOD, CUST_ID, TEL_NO, MOBILE_NO, MAIL_ID,B.CODE_DESC,UMRN,CUST_NAME,AC_TYPE,ACNO,AMOUNT,'||  
  67. 'START_DATE,END_DATE,STATUS,STATUS_CODE,COLLECTION_TYPE,CUST_BANKNM FROM '|| vNACHDEST ||' A, '||  
  68. ''|| vFLAGMASTER ||' B WHERE B.ID(+)=''R'' AND A.STATUS_CODE=B.CODE(+) AND '||  
  69. ' NVL(TRIM(STATUS),'' '') <> '' '' AND ACNO='''|| vSearchText ||'''';  
  70. OPEN cur_Out FOR  
  71. mQuery;  
  72. ELSE IF (vCondition = 'Accepted' AND vCetegory= 'ACNO'THEN  
  73. mQuery := 'SELECT MANDATE_DATE, IHNO, MANDATE_ID, CUST_REFNO, SCH_REFNO, UMRN, BANK_CODE, ACNO,'||  
  74. 'FREQUENCY, PERIOD, CUST_ID, TEL_NO, MOBILE_NO, MAIL_ID,B.CODE_DESC,UMRN,CUST_NAME,AC_TYPE,ACNO,AMOUNT,'||  
  75. 'START_DATE,END_DATE,STATUS,STATUS_CODE,COLLECTION_TYPE,CUST_BANKNM FROM '|| vNACHDEST ||' A, '||  
  76. ''|| vFLAGMASTER ||' B WHERE B.ID(+)=''R'' AND A.STATUS_CODE=B.CODE(+) AND '||  
  77. ' NVL(TRIM(STATUS),'' '') = ''A'' AND ACNO='''|| vSearchText ||'''';  
  78. OPEN cur_Out FOR  
  79. mQuery;  
  80. ELSE IF (vCondition = 'Rejected' AND vCetegory= 'ACNO'THEN  
  81. mQuery := 'SELECT MANDATE_DATE, IHNO, MANDATE_ID, CUST_REFNO, SCH_REFNO, UMRN, BANK_CODE, ACNO,'||  
  82. 'FREQUENCY, PERIOD, CUST_ID, TEL_NO, MOBILE_NO, MAIL_ID,B.CODE_DESC,UMRN,CUST_NAME,AC_TYPE,ACNO,AMOUNT,'||  
  83. 'START_DATE,END_DATE,STATUS,STATUS_CODE,COLLECTION_TYPE,CUST_BANKNM FROM '|| vNACHDEST ||' A, '||  
  84. ''|| vFLAGMASTER ||' B WHERE B.ID(+)=''R'' AND A.STATUS_CODE=B.CODE(+) AND '||  
  85. ' NVL(TRIM(STATUS),'' '') = ''R'' AND ACNO='''|| vSearchText ||'''';  
  86. OPEN cur_Out FOR  
  87. mQuery;  
  88. END IF;  
  89. END IF;  
  90. END IF;  
  91. END IF;  
  92. END IF;  
  93. END IF;  
  94. END IF;  
  95. END IF;  
  96. END IF;  
  97. EXCEPTION  
  98. WHEN OTHERS THEN  
  99. dbms_output.put_line(';SQLERRM = ' || SQLERRM);  
  100. mErr_Msg := SQLERRM;  
  101. OPEN cur_Out FOR  
  102. SELECT ';FAILED#' || mErr_Msg "Status" from dual;  
  103. ROLLBACK;  
  104. END;