How to Create Multiple or Replace Procedure in Oracle

  1. CREATE  
  2. OR REPLACE PROCEDURE spr_SplitXml_H2H (  
  3. --vSFilename varchar2,  
  4. vformat varchar2,  
  5. vChk_Condition IN VARCHAR2,  
  6. vFilesize varchar2,  
  7. vFileAction varchar2,  
  8. vFDATE varchar2,  
  9. vProcessType varchar2,  
  10. vFileID varchar2,  
  11. vFileName varchar2,  
  12. vSplitlimit varchar2,  
  13. vFILE_MST_ID varchar2,  
  14. vSPLITFILE_DATE varchar2,  
  15. -------------EBT-----------------  
  16. vTYPE varchar2,  
  17. vGroupOFHeader varchar2,  
  18. vAmount varchar2,  
  19. vTXN_NO varchar2,  
  20. -------------EBT_CLILD------------  
  21. vCount varchar2,  
  22. vData varchar2,  
  23. cur_Out OUT SYS_REFCURSOR  
  24. AS mQuery varchar(4000);  
  25. mValidationMsg VARCHAR2(50);  
  26. vTXNTYPE varchar(50);  
  27. mErr_Msg VARCHAR2(200);  
  28. BEGIN -- select SPLIT_FILE....1  
  29. IF (  
  30. vChk_Condition = 'SelectFILE_MASTER'  
  31. THEN mQuery := 'select folder_Path from File_Master where [CATEGORY]=''' || || ''' and [FILE_TYPE]=''' || || ''' and [FILE_ACTION]=''SPLIT'' and [TXNTYPE]=' || vTXNTYPE || '';  
  32. open cur_Out for mQuery;  
  33. END IF;  
  34. -- select file master....2  
  35. IF (vChk_Condition = 'genrate_file'THEN mQuery := 'select * from file_master where CATEGORY=''' || || ''' AND TXNTYPE=''' || || '''';  
  36. open cur_Out for mQuery;  
  37. END IF;  
  38. --3 Query-------------  
  39. IF(  
  40. vChk_Condition = 'SplitFile_Details'  
  41. Then mQuery := 'select count(FILE_MST_ID) from SplitFile_Details where FILE_MST_ID=''' || || '''';  
  42. -- and Convert (varchar(10),[date],103) ='" + DateTime.Now.ToString("dd/MM/yyyy") + "'";  
  43. open cur_Out for mQuery;  
  44. END IF;  
  45. -------Ouery 4------------------  
  46. IF(vChk_Condition = 'GroupOFHeader'THEN mQuery := 'select GroupOFHeader from EBT_Master';  
  47. open cur_Out for mQuery;  
  48. END IF;  
  49. IF (vChk_Condition = 'insert_Xml'THEN mQuery := 'insert into File_Details(Filename ,[Filesize],FileAction,FDATE,TXNTYPE,ProcessType)' || -- values ('" + FileName + "','" + size + "','SPLIT',convert(datetime,'" + DateTime.Now.ToString("dd/MM/yyyy") + "',103),'" + type[6] + "','" + type[0] + type[1] + "')";  
  50. ' VALUES (:1,:2,:3,:4,:5,:6)';  
  51. EXECUTE IMMEDIATE mQuery USING vFilename,  
  52. vFilesize,  
  53. vFileAction,  
  54. vFDATE,  
  55. vTXNTYPE,  
  56. vProcessType;  
  57. COMMIT;  
  58. OPEN cur_out FOR  
  59. SELECT  
  60. 'SUCESSFULLY'  
  61. FROM  
  62. dual;  
  63. END IF;  
  64. ----------Query insert 2-------------  
  65. IF(vChk_Condition = 'insert_EBT'THEN mQuery := 'insert into EBT_master(TYPE,GroupOFHeader,Amount,TXN_NO)' || --values('"+type1+"','" + GroupHeader + "','" + amtResult + "','" + TxsCountResult + "')";  
  66. ' VALUES (:1,:2,:3,:4)';  
  67. EXECUTE IMMEDIATE mQuery USING vTYPE,  
  68. vGroupOFHeader,  
  69. vAmount,  
  70. vTXN_NO;  
  71. COMMIT;  
  72. OPEN cur_out FOR  
  73. SELECT  
  74. 'SUCESSFULLY'  
  75. FROM  
  76. dual;  
  77. END IF;  
  78. -------qUERY-----------  
  79. IF(  
  80. vChk_Condition = 'Insert_EBT_child'  
  81. THEN --query = "insert into SplitFile_Details (FileID,FileName,[FileSize],Date,FILE_MST_ID) values('" + fileid.ToString() + "','" + Path.GetFileName(path) + "','" + size1 + "',convert(datetime,'" + DateTime.Now.ToString("dd/MM/yyyy") + "',103),'" + FILE_MST_ID + "')";  
  82. mQuery := 'insert into EBT_child (Count,Data,Amount)' || -- values('" + i + "','" + match + "','" + match2.Groups[1].ToString() + "')";  
  83. ' VALUES (:1,:2,:3)';  
  84. EXECUTE IMMEDIATE mQuery USING vCount,  
  85. vData,  
  86. vAmount;  
  87. COMMIT;  
  88. OPEN cur_out FOR  
  89. SELECT  
  90. 'SUCESSFULLY'  
  91. FROM  
  92. dual;  
  93. END IF;  
  94. -------------------------------------------------  
  95. IF(  
  96. vChk_Condition = 'Insert_SplitFile_Details'  
  97. THEN mQuery := 'insert into SplitFile_Details (FileID,FileName,[FileSize],SPLITFILE_DATE,FILE_MST_ID)' || -- values('" + fileid.ToString() + "','" + Path.GetFileName(path) + "','" + size1 + "',convert(datetime,'" + DateTime.Now.ToString("dd/MM/yyyy") + "',103),'" + FILE_MST_ID + "')";  
  98. ' VALUES (:1,:2,:3,:4,:5)';  
  99. EXECUTE IMMEDIATE mQuery USING vFileID,  
  100. vFileName,  
  101. vFileSize,  
  102. vSPLITFILE_DATE,  
  103. vFILE_MST_ID;  
  104. COMMIT;  
  105. OPEN cur_out FOR  
  106. SELECT  
  107. 'SUCESSFULLY'  
  108. FROM  
  109. dual;  
  110. END IF;  
  111. ------------------------------------------------  
  112. IF(  
  113. vChk_Condition = 'Select_fileDetails'  
  114. THEN mQuery := 'select FileID from File_Details where Filename=''' || || '''';  
  115. open cur_Out for mQuery;  
  116. END IF;  
  117. ----QUERYsearch-------  
  118. IF(  
  119. vChk_Condition = 'insert_SplitFile_Details1'  
  120. THEN mQuery := 'insert into SplitFile_Details (FileID,FileName,[FileSize],Date,FILE_MST_ID)' || -- values('" + fileid1.ToString() + "','" + Path.GetFileName(path) + "','" + size2 + "',convert(datetime,'" + DateTime.Now.ToString("dd/MM/yyyy") + "',103),'" + FILE_MST_ID + "')";  
  121. ' VALUES (:1,:2,:3,:4,:5)';  
  122. EXECUTE IMMEDIATE mQuery USING vFileID,  
  123. vFileName,  
  124. vFileSize,  
  125. vSPLITFILE_DATE,  
  126. vFILE_MST_ID;  
  127. COMMIT;  
  128. OPEN cur_out FOR  
  129. SELECT  
  130. 'SUCESSFULLY'  
  131. FROM  
  132. dual;  
  133. END IF;  
  134. ------------------------------------------new---------------------------------------  
  135. IF(vChk_Condition = 'Delete'THEN mQuery := 'Delete from EBT_Child where Data=''' || || '''';  
  136. COMMIT;  
  137. OPEN cur_out FOR  
  138. SELECT  
  139. 'DELETE SUCESSFULLY'  
  140. FROM  
  141. dual;  
  142. END IF;  
  143. IF(  
  144. vChk_Condition = 'Xml_File_Details'  
  145. THEN mQuery := ' select FileID from File_Details where Filename=''' || || '''';  
  146. open cur_Out for mQuery;  
  147. END IF;  
  148. EXCEPTION WHEN OTHERS THEN dbms_output.put_line(';SQLERRM = ' || SQLERRM);  
  149. -- dbms_output.put_line(';SQLERRM = '; || SQLERRM);  
  150. mErr_Msg := SQLERRM;  
  151. OPEN cur_Out FOR  
  152. SELECT  
  153. ';FAILED#' || mErr_Msg "Status"  
  154. from  
  155. dual;  
  156. -- SELECT ';FAILED#'; || mErr_Msg "Status" from dual;  
  157. ROLLBACK;  
  158. END;  
  159. /