Advertisement
Guest User

Untitled

a guest
Jun 28th, 2016
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.03 KB | None | 0 0
  1. DECLARE
  2. l_ish_nos pesp_ifce_svc_hist.ish_nos%TYPE;
  3. l_ish_nos_ant pesp_ifce_svc_hist.ish_nos%TYPE;
  4. l_solicitud pesp_ifce_svc_hist.sol_nro_solic%TYPE := 1013125;
  5. l_renglon pesp_ifce_svc_hist.ren_nro_renglon%TYPE := 1;
  6. l_error VARCHAR2 (1000) := NULL;
  7.  
  8. CURSOR c_svc_hist (
  9. p_solicitud NUMBER,
  10. p_renglon NUMBER,
  11. p_ish_nos NUMBER
  12. )
  13. IS
  14. SELECT tpe_codigo,
  15. ish_nos,
  16. tmv_cod_os_trasos,
  17. ish_npa,
  18. ish_nxx,
  19. ish_line,
  20. ish_ctrol_date,
  21. ish_eff_date,
  22. ish_contac_date,
  23. ish_cliente,
  24. ish_cuenta,
  25. ish_domi_codigo_i,
  26. ish_geo_codigo_i,
  27. ish_tipg_codigo_i,
  28. ish_foto,
  29. ish_old_npa,
  30. ish_old_nxx,
  31. ish_old_line,
  32. ish_old_cntl_date,
  33. ish_fec_fact,
  34. ish_iva_svc,
  35. ish_tmov,
  36. srv_codigo,
  37. sol_nro_solic,
  38. ren_nro_renglon,
  39. ish_mov_sigeco,
  40. ish_cliente_usu,
  41. ish_cuenta_usu,
  42. ish_domi_codigo_dist,
  43. ish_geo_codigo_dist,
  44. ish_tipg_codigo_dist,
  45. fecha_creacion,
  46. usuario_creacion,
  47. fecha_ult_mod,
  48. usuario_ult_mod,
  49. ish_nro_tarjeta
  50. FROM pesp_ifce_svc_hist
  51. WHERE sol_nro_solic = p_solicitud
  52. AND ren_nro_renglon = p_renglon
  53. AND ish_nos = p_ish_nos;
  54.  
  55. c1 c_svc_hist%ROWTYPE;
  56.  
  57. CURSOR c_cgo_hist (p_ish_nos_ant NUMBER)
  58. IS
  59. SELECT tpe_codigo,
  60. ish_nos,
  61. tmv_cod_os_trasos,
  62. ihc_trans_code,
  63. ihc_seq,
  64. ihc_qty,
  65. ihc_recurrente,
  66. ihc_importe,
  67. ihc_cuotas,
  68. ihc_variable,
  69. ihc_operador,
  70. fecha_creacion,
  71. usuario_creacion,
  72. fecha_ult_mod,
  73. usuario_ult_mod,
  74. ihc_prefix_code
  75. FROM pesp_ifce_cgo_hist
  76. WHERE ish_nos = p_ish_nos_ant;
  77.  
  78. c2 c_cgo_hist%ROWTYPE;
  79.  
  80. CURSOR c_com_hist (p_ish_nos_ant NUMBER)
  81. IS
  82. SELECT tpe_codigo,
  83. ish_nos,
  84. tmv_cod_os_trasos,
  85. ich_commision_code,
  86. ich_seq,
  87. ich_revised_qty_commision,
  88. ich_commision_trans_code,
  89. ich_commision_rate,
  90. ich_recurrente,
  91. fecha_creacion,
  92. usuario_creacion,
  93. fecha_ult_mod,
  94. usuario_ult_mod
  95. FROM pesp_ifce_com_hist
  96. WHERE ish_nos = p_ish_nos_ant;
  97.  
  98. c3 c_com_hist%ROWTYPE;
  99.  
  100. CURSOR c_rni_hist (p_ish_nos_ant NUMBER)
  101. IS
  102. SELECT tpe_codigo,
  103. ish_nos,
  104. tmv_cod_os_trasos,
  105. irh_npa,
  106. irh_nxx,
  107. irh_rngo_desde,
  108. irh_rngo_hasta,
  109. fecha_creacion,
  110. usuario_creacion,
  111. fecha_ult_mod,
  112. usuario_ult_mod
  113. FROM pesp_ifce_rni_hist
  114. WHERE ish_nos = p_ish_nos_ant;
  115.  
  116. c4 c_rni_hist%ROWTYPE;
  117. BEGIN
  118. FOR c1 IN (SELECT sol_nro_solic, ren_nro_renglon
  119. FROM pesp_renglon
  120. WHERE (sol_nro_solic, ren_nro_renglon) IN ( (l_solicitud, l_renglon)))
  121. LOOP
  122. l_solicitud := c1.sol_nro_solic;
  123. l_renglon := c1.ren_nro_renglon;
  124. l_ish_nos := l_solicitud || l_renglon || 999; --> si tira error de constraint, cambiar 888 por 777 o 999 etc
  125.  
  126. BEGIN
  127. SELECT ish_nos
  128. INTO l_ish_nos_ant
  129. FROM pesp_ifce_svc_hist
  130. WHERE sol_nro_solic = l_solicitud
  131. AND ren_nro_renglon = l_renglon
  132. AND ROWNUM = 1;
  133. EXCEPTION
  134. WHEN OTHERS
  135. THEN
  136. DBMS_OUTPUT.put_line ('Error' || SQLERRM);
  137. l_error := ('Error ' || SQLERRM);
  138. END;
  139.  
  140. BEGIN
  141. FOR c1 IN c_svc_hist (l_solicitud, l_renglon, l_ish_nos_ant)
  142. LOOP
  143. DBMS_OUTPUT.put_line (
  144. c1.tpe_codigo || '-' || TO_CHAR (l_ish_nos)
  145. );
  146.  
  147. INSERT INTO pesp_ifce_mov_svc (tpe_codigo,
  148. ims_nos,
  149. tmv_cod_os_trasos,
  150. ims_npa,
  151. ims_nxx,
  152. ims_line,
  153. ims_cntl_date,
  154. ims_eff_date,
  155. ims_contac_date,
  156. ims_cliente,
  157. ims_cuenta,
  158. ims_domi_codigo_i,
  159. ims_geo_codigo_i,
  160. ims_tipg_codigo_i,
  161. ims_foto,
  162. ims_old_npa,
  163. ims_old_nxx,
  164. ims_old_line,
  165. ims_old_cntl_date,
  166. ims_fec_fact,
  167. ims_iva_svc,
  168. ims_tmov,
  169. srv_codigo,
  170. sol_nro_solic,
  171. ren_nro_renglon,
  172. ims_mov_sigeco,
  173. ims_cliente_usu,
  174. ims_cuenta_usu,
  175. ims_domi_codigo_dist,
  176. ims_geo_codigo_dist,
  177. ims_tipg_codigo_dist,
  178. fecha_creacion,
  179. usuario_creacion,
  180. fecha_ult_mod,
  181. usuario_ult_mod,
  182. ims_nro_tarjeta)
  183. VALUES (c1.tpe_codigo,
  184. l_ish_nos,
  185. c1.tmv_cod_os_trasos,
  186. c1.ish_npa,
  187. c1.ish_nxx,
  188. c1.ish_line,
  189. c1.ish_ctrol_date,
  190. c1.ish_eff_date,
  191. c1.ish_contac_date,
  192. c1.ish_cliente,
  193. c1.ish_cuenta,
  194. c1.ish_domi_codigo_i,
  195. c1.ish_geo_codigo_i,
  196. c1.ish_tipg_codigo_i,
  197. 'N',
  198. c1.ish_old_npa,
  199. c1.ish_old_nxx,
  200. c1.ish_old_line,
  201. c1.ish_old_cntl_date,
  202. c1.ish_fec_fact,
  203. c1.ish_iva_svc,
  204. c1.ish_tmov,
  205. c1.srv_codigo,
  206. c1.sol_nro_solic,
  207. c1.ren_nro_renglon,
  208. c1.ish_mov_sigeco,
  209. c1.ish_cliente_usu,
  210. c1.ish_cuenta_usu,
  211. c1.ish_domi_codigo_dist,
  212. c1.ish_geo_codigo_dist,
  213. c1.ish_tipg_codigo_dist,
  214. c1.fecha_creacion,
  215. c1.usuario_creacion,
  216. SYSDATE,
  217. USER,
  218. c1.ish_nro_tarjeta);
  219. END LOOP;
  220. EXCEPTION
  221. WHEN OTHERS
  222. THEN
  223. DBMS_OUTPUT.put_line ('Error en C1');
  224. DBMS_OUTPUT.put_line ('Error' || SQLERRM);
  225. l_error := ('Error ' || SQLERRM);
  226. END;
  227.  
  228. BEGIN
  229. FOR c2 IN c_cgo_hist (l_ish_nos_ant)
  230. LOOP
  231. INSERT INTO pesp_ifce_mov_cgo (tpe_codigo,
  232. ims_nos,
  233. imc_trans_code,
  234. imc_seq,
  235. imc_qty,
  236. imc_recurrente,
  237. imc_importe,
  238. imc_cuotas,
  239. imc_variable,
  240. imc_operador,
  241. fecha_creacion,
  242. usuario_creacion,
  243. fecha_ult_mod,
  244. usuario_ult_mod,
  245. imc_prefix_code)
  246. VALUES (c2.tpe_codigo,
  247. l_ish_nos,
  248. c2.ihc_trans_code,
  249. c2.ihc_seq,
  250. c2.ihc_qty,
  251. c2.ihc_recurrente,
  252. c2.ihc_importe,
  253. c2.ihc_cuotas,
  254. c2.ihc_variable,
  255. c2.ihc_operador,
  256. c2.fecha_creacion,
  257. c2.usuario_creacion,
  258. SYSDATE,
  259. USER,
  260. c2.ihc_prefix_code);
  261. END LOOP;
  262. EXCEPTION
  263. WHEN OTHERS
  264. THEN
  265. DBMS_OUTPUT.put_line ('Error en C2');
  266. DBMS_OUTPUT.put_line ('Error' || SQLERRM);
  267. l_error := ('Error ' || SQLERRM);
  268. END;
  269.  
  270. BEGIN
  271. FOR c3 IN c_com_hist (l_ish_nos_ant)
  272. LOOP
  273. INSERT INTO pesp_ifce_comision (tpe_codigo,
  274. ims_nos,
  275. ico_commision_code,
  276. ico_seq,
  277. ico_revised_qty_commision,
  278. ico_commision_trans_code,
  279. ico_commission_rate,
  280. ico_recurrente,
  281. fecha_creacion,
  282. usuario_creacion,
  283. fecha_ult_mod,
  284. usuario_ult_mod)
  285. VALUES (c3.tpe_codigo,
  286. l_ish_nos,
  287. c3.ich_commision_code,
  288. c3.ich_seq,
  289. c3.ich_revised_qty_commision,
  290. c3.ich_commision_trans_code,
  291. c3.ich_commision_rate,
  292. c3.ich_recurrente,
  293. c3.fecha_creacion,
  294. c3.usuario_creacion,
  295. SYSDATE,
  296. USER);
  297. END LOOP;
  298. EXCEPTION
  299. WHEN OTHERS
  300. THEN
  301. DBMS_OUTPUT.put_line ('Error en C3');
  302. DBMS_OUTPUT.put_line ('Error' || SQLERRM);
  303. l_error := ('Error ' || SQLERRM);
  304. END;
  305.  
  306. BEGIN
  307. FOR c4 IN c_rni_hist (l_ish_nos_ant)
  308. LOOP
  309. INSERT INTO pesp_ifce_mov_rni (tpe_codigo,
  310. ims_nos,
  311. imr_npa,
  312. imr_nxx,
  313. imr_rngo_desde,
  314. imr_rngo_hasta,
  315. fecha_creacion,
  316. usuario_creacion,
  317. fecha_ult_mod,
  318. usuario_ult_mod)
  319. VALUES (c4.tpe_codigo,
  320. l_ish_nos,
  321. c4.irh_npa,
  322. c4.irh_nxx,
  323. c4.irh_rngo_desde,
  324. c4.irh_rngo_hasta,
  325. c4.fecha_creacion,
  326. c4.usuario_creacion,
  327. SYSDATE,
  328. USER);
  329. END LOOP;
  330. EXCEPTION
  331. WHEN OTHERS
  332. THEN
  333. DBMS_OUTPUT.put_line ('Error en C4');
  334. DBMS_OUTPUT.put_line ('Error' || SQLERRM);
  335. l_error := ('Error ' || SQLERRM);
  336. END;
  337.  
  338. IF l_error IS NULL
  339. THEN
  340. DBMS_OUTPUT.put_line ('No Hice COMMIT!');
  341. ELSE
  342. ROLLBACK;
  343. DBMS_OUTPUT.put_line ('Hice ROLLBACK!');
  344. END IF;
  345. END LOOP;
  346. END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement