Produced by Araxis Merge on 10/17/2017 6:31:31 AM Central Daylight Time. See www.araxis.com for information about Merge. This report uses XHTML and CSS2, and is best viewed with a modern standards-compliant browser. For optimum results when printing this report, use landscape orientation and enable printing of background images and colours in your browser.
| # | Location | File | Last Modified |
|---|---|---|---|
| 1 | ADR FY17 Q4 Build 5 CIF submission.zip\ADR FY17 Q4 Build 5 CIF submission\ADR FY17 Q4 CIF submission\DDL\ADR | procedure.sql | Fri Sep 29 16:07:50 2017 UTC |
| 2 | ADR FY17 Q4 Build 5 CIF submission.zip\ADR FY17 Q4 Build 5 CIF submission\ADR FY17 Q4 CIF submission\DDL\ADR | procedure.sql | Mon Oct 16 18:15:11 2017 UTC |
| Description | Between Files 1 and 2 |
|
|---|---|---|
| Text Blocks | Lines | |
| Unchanged | 2 | 11146 |
| Changed | 1 | 2 |
| Inserted | 0 | 0 |
| Removed | 0 | 0 |
| Whitespace | |
|---|---|
| Character case | Differences in character case are significant |
| Line endings | Differences in line endings (CR and LF characters) are ignored |
| CR/LF characters | Not shown in the comparison detail |
No regular expressions were active.
| 1 | DROP PROCE DURE ADR.A CTIVEAGG_T RACKER_PRO C; | |
| 2 | ||
| 3 | CREATE OR REPLACE PR OCEDURE AD R.ACTIVEAG G_TRACKER_ PROC | |
| 4 | IS | |
| 5 | gc_sche ma_owner_n ame VARCHAR2 (20) := 'A DR'; | |
| 6 | v_parti tion_high_ val_date DATE; | |
| 7 | v_sql VARCHAR2 (2000); | |
| 8 | v_cut_o ff_date INTEGER : = 6; | |
| 9 | v_CURRE NT_ACTIVE_ DATE DATE; | |
| 10 | v_PREVI OUS_ACTIVE _DATE DATE; | |
| 11 | BEGIN | |
| 12 | SELECT CURRENT_AC TIVE_DATE, PREVIOUS_ ACTIVE_DAT E | |
| 13 | INTO v_CURRENT_ ACTIVE_DAT E, v_PREVI OUS_ACTIVE _DATE | |
| 14 | FROM ADR.ACTIVE AGG_TRACKE R | |
| 15 | WHERE LOADING_ST ATUS = 'YE S'; | |
| 16 | ||
| 17 | ADRMGT. Job_Proces s_Log_Sp ( PC_job_nam e => SUBSTR ('ACTIVEA GG_TRACKER _AUR_TRGR' , 1, 60), | |
| 18 | PD_job_log _date => SYSDAT E, | |
| 19 | PC_job_sta tus => 'SUCCE SS', | |
| 20 | PC_JOB_LOG _MESSAGE => SUBSTR ( 'v_CU RRENT_ACTI VE_DATE : ' | |
| 21 | || v_CUR RENT_ACTIV E_DATE | |
| 22 | || ' v_P REVIOUS_AC TIVE_DATE: ' | |
| 23 | || v_PRE VIOUS_ACTI VE_DATE, | |
| 24 | 1, | |
| 25 | 60)); | |
| 26 | ||
| 27 | FOR r I N (SELECT table_name , | |
| 28 | partition_ name, | |
| 29 | high_value , | |
| 30 | interval | |
| 31 | FROM user_tab_p artitions | |
| 32 | WHERE UPPER (tab le_name) = ('ACTIVEA GG')) | |
| 33 | LOOP | |
| 34 | EXEC UTE IMMEDI ATE | |
| 35 | 'SELECT ' | |
| 36 | | | r.high_v alue | |
| 37 | | | ' from d ual' | |
| 38 | I NTO v_part ition_high _val_date; | |
| 39 | ||
| 40 | IF (TRUNC (v_partiti on_high_va l_date) < TRUNC (v_C URRENT_ACT IVE_DATE - v_cut_off _date)) | |
| 41 | A ND TRUNC ( v_partitio n_high_val _date) <> TRUNC (v_P REVIOUS_AC TIVE_DATE) | |
| 42 | THEN | |
| 43 | I F r.interv al = 'NO' | |
| 44 | T HEN | |
| 45 | v_sql := | |
| 46 | 'A LTER TABLE ' | |
| 47 | || gc _schema_ow ner_name | |
| 48 | || '. ' | |
| 49 | || r. table_name | |
| 50 | || ' TRUNCATE P ARTITION ' | |
| 51 | || r. partition_ name; | |
| 52 | ||
| 53 | ADRMGT.J ob_Process _Log_Sp (P C_job_name => SUBSTR ('ACTIVEAG G_TRACKER_ AUR_TRGR', 1, 60), | |
| 54 | P D_job_log_ date => SYSDATE , | |
| 55 | P C_job_stat us => 'SUCCES S', | |
| 56 | P C_JOB_LOG_ MESSAGE => SUBSTR ( v_sql | |
| 57 | || ' ' | |
| 58 | || v_part ition_high _val_date, | |
| 59 | 1, | |
| 60 | 60)); | |
| 61 | ||
| 62 | EXECUTE IMMEDIATE v_sql; | |
| 63 | E LSE | |
| 64 | v_sql := | |
| 65 | 'A LTER TABLE ' | |
| 66 | || gc _schema_ow ner_name | |
| 67 | || '. ' | |
| 68 | || r. table_name | |
| 69 | || ' DROP PARTI TION ' | |
| 70 | || r. partition_ name; | |
| 71 | ||
| 72 | ADRMGT.J ob_Process _Log_Sp (P C_job_name => SUBSTR ('ACTIVEAG G_TRACKER_ AUR_TRGR', 1, 60), | |
| 73 | P D_job_log_ date => SYSDATE , | |
| 74 | P C_job_stat us => 'SUCCES S', | |
| 75 | P C_JOB_LOG_ MESSAGE => SUBSTR ( v_sql | |
| 76 | || ' ' | |
| 77 | || v_part ition_high _val_date, | |
| 78 | 1, | |
| 79 | 60)); | |
| 80 | ||
| 81 | EXECUTE IMMEDIATE v_sql; | |
| 82 | E ND IF; | |
| 83 | END IF; | |
| 84 | END LOO P; | |
| 85 | EXCEPTION | |
| 86 | WHEN NO _DATA_FOUN D | |
| 87 | THEN | |
| 88 | ADRM GT.Job_Pro cess_Log_S p ( | |
| 89 | P C_job_name => SUBSTR ('ACTIVEAG G_TRACKER_ AUR_TRGR', 1, 60), | |
| 90 | P D_job_log_ date => SYSDATE , | |
| 91 | P C_job_stat us => 'SUCCES S', | |
| 92 | P C_JOB_LOG_ MESSAGE => SUBSTR ('Nothing to drop; n o record F OUND in AD r.ACTIVEAG G_TRACKER WHERE LOA DING_STATU S = ''YES' '', 1, 60) ); | |
| 93 | WHEN OT HERS | |
| 94 | THEN | |
| 95 | ADRM GT.Job_Pro cess_Log_S p (PC_job_ name => SUB STR ('ACTI VEAGG_TRAC KER_AUR_TR GR', 1, 60 ), | |
| 96 | PD_job_ log_date => SYS DATE, | |
| 97 | PC_job_ status => 'PA RTITION DR OP FAILED' , | |
| 98 | PC_JOB_ LOG_MESSAG E => SUB STR ( DB MS_UTILITY .FORMAT_CA LL_STACK | |
| 99 | || DB MS_UTILITY .format_er ror_stack | |
| 100 | || DB MS_UTILITY .format_er ror_backtr ace, | |
| 101 | 1, | |
| 102 | 60)); | |
| 103 | END ACTIVE AGG_TRACKE R_PROC; | |
| 104 | / | |
| 105 | DROP PROCE DURE ADR.A DR_ADDRESS _Z05_UPDAT E_SP; | |
| 106 | ||
| 107 | CREATE OR REPLACE PR OCEDURE AD R.Adr_Addr ess_Z05_Up date_Sp | |
| 108 | (PB_run_ standalone | |
| 109 | IN BOOLEAN DEFAULT FA LSE, | |
| 110 | PB_allo w_rpt_inst | |
| 111 | IN BOOLEAN DEFAULT FA LSE | |
| 112 | ) | |
| 113 | IS | |
| 114 | ||
| 115 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 116 | -- * Proce dure: Adr_ Address_Z0 5_Update_S p | |
| 117 | -- * | |
| 118 | -- * Temp orary 3.1 Address ta ble bug fi x to be ru n nightly. | |
| 119 | -- * | |
| 120 | -- * - Se lects all temporary Address re cords wher e the Inst itution_id or the | |
| 121 | -- * Ad dress_chan ge_src_typ e_id is NU LL | |
| 122 | -- * - If Instituti on_id is N ULL, try t o find val id Institu tion_id an d update | |
| 123 | -- * co lumn with new value. | |
| 124 | -- * - Re port any r ows where the Instit ution_id c annot be s et. | |
| 125 | -- * - If Address_c hange_src_ type_id is NULL, upd ate column with valu e of | |
| 126 | -- * 14 66952 | |
| 127 | -- * | |
| 128 | -- * Param eters: | |
| 129 | -- * | |
| 130 | -- * PB_r un_standal one Igno re DBMS_JO B logic fo r checking running j obs. | |
| 131 | -- * Def ault: FALS E | |
| 132 | -- * | |
| 133 | -- * PB_a llow_rpt_i nst Allo w stored p rocedure t o be submi tted in th e | |
| 134 | -- * DBMS _JOB queue on the AD R reportin g database s | |
| 135 | -- * Def ault: FALS E | |
| 136 | -- * | |
| 137 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 138 | -- | |
| 139 | -- ======= ========== ========== ========== ========== ========== ========== ======== | |
| 140 | -- Date Autho r Descrip tion | |
| 141 | -- ======= ========== ========== ========== ========== ========== ========== ======== | |
| 142 | -- 04/05/2 010 Craig Wood Created for CCR 1 156. | |
| 143 | -- 05/03/2 010 Craig Wood Add log ic to chec k for merg ed address rows | |
| 144 | -- | |
| 145 | -- ======= ========== ========== ========== ========== ========== ========== ======== | |
| 146 | ||
| 147 | -- CONSTAN TS | |
| 148 | ||
| 149 | CC_temp_ addr_id C ONSTANT NU MBER := 14 49005; | |
| 150 | CC_inst_ id_mask C ONSTANT VA RCHAR2(5) := 'VAMC-' ; | |
| 151 | CN_addr_ chg_src_ty pe C ONSTANT NU MBER := 14 66952; | |
| 152 | ||
| 153 | -- VARIABL ES | |
| 154 | ||
| 155 | VB_allow _rpt_inst B OOLEAN := FALSE; | |
| 156 | VB_error B OOLEAN := FALSE; | |
| 157 | VB_run_s tandalone B OOLEAN := FALSE; | |
| 158 | VB_updat e_row B OOLEAN := FALSE; | |
| 159 | ||
| 160 | VC_allow _rpt_inst V ARCHAR2(5) := NULL; | |
| 161 | VC_insta nce_name V ARCHAR2(16 ); | |
| 162 | VC_proce ss_duratio n V ARCHAR2(25 ); | |
| 163 | VC_proce ss_name V ARCHAR2(60 ) := 'ADR Update Tem p Addresse s (Z05)'; | |
| 164 | VC_run_s tandalone V ARCHAR2(5) := NULL; | |
| 165 | ||
| 166 | VD_log_d ate D ATE; | |
| 167 | VD_proce ss_end_dat e D ATE; | |
| 168 | VD_proce ss_start_d ate D ATE; | |
| 169 | VD_rec_g roup_date D ATE; | |
| 170 | ||
| 171 | VN_addr_ chg_src_ty pe_id N UMBER := 0 ; | |
| 172 | VN_job_c ount N UMBER := 0 ; | |
| 173 | VN_job_n umber N UMBER := 0 ; | |
| 174 | VN_inst_ id_upd_cou nt N UMBER := 0 ; | |
| 175 | VN_error _recs_coun t N UMBER := 0 ; | |
| 176 | VN_no_in st_id_coun t N UMBER := 0 ; | |
| 177 | VN_rec_c ount N UMBER := 0 ; | |
| 178 | VN_src_t ype_upd_co unt N UMBER := 0 ; | |
| 179 | VN_std_i nstitution _id N UMBER := 0 ; | |
| 180 | VN_total _recs_coun t N UMBER := 0 ; | |
| 181 | ||
| 182 | CURSOR C _addr_rec IS | |
| 183 | SELECT A.Addr ess_id, | |
| 184 | A.Pers on_id, | |
| 185 | A.Addr ess_change _src_type_ id, | |
| 186 | A.Std_ institutio n_id, | |
| 187 | A.Reco rd_created _by, | |
| 188 | A.Reco rd_modifie d_by | |
| 189 | FROM ADR.Ad dress A | |
| 190 | WHERE A.Std_ addresstyp e_id = CC_ temp_addr_ id | |
| 191 | AND (Std_i nstitution _id IS NUL L | |
| 192 | OR | |
| 193 | Addre ss_change_ src_type_i d IS NULL) ; | |
| 194 | ||
| 195 | -- ******* ********** ********** ********** ********** ********** ********** ******* | |
| 196 | -- * | |
| 197 | -- * MAIN PROCEDURE : | |
| 198 | -- * | |
| 199 | -- * AD R.Adr_Addr ess_Z05_Up date_Sp | |
| 200 | -- * | |
| 201 | -- ******* ********** ********** ********** ********** ********** ********** ******* | |
| 202 | ||
| 203 | BEGIN | |
| 204 | ||
| 205 | VD_rec_g roup_date := TRUNC(S YSDATE); | |
| 206 | ||
| 207 | VD_log_d ate := SYS DATE; | |
| 208 | ADRMGT.J ob_Process _Log_Sp(PC _job_name => SUBSTR( VC_process _name,1,60 ), | |
| 209 | PD _job_log_d ate => VD_ log_date, | |
| 210 | PC _job_statu s => SUBST R('Process Initiatio n',1,60), | |
| 211 | PD _date1 => VD_rec_gro up_date, | |
| 212 | PC _text1 => SUBSTR('Da te1 column contains the daily process st art date', 1,255)); | |
| 213 | ||
| 214 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 215 | -- * | |
| 216 | -- * Valid ate input parameters | |
| 217 | -- * | |
| 218 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 219 | ||
| 220 | -- * Check run stand alone flag | |
| 221 | ||
| 222 | IF PB_ru n_standalo ne IS NULL | |
| 223 | OR NOT PB_run_sta ndalone TH EN | |
| 224 | ||
| 225 | VB_run _standalon e := FALSE ; | |
| 226 | VC_run _standalon e := 'FALS E'; -- use d for log message, b oolean can 't be disp layed | |
| 227 | ||
| 228 | ELSE | |
| 229 | ||
| 230 | VB_run _standalon e := TRUE; | |
| 231 | VC_run _standalon e := 'TRUE '; -- used for log m essage, bo olean can' t be displ ayed | |
| 232 | ||
| 233 | END IF; | |
| 234 | ||
| 235 | -- * Check run on re port insta nce flag | |
| 236 | ||
| 237 | IF PB_al low_rpt_in st IS NULL | |
| 238 | OR NOT PB_allow_r pt_inst TH EN | |
| 239 | ||
| 240 | VB_all ow_rpt_ins t := FALSE ; | |
| 241 | VC_all ow_rpt_ins t := 'FALS E'; -- use d for log message, b oolean can 't be disp layed | |
| 242 | ||
| 243 | ELSE | |
| 244 | ||
| 245 | VB_all ow_rpt_ins t := TRUE; | |
| 246 | VC_all ow_rpt_ins t := 'TRUE '; -- used for log m essage, bo olean can' t be displ ayed | |
| 247 | ||
| 248 | END IF; | |
| 249 | ||
| 250 | VD_log_d ate := SYS DATE; | |
| 251 | ADRMGT.J ob_Process _Log_Sp(PC _job_name => SUBSTR( VC_process _name,1,60 ), | |
| 252 | PD _job_log_d ate => VD_ log_date, | |
| 253 | PC _job_statu s => SUBST R('INFORMA TION - Pro cessing pa rameters f or this jo b',1,60), | |
| 254 | PC _job_log_m essage => SUBSTR('Cu rrent job parameters - ' | |
| 255 | || ' R un standal one: ' || VC_run_sta ndalone | |
| 256 | || ' R un on repo rting data bases: ' | | VC_allow _rpt_inst, 1,2000), | |
| 257 | PD _date1 => VD_rec_gro up_date, | |
| 258 | PC _text1 => SUBSTR('Da te1 column contains the daily process st art date', 1,255)); | |
| 259 | ||
| 260 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 261 | -- * | |
| 262 | -- * Check to see if process i s running on a repor ting datab ase. | |
| 263 | -- * - If VB_allow_ rpt_inst i s FALSE, t hen it's n ot allowed . End the job. | |
| 264 | -- * | |
| 265 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 266 | ||
| 267 | IF NOT V B_allow_rp t_inst THE N | |
| 268 | ||
| 269 | BEGIN | |
| 270 | ||
| 271 | VD_l og_date := SYSDATE; | |
| 272 | ADRM GT.Job_Pro cess_Log_S p(PC_job_n ame => SUB STR(VC_pro cess_name, 1,60), | |
| 273 | PD_job_l og_date => VD_log_da te, | |
| 274 | PC_job_s tatus => S UBSTR('INF ORMATION - Checking if running on a repo rting data base',1,60 ), | |
| 275 | PD_date1 => VD_rec _group_dat e, | |
| 276 | PC_text1 => SUBSTR ('Date1 co lumn conta ins the da ily proces s start da te',1,255) ); | |
| 277 | ||
| 278 | SELE CT Inst ance_name | |
| 279 | INTO VC_i nstance_na me | |
| 280 | FROM V$in stance; | |
| 281 | ||
| 282 | IF U PPER(SUBST R(VC_insta nce_name,1 ,4)) = 'AD RR' THEN | |
| 283 | ||
| 284 | VD _log_date := SYSDATE ; | |
| 285 | AD RMGT.Job_P rocess_Log _Sp(PC_job _name => S UBSTR(VC_p rocess_nam e,1,60), | |
| 286 | PD_job _log_date => VD_log_ date, | |
| 287 | PC_job _status => SUBSTR('W ARNING - Process ing Failed ',1,60), | |
| 288 | PC_job _log_messa ge => SUBS TR('Attemp ting to ru n on a rep orting ins tance. Ins tance name : ' | |
| 289 | || VC_inst ance_name | |
| 290 | || '. This job has b een termin ated. To r un on a re porting in stance,' | |
| 291 | || ' set p arameter V B_allow_rp t_inst to TRUE and r esubmit th e job.',1, 2000), | |
| 292 | PD_dat e1 => VD_r ec_group_d ate, | |
| 293 | PC_tex t1 => SUBS TR('Date1 column con tains the daily proc ess start date',1,25 5)); | |
| 294 | ||
| 295 | RE TURN; | |
| 296 | ||
| 297 | END IF; | |
| 298 | ||
| 299 | EXCEPT ION | |
| 300 | ||
| 301 | WHEN OTHERS TH EN | |
| 302 | ||
| 303 | VD _log_date := SYSDATE ; | |
| 304 | AD RMGT.Job_P rocess_Log _Sp(PC_job _name => S UBSTR(VC_p rocess_nam e,1,60), | |
| 305 | PD_job _log_date => VD_log_ date, | |
| 306 | PC_job _status => SUBSTR('E RROR - Unable to retriev e instance name',1,6 0), | |
| 307 | PC_job _log_messa ge => SUBS TR('Termin ating scri pt.',1,200 0), | |
| 308 | PD_dat e1 => VD_r ec_group_d ate, | |
| 309 | PC_tex t1 => SUBS TR('Date1 column con tains the daily proc ess start date',1,25 5)); | |
| 310 | ||
| 311 | RE TURN; | |
| 312 | ||
| 313 | END; | |
| 314 | ||
| 315 | END IF; | |
| 316 | ||
| 317 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 318 | -- * | |
| 319 | -- * Check to see if the job h as already run today | |
| 320 | -- * - If running i n stand-al one mode, don't chec k. | |
| 321 | -- * - Ot herwise, i f job has already ru n today, t hen exit t he job. | |
| 322 | -- * | |
| 323 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 324 | ||
| 325 | IF NOT P B_run_stan dalone THE N | |
| 326 | ||
| 327 | BEGIN | |
| 328 | ||
| 329 | SELE CT COUN T(*) | |
| 330 | INTO VN_r ec_count | |
| 331 | FROM ADRM GT.Job_Pro cess_Logs | |
| 332 | WHER E Job_ name = VC_ process_na me | |
| 333 | AND Date 1 = VD_rec _group_dat e | |
| 334 | AND Job_ status = ' SUCCESS - Proces sing Compl eted'; | |
| 335 | ||
| 336 | IF V N_rec_coun t > 0 THEN | |
| 337 | ||
| 338 | VD _log_date := SYSDATE ; | |
| 339 | AD RMGT.Job_P rocess_Log _Sp(PC_job _name => S UBSTR(VC_p rocess_nam e,1,60), | |
| 340 | PD_job _log_date => VD_log_ date, | |
| 341 | PC_job _status => SUBSTR('I NFORMATION - This da te has alr eady been processed' ,1,60), | |
| 342 | PC_job _log_messa ge => SUBS TR('Proces sing has a lready com pleted for this date . Exiting to job que ue.',1,200 0), | |
| 343 | PD_dat e1 => VD_r ec_group_d ate, | |
| 344 | PC_tex t1 => SUBS TR('Date1 column con tains the daily proc ess start date',1,25 5)); | |
| 345 | ||
| 346 | RE TURN; | |
| 347 | ||
| 348 | END IF; | |
| 349 | ||
| 350 | EXCEPT ION | |
| 351 | ||
| 352 | WHEN OTHERS TH EN | |
| 353 | ||
| 354 | VD _log_date := SYSDATE ; | |
| 355 | AD RMGT.Job_P rocess_Log _Sp(PC_job _name => S UBSTR(VC_p rocess_nam e,1,60), | |
| 356 | PD_job _log_date => VD_log_ date, | |
| 357 | PC_job _status => SUBSTR('E RROR - Unable to verify if job has already r un',1,60), | |
| 358 | PC_job _log_messa ge => SUBS TR('Termin ating scri pt.',1,200 0), | |
| 359 | PD_dat e1 => VD_r ec_group_d ate, | |
| 360 | PC_tex t1 => SUBS TR('Date1 column con tains the daily proc ess start date',1,25 5)); | |
| 361 | ||
| 362 | RE TURN; | |
| 363 | ||
| 364 | END; | |
| 365 | ||
| 366 | END IF; | |
| 367 | ||
| 368 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 369 | -- * | |
| 370 | -- * Check to see if any other jobs of t his proced ure are ru nning. | |
| 371 | -- * - If yes, then end this job. | |
| 372 | -- * | |
| 373 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 374 | ||
| 375 | SELECT C OUNT(*) | |
| 376 | INTO V N_job_coun t | |
| 377 | FROM S YS.DBA_JOB S_RUNNING R, | |
| 378 | S YS.DBA_JOB S J | |
| 379 | WHERE J .JOB = R.J OB | |
| 380 | AND U PPER(J.WHA T) LIKE '% ADR_ADDRES S_Z05_UPDA TE_SP%'; | |
| 381 | ||
| 382 | IF VN_jo b_count > 1 THEN | |
| 383 | ||
| 384 | VD_log _date := S YSDATE; | |
| 385 | ADRMGT .Job_Proce ss_Log_Sp( PC_job_nam e => SUBST R(VC_proce ss_name,1, 60), | |
| 386 | PD_job_log _date => V D_log_date , | |
| 387 | PC_job_sta tus => SUB STR('WARNI NG - C heck for r unning job s',1,60), | |
| 388 | PC_job_log _message = > SUBSTR(' There is a nother add ress (Z05) update jo b running. ' | |
| 389 | || ' Exiting j ob without running.' ,1,2000), | |
| 390 | PD_date1 = > VD_rec_g roup_date, | |
| 391 | PC_text1 = > SUBSTR(' Date1 colu mn contain s the dail y process start date ',1,255)); | |
| 392 | ||
| 393 | RETURN ; | |
| 394 | ||
| 395 | ELSE | |
| 396 | ||
| 397 | IF VB_ run_standa lone THEN | |
| 398 | ||
| 399 | VD_l og_date := SYSDATE; | |
| 400 | ADRM GT.Job_Pro cess_Log_S p(PC_job_n ame => SUB STR(VC_pro cess_name, 1,60), | |
| 401 | PD_job_l og_date => VD_log_da te, | |
| 402 | PC_job_s tatus => S UBSTR('INF ORMATION - Starting in STANDAL ONE mode', 1,60), | |
| 403 | PD_date1 => VD_rec _group_dat e, | |
| 404 | PC_text1 => SUBSTR ('Date1 co lumn conta ins the da ily proces s start da te',1,255) ); | |
| 405 | ||
| 406 | ELSE | |
| 407 | ||
| 408 | SELE CT MAX( J.Job) | |
| 409 | INTO VN_j ob_number | |
| 410 | FROM SYS. DBA_JOBS_R UNNING R, | |
| 411 | SYS. DBA_JOBS J | |
| 412 | WHER E J.JO B = R.JOB | |
| 413 | AND UPPE R(J.WHAT) LIKE '%ADR _ADDRESS_Z 05_UPDATE_ SP%'; | |
| 414 | ||
| 415 | VD_l og_date := SYSDATE; | |
| 416 | ADRM GT.Job_Pro cess_Log_S p(PC_job_n ame => SUB STR(VC_pro cess_name, 1,60), | |
| 417 | PD_job_l og_date => VD_log_da te, | |
| 418 | PC_job_s tatus => S UBSTR('INF ORMATION - Starting in DBMS_JO B mode',1, 60), | |
| 419 | PD_date1 => VD_rec _group_dat e, | |
| 420 | PC_text1 => SUBSTR ('Date1 co lumn conta ins the da ily proces s start da te',1,255) ); | |
| 421 | ||
| 422 | END IF ; | |
| 423 | ||
| 424 | END IF; | |
| 425 | ||
| 426 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 427 | -- * | |
| 428 | -- * Main processing loop | |
| 429 | -- * | |
| 430 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 431 | ||
| 432 | VN_error _recs_coun t := 0; | |
| 433 | VN_inst_ id_upd_cou nt := 0; | |
| 434 | VN_no_in st_id_coun t := 0; | |
| 435 | VN_src_t ype_upd_co unt := 0; | |
| 436 | VN_total _recs_coun t := 0; | |
| 437 | ||
| 438 | VD_proce ss_start_d ate := SYS DATE; | |
| 439 | ||
| 440 | -- Remove all proces s logs ove r 14 days old | |
| 441 | ||
| 442 | BEGIN | |
| 443 | ||
| 444 | VD_log _date := S YSDATE; | |
| 445 | ADRMGT .Job_Proce ss_Log_Sp( PC_job_nam e => SUBST R(VC_proce ss_name,1, 60), | |
| 446 | PD_job_log _date => V D_log_date , | |
| 447 | PC_job_sta tus => SUB STR('INFOR MATION - R emoving ol d process logs',1,60 ), | |
| 448 | PC_job_log _message = > SUBSTR(' Removing p rocess log s over 14 days old', 1,2000), | |
| 449 | PD_date1 = > VD_rec_g roup_date, | |
| 450 | PC_text1 = > SUBSTR(' Date1 colu mn contain s the dail y process start date ',1,255)); | |
| 451 | ||
| 452 | DELETE | |
| 453 | FROM ADRMGT .Job_Proce ss_Logs | |
| 454 | WHERE Job_na me = VC_pr ocess_name | |
| 455 | AND Date1 < TRUNC(SY SDATE) - 1 4; | |
| 456 | ||
| 457 | COMMIT ; | |
| 458 | ||
| 459 | VD_log _date := S YSDATE; | |
| 460 | ADRMGT .Job_Proce ss_Log_Sp( PC_job_nam e => SUBST R(VC_proce ss_name,1, 60), | |
| 461 | PD_job_log _date => V D_log_date , | |
| 462 | PC_job_sta tus => SUB STR('INFOR MATION - R emoved old process l ogs',1,60) , | |
| 463 | PC_job_log _message = > SUBSTR(' Removed pr ocess logs over 14 d ays old',1 ,2000), | |
| 464 | PD_date1 = > VD_rec_g roup_date, | |
| 465 | PC_text1 = > SUBSTR(' Date1 colu mn contain s the dail y process start date ',1,255)); | |
| 466 | ||
| 467 | ||
| 468 | EXCEPTIO N | |
| 469 | ||
| 470 | WHEN N O_DATA_FOU ND THEN | |
| 471 | ||
| 472 | NULL ; | |
| 473 | ||
| 474 | WHEN O THERS THEN | |
| 475 | ||
| 476 | VD_l og_date := SYSDATE; | |
| 477 | ADRM GT.Job_Pro cess_Err_S p(PC_job_n ame => SUB STR(VC_pro cess_name, 1,60), | |
| 478 | PD_job_e rror_date => VD_log _date, | |
| 479 | PC_job_e rror_code => SUBSTR( SQLCODE,1, 60), | |
| 480 | PC_job_e rror_messa ge => SUBS TR('Unknow n error wh ile removi ng old pro cess logs. ' | |
| 481 | || SQLE RRM,1,2000 ), | |
| 482 | PD_date1 => VD_rec _group_dat e, | |
| 483 | PC_text1 => SUBSTR ('Date1 co lumn conta ins the da ily proces s start da te',1,255) ); | |
| 484 | ||
| 485 | END; | |
| 486 | ||
| 487 | -- Remove all proces s errors o ver 14 day s old | |
| 488 | ||
| 489 | BEGIN | |
| 490 | ||
| 491 | VD_log _date := S YSDATE; | |
| 492 | ADRMGT .Job_Proce ss_Log_Sp( PC_job_nam e => SUBST R(VC_proce ss_name,1, 60), | |
| 493 | PD_job_log _date => V D_log_date , | |
| 494 | PC_job_sta tus => SUB STR('INFOR MATION - R emoving ol d process errors',1, 60), | |
| 495 | PC_job_log _message = > SUBSTR(' Removing p rocess err ors over 1 4 days old ',1,2000), | |
| 496 | PD_date1 = > VD_rec_g roup_date, | |
| 497 | PC_text1 = > SUBSTR(' Date1 colu mn contain s the dail y process start date ',1,255)); | |
| 498 | ||
| 499 | DELETE | |
| 500 | FROM ADRMGT .Job_Proce ss_Errs | |
| 501 | WHERE Job_na me = VC_pr ocess_name | |
| 502 | AND Date1 < TRUNC(SY SDATE) - 1 4; | |
| 503 | ||
| 504 | COMMIT ; | |
| 505 | ||
| 506 | VD_log _date := S YSDATE; | |
| 507 | ADRMGT .Job_Proce ss_Log_Sp( PC_job_nam e => SUBST R(VC_proce ss_name,1, 60), | |
| 508 | PD_job_log _date => V D_log_date , | |
| 509 | PC_job_sta tus => SUB STR('INFOR MATION - R emoved old process e rrors',1,6 0), | |
| 510 | PC_job_log _message = > SUBSTR(' Removed pr ocess erro rs over 14 days old' ,1,2000), | |
| 511 | PD_date1 = > VD_rec_g roup_date, | |
| 512 | PC_text1 = > SUBSTR(' Date1 colu mn contain s the dail y process start date ',1,255)); | |
| 513 | ||
| 514 | EXCEPTIO N | |
| 515 | ||
| 516 | WHEN N O_DATA_FOU ND THEN | |
| 517 | ||
| 518 | NULL ; | |
| 519 | ||
| 520 | WHEN O THERS THEN | |
| 521 | ||
| 522 | VD_l og_date := SYSDATE; | |
| 523 | ADRM GT.Job_Pro cess_Err_S p(PC_job_n ame => SUB STR(VC_pro cess_name, 1,60), | |
| 524 | PD_job_e rror_date => VD_log _date, | |
| 525 | PC_job_e rror_code => SUBSTR( SQLCODE,1, 60), | |
| 526 | PC_job_e rror_messa ge => SUBS TR('Unknow n error wh ile removi ng old pro cess error s. ' | |
| 527 | || SQLE RRM,1,2000 ), | |
| 528 | PD_date1 => VD_rec _group_dat e, | |
| 529 | PC_text1 => SUBSTR ('Date1 co lumn conta ins the da ily proces s start da te',1,255) ); | |
| 530 | ||
| 531 | END; | |
| 532 | ||
| 533 | -- Main re cord curso r logic | |
| 534 | ||
| 535 | FOR I_ad dr_rec IN C_addr_rec LOOP | |
| 536 | ||
| 537 | VB_err or := FALS E; | |
| 538 | VB_upd ate_row := FALSE; | |
| 539 | VN_tot al_recs_co unt := VN_ total_recs _count + 1 ; | |
| 540 | VN_add r_chg_src_ type_id := I_addr_re c.Address_ change_src _type_id; | |
| 541 | VN_std _instituti on_id := I _addr_rec. Std_instit ution_id; | |
| 542 | ||
| 543 | -- Logic f or Address _change_sr c_type_id | |
| 544 | ||
| 545 | IF VN_ addr_chg_s rc_type_id IS NULL T HEN | |
| 546 | ||
| 547 | VN_a ddr_chg_sr c_type_id := CN_addr _chg_src_t ype; | |
| 548 | VB_u pdate_row := TRUE; | |
| 549 | VN_s rc_type_up d_count := VN_src_ty pe_upd_cou nt + 1; | |
| 550 | ||
| 551 | END IF ; | |
| 552 | ||
| 553 | -- Logic f or Std_ins titution_i d | |
| 554 | ||
| 555 | IF VN_ std_instit ution_id I S NULL THE N | |
| 556 | ||
| 557 | -- First try for s tation num ber from r ecord_modi fied_by co lumn | |
| 558 | ||
| 559 | IF I _addr_rec. Record_mod ified_by L IKE CC_ins t_id_mask || '%' THE N | |
| 560 | ||
| 561 | BE GIN | |
| 562 | ||
| 563 | SELECT Id | |
| 564 | INTO VN_std_ins titution_i d | |
| 565 | FROM Std_Instit ution | |
| 566 | WHERE Stationnum ber = SUBS TR(I_addr_ rec.Record _modified_ by, | |
| 567 | 6, | |
| 568 | LENGTH( I_addr_rec .Record_mo dified_by) -5); | |
| 569 | ||
| 570 | VB_update_ row := TRU E; | |
| 571 | VN_inst_id _upd_count := VN_ins t_id_upd_c ount + 1; | |
| 572 | ||
| 573 | EX CEPTION | |
| 574 | ||
| 575 | WHEN NO_DA TA_FOUND T HEN | |
| 576 | ||
| 577 | NULL; | |
| 578 | ||
| 579 | WHEN OTHER S THEN | |
| 580 | ||
| 581 | VB_error := TRUE; | |
| 582 | VN_error _recs_coun t := VN_er ror_recs_c ount + 1; | |
| 583 | ||
| 584 | VD_log_d ate := SYS DATE; | |
| 585 | ADRMGT.J ob_Process _Err_Sp(PC _job_name => SUBSTR( VC_process _name,1,60 ), | |
| 586 | PD _job_error _date => VD_log_dat e, | |
| 587 | PC _job_error _code => S UBSTR(SQLC ODE,1,60), | |
| 588 | PC _job_error _message = > SUBSTR(' Unknown er ror while fetching S td_institu tion_id fr om Record_ modified_b y.' | |
| 589 | || ' Std_insti tution_id: ' | |
| 590 | || S UBSTR(I_ad dr_rec.Rec ord_modifi ed_by,6,LE NGTH(I_add r_rec.Reco rd_modifie d_by)-5) | |
| 591 | || ' . ' | |
| 592 | || S QLERRM,1,2 000), | |
| 593 | PD _date1 => VD_rec_gro up_date, | |
| 594 | PC _text1 => SUBSTR('Da te1 column contains the daily process st art date', 1,255), | |
| 595 | PN _numeric1 => I_addr_ rec.Addres s_id); | |
| 596 | ||
| 597 | EN D; | |
| 598 | ||
| 599 | END IF; | |
| 600 | ||
| 601 | -- If st ill no ins titution_i d, try for station n umber from record_cr eated_by c olumn | |
| 602 | ||
| 603 | IF N OT VB_erro r | |
| 604 | AND VN_std_in stitution_ id IS NULL | |
| 605 | AND I_addr_re c.Record_c reated_by LIKE CC_in st_id_mask || '%' TH EN | |
| 606 | ||
| 607 | BE GIN | |
| 608 | ||
| 609 | SELECT Id | |
| 610 | INTO VN_std_ins titution_i d | |
| 611 | FROM Std_Instit ution | |
| 612 | WHERE Stationnum ber = SUBS TR(I_addr_ rec.Record _created_b y, | |
| 613 | 6, | |
| 614 | LENGTH( I_addr_rec .Record_cr eated_by)- 5); | |
| 615 | ||
| 616 | VB_update_ row := TRU E; | |
| 617 | VN_inst_id _upd_count := VN_ins t_id_upd_c ount + 1; | |
| 618 | ||
| 619 | EX CEPTION | |
| 620 | ||
| 621 | WHEN NO_DA TA_FOUND T HEN | |
| 622 | ||
| 623 | NULL; | |
| 624 | ||
| 625 | WHEN OTHER S THEN | |
| 626 | ||
| 627 | VB_error := TRUE; | |
| 628 | VN_error _recs_coun t := VN_er ror_recs_c ount + 1; | |
| 629 | ||
| 630 | VD_log_d ate := SYS DATE; | |
| 631 | ADRMGT.J ob_Process _Err_Sp(PC _job_name => SUBSTR( VC_process _name,1,60 ), | |
| 632 | PD _job_error _date => VD_log_dat e, | |
| 633 | PC _job_error _code => S UBSTR(SQLC ODE,1,60), | |
| 634 | PC _job_error _message = > SUBSTR(' Unknown er ror while fetching S td_institu tion_id fr om Record_ created_by .' | |
| 635 | || ' Std_insti tution_id: ' | |
| 636 | || S UBSTR(I_ad dr_rec.Rec ord_create d_by,6,LEN GTH(I_addr _rec.Recor d_created_ by)-5) | |
| 637 | || ' .' | |
| 638 | || S QLERRM,1,2 000), | |
| 639 | PD _date1 => VD_rec_gro up_date, | |
| 640 | PC _text1 => SUBSTR('Da te1 column contains the daily process st art date', 1,255), | |
| 641 | PN _numeric1 => I_addr_ rec.Addres s_id); | |
| 642 | ||
| 643 | EN D; | |
| 644 | ||
| 645 | END IF; | |
| 646 | ||
| 647 | -- If st ill no ins titution_i d, try for instituti on_id from address h istory | |
| 648 | ||
| 649 | IF N OT VB_erro r | |
| 650 | AND VN_std_in stitution_ id IS NULL THEN | |
| 651 | ||
| 652 | BE GIN | |
| 653 | ||
| 654 | SELECT A1.Std_ins titution_i d | |
| 655 | INTO VN_std_ins titution_i d | |
| 656 | FROM ADR.Addres s_H A1 | |
| 657 | WHERE A1.Person_ id = I_add r_rec.Pers on_id -- N o index on Address_i d, Person_ id is next best thin g | |
| 658 | AND A1.Address _h_id = | |
| 659 | (SELECT MAX(A2. Address_h_ id) | |
| 660 | FROM ADR.Add ress_H A2 | |
| 661 | WHERE A2.Pers on_id = I_ addr_rec.P erson_id - - No index on Addres s_id, Pers on_id is n ext best t hing | |
| 662 | AND A2.Addr ess_Id = I _addr_rec. Address_id | |
| 663 | AND A2.Std_ institutio n_id IS NO T NULL | |
| 664 | AND A2.Tran saction_ty pe_code != 'D'); | |
| 665 | ||
| 666 | VB_update_ row := TRU E; | |
| 667 | VN_inst_id _upd_count := VN_ins t_id_upd_c ount + 1; | |
| 668 | ||
| 669 | EX CEPTION | |
| 670 | ||
| 671 | WHEN NO_DA TA_FOUND T HEN | |
| 672 | ||
| 673 | NULL; | |
| 674 | ||
| 675 | WHEN OTHER S THEN | |
| 676 | ||
| 677 | VB_error := TRUE; | |
| 678 | VN_error _recs_coun t := VN_er ror_recs_c ount + 1; | |
| 679 | ||
| 680 | VD_log_d ate := SYS DATE; | |
| 681 | ADRMGT.J ob_Process _Err_Sp(PC _job_name => SUBSTR( VC_process _name,1,60 ), | |
| 682 | PD _job_error _date => VD_log_dat e, | |
| 683 | PC _job_error _code => S UBSTR(SQLC ODE,1,60), | |
| 684 | PC _job_error _message = > SUBSTR(' Unknown er ror while fetching S td_institu tion_id fr om Address _H table.' | |
| 685 | || S QLERRM,1,2 000), | |
| 686 | PD _date1 => VD_rec_gro up_date, | |
| 687 | PC _text1 => SUBSTR('Da te1 column contains the daily process st art date', 1,255), | |
| 688 | PN _numeric1 => I_addr_ rec.Addres s_id); | |
| 689 | ||
| 690 | EN D; | |
| 691 | ||
| 692 | END IF; | |
| 693 | ||
| 694 | -- If st ill no ins titution_i d, try for instituti on_id from merged pe rson addre ss history | |
| 695 | ||
| 696 | IF N OT VB_erro r | |
| 697 | AND VN_std_in stitution_ id IS NULL THEN | |
| 698 | ||
| 699 | BE GIN | |
| 700 | ||
| 701 | SELECT AH.Std_ins titution_i d | |
| 702 | INTO VN_std_ins titution_i d | |
| 703 | FROM ADR.Person _Merge PM, | |
| 704 | ADR.Addres s_H AH | |
| 705 | WHERE PM.Primary _person_id = I_addr_ rec.Person _id | |
| 706 | AND AH.Address _h_id = | |
| 707 | (SELECT MAX(AH2.A ddress_h_i d) | |
| 708 | FROM ADR.Addre ss_H AH2 | |
| 709 | WHERE AH2.Perso n_id = PM. Deprecated _person_id | |
| 710 | AND AH2.Std_a ddresstype _id = CC_t emp_addr_i d | |
| 711 | AND AH2.Std_i nstitution _id IS NOT NULL); | |
| 712 | ||
| 713 | VB_update_ row := TRU E; | |
| 714 | VN_inst_id _upd_count := VN_ins t_id_upd_c ount + 1; | |
| 715 | ||
| 716 | EX CEPTION | |
| 717 | ||
| 718 | WHEN NO_DA TA_FOUND T HEN | |
| 719 | ||
| 720 | NULL; | |
| 721 | ||
| 722 | WHEN OTHER S THEN | |
| 723 | ||
| 724 | VB_error := TRUE; | |
| 725 | VN_error _recs_coun t := VN_er ror_recs_c ount + 1; | |
| 726 | ||
| 727 | VD_log_d ate := SYS DATE; | |
| 728 | ADRMGT.J ob_Process _Err_Sp(PC _job_name => SUBSTR( VC_process _name,1,60 ), | |
| 729 | PD _job_error _date => VD_log_dat e, | |
| 730 | PC _job_error _code => S UBSTR(SQLC ODE,1,60), | |
| 731 | PC _job_error _message = > SUBSTR(' Unknown er ror while fetching S td_institu tion_id ' | |
| 732 | ||'f rom merged person Ad dress_H ta ble.' | |
| 733 | || S QLERRM,1,2 000), | |
| 734 | PD _date1 => VD_rec_gro up_date, | |
| 735 | PC _text1 => SUBSTR('Da te1 column contains the daily process st art date', 1,255), | |
| 736 | PN _numeric1 => I_addr_ rec.Addres s_id); | |
| 737 | ||
| 738 | EN D; | |
| 739 | ||
| 740 | END IF; | |
| 741 | ||
| 742 | -- If st ill no ins titution_i d, it's to ast. Write an error. | |
| 743 | ||
| 744 | ||
| 745 | IF N OT VB_erro r | |
| 746 | AND VN_std_in stitution_ id IS NULL THEN | |
| 747 | ||
| 748 | VN _no_inst_i d_count := VN_no_ins t_id_count + 1; | |
| 749 | ||
| 750 | VD _log_date := SYSDATE ; | |
| 751 | AD RMGT.Job_P rocess_Err _Sp(PC_job _name => S UBSTR(VC_p rocess_nam e,1,60), | |
| 752 | PD_job _error_dat e => VD_l og_date, | |
| 753 | PC_job _error_cod e => SUBST R(SQLCODE, 1,60), | |
| 754 | PC_job _error_mes sage => SU BSTR('No i nstitution ID found for this a ddress row .',1,2000) , | |
| 755 | PD_dat e1 => VD_r ec_group_d ate, | |
| 756 | PC_tex t1 => SUBS TR('Date1 column con tains the daily proc ess start date',1,25 5), | |
| 757 | PN_num eric1 => I _addr_rec. Address_id ); | |
| 758 | ||
| 759 | END IF; | |
| 760 | ||
| 761 | END IF ; | |
| 762 | ||
| 763 | IF VB_ update_row THEN | |
| 764 | ||
| 765 | BEGI N | |
| 766 | ||
| 767 | UP DATE AD R.Address | |
| 768 | SE T Ad dress_chan ge_src_typ e_id = VN_ addr_chg_s rc_type_id , | |
| 769 | St d_institut ion_id = V N_std_inst itution_id , | |
| 770 | Re cord_modif ied_by = ' ADRCQ00001 162', | |
| 771 | Re cord_modif ied_date = SYSDATE, | |
| 772 | Re cord_modif ied_count = Record_m odified_co unt + 1 | |
| 773 | WH ERE Ad dress_id = I_addr_re c.Address_ id; | |
| 774 | ||
| 775 | CO MMIT; | |
| 776 | ||
| 777 | EXCE PTION | |
| 778 | ||
| 779 | WH EN OTHERS THEN | |
| 780 | ||
| 781 | VN_error_r ecs_count := VN_erro r_recs_cou nt + 1; | |
| 782 | ||
| 783 | ROLLBACK; | |
| 784 | ||
| 785 | VD_log_dat e := SYSDA TE; | |
| 786 | ADRMGT.Job _Process_E rr_Sp(PC_j ob_name => SUBSTR(VC _process_n ame,1,60), | |
| 787 | PD_j ob_error_d ate => VD _log_date, | |
| 788 | PC_j ob_error_c ode => SUB STR(SQLCOD E,1,60), | |
| 789 | PC_j ob_error_m essage => SUBSTR('Un known erro r while up dating ADR .Address r ow.' | |
| 790 | || SQL ERRM,1,200 0), | |
| 791 | PD_d ate1 => VD _rec_group _date, | |
| 792 | PC_t ext1 => SU BSTR('Date 1 column c ontains th e daily pr ocess star t date',1, 255), | |
| 793 | PN_n umeric1 => I_addr_re c.Address_ id); | |
| 794 | ||
| 795 | END; | |
| 796 | ||
| 797 | END IF ; | |
| 798 | ||
| 799 | END LOOP ; | |
| 800 | ||
| 801 | -- Process completio n informat ion | |
| 802 | ||
| 803 | VD_log_d ate := SYS DATE; | |
| 804 | ADRMGT.J ob_Process _Log_Sp(PC _job_name => SUBSTR( VC_process _name,1,60 ), | |
| 805 | PD _job_log_d ate => VD_ log_date, | |
| 806 | PC _job_statu s => SUBST R('INFORMA TION - Pro cess Stati stics',1,6 0), | |
| 807 | PD _date1 => VD_rec_gro up_date, | |
| 808 | PC _text1 => SUBSTR('Da te1 column contains the daily process st art date', 1,255), | |
| 809 | PN _numeric2 => VN_tota l_recs_cou nt, | |
| 810 | PC _text2 => SUBSTR('Te mp address es reviewe d',1,255)) ; | |
| 811 | ||
| 812 | VD_log_d ate := SYS DATE; | |
| 813 | ADRMGT.J ob_Process _Log_Sp(PC _job_name => SUBSTR( VC_process _name,1,60 ), | |
| 814 | PD _job_log_d ate => VD_ log_date, | |
| 815 | PC _job_statu s => SUBST R('INFORMA TION - Pro cess Stati stics',1,6 0), | |
| 816 | PD _date1 => VD_rec_gro up_date, | |
| 817 | PC _text1 => SUBSTR('Da te1 column contains the daily process st art date', 1,255), | |
| 818 | PN _numeric2 => VN_src_ type_upd_c ount, | |
| 819 | PC _text2 => SUBSTR('Ch ange sourc e types up dated',1,2 55)); | |
| 820 | ||
| 821 | VD_log_d ate := SYS DATE; | |
| 822 | ADRMGT.J ob_Process _Log_Sp(PC _job_name => SUBSTR( VC_process _name,1,60 ), | |
| 823 | PD _job_log_d ate => VD_ log_date, | |
| 824 | PC _job_statu s => SUBST R('INFORMA TION - Pro cess Stati stics',1,6 0), | |
| 825 | PD _date1 => VD_rec_gro up_date, | |
| 826 | PC _text1 => SUBSTR('Da te1 column contains the daily process st art date', 1,255), | |
| 827 | PN _numeric2 => VN_inst _id_upd_co unt, | |
| 828 | PC _text2 => SUBSTR('In stitution IDs update d',1,255)) ; | |
| 829 | ||
| 830 | VD_log_d ate := SYS DATE; | |
| 831 | ADRMGT.J ob_Process _Log_Sp(PC _job_name => SUBSTR( VC_process _name,1,60 ), | |
| 832 | PD _job_log_d ate => VD_ log_date, | |
| 833 | PC _job_statu s => SUBST R('INFORMA TION - Pro cess Stati stics',1,6 0), | |
| 834 | PD _date1 => VD_rec_gro up_date, | |
| 835 | PC _text1 => SUBSTR('Da te1 column contains the daily process st art date', 1,255), | |
| 836 | PN _numeric2 => VN_no_i nst_id_cou nt, | |
| 837 | PC _text2 => SUBSTR('In stitution IDs not up dated',1,2 55)); | |
| 838 | ||
| 839 | VD_log_d ate := SYS DATE; | |
| 840 | ADRMGT.J ob_Process _Log_Sp(PC _job_name => SUBSTR( VC_process _name,1,60 ), | |
| 841 | PD _job_log_d ate => VD_ log_date, | |
| 842 | PC _job_statu s => SUBST R('INFORMA TION - Pro cess Stati stics',1,6 0), | |
| 843 | PD _date1 => VD_rec_gro up_date, | |
| 844 | PC _text1 => SUBSTR('Da te1 column contains the daily process st art date', 1,255), | |
| 845 | PN _numeric2 => VN_erro r_recs_cou nt, | |
| 846 | PC _text2 => SUBSTR('** *Errors up dating add ress rows* **',1,255) ); | |
| 847 | ||
| 848 | VD_proce ss_end_dat e := SYSDA TE; | |
| 849 | VC_proce ss_duratio n := LTRIM (TO_CHAR(T RUNC((VD_p rocess_end _date - VD _process_s tart_date) *24),'00') ) || ' Hrs ' | |
| 850 | || LT RIM(TO_CHA R(TRUNC((( (VD_proces s_end_date - VD_proc ess_start_ date)*24)- | |
| 851 | TR UNC(((VD_p rocess_end _date - VD _process_s tart_date) *24))) * 6 0),'00')) || ' Mins ' | |
| 852 | || LT RIM(TO_CHA R(TRUNC((( (VD_proces s_end_date - VD_proc ess_start_ date)*24*6 0)- | |
| 853 | TR UNC(((VD_p rocess_end _date - VD _process_s tart_date) *24*60))) * 60),'00' )) || ' Se cs'; | |
| 854 | ||
| 855 | VD_log_d ate := SYS DATE; | |
| 856 | ADRMGT.J ob_Process _Log_Sp(PC _job_name => SUBSTR( VC_process _name,1,60 ), | |
| 857 | PD _job_log_d ate => VD_ log_date, | |
| 858 | PC _job_statu s => SUBST R('SUCCESS - Pro cessing Co mpleted',1 ,60), | |
| 859 | PC _job_log_m essage => SUBSTR('Pr ocessing T ime: ' || VC_process _duration, 1,2000), | |
| 860 | PD _date1 => VD_rec_gro up_date, | |
| 861 | PC _text1 => SUBSTR('Da te1 column contains the daily process st art date', 1,255)); | |
| 862 | ||
| 863 | EXCEPTION | |
| 864 | ||
| 865 | WHEN OTH ERS THEN | |
| 866 | ||
| 867 | ROLLBA CK; | |
| 868 | ||
| 869 | VD_log _date := S YSDATE; | |
| 870 | ADRMGT .Job_Proce ss_Err_Sp( PC_job_nam e => SUBST R(VC_proce ss_name,1, 60), | |
| 871 | PD_job_err or_date = > VD_log_d ate, | |
| 872 | PC_job_err or_code => SUBSTR(SQ LCODE,1,60 ), | |
| 873 | PC_job_err or_message => SUBSTR ('Unknown processing error in procedure Adr_Addres s_Z05_Upda te_Sp.' | |
| 874 | || SQLERRM,1 ,2000), | |
| 875 | PD_date1 = > VD_rec_g roup_date, | |
| 876 | PC_text1 = > SUBSTR(' Date1 colu mn contain s the dail y process start date ',1,255)); | |
| 877 | ||
| 878 | VD_log _date := S YSDATE; | |
| 879 | ADRMGT .Job_Proce ss_Log_Sp( PC_job_nam e => SUBST R(VC_proce ss_name,1, 60), | |
| 880 | PD_job_log _date => V D_log_date , | |
| 881 | PC_job_sta tus => SUB STR('ERROR - U nknown pro cessing er ror',1,60) , | |
| 882 | PC_job_log _message = > SUBSTR(' See error log table for detail s.',1,2000 ), | |
| 883 | PD_date1 = > VD_rec_g roup_date, | |
| 884 | PC_text1 = > SUBSTR(' Date1 colu mn contain s the dail y process start date ',1,255)); | |
| 885 | ||
| 886 | END Adr_Ad dress_Z05_ Update_Sp; | |
| 887 | / | |
| 888 | DROP PROCE DURE ADR.A DR_DELETE_ ADDRESS_SP ; | |
| 889 | ||
| 890 | CREATE OR REPLACE PR OCEDURE AD R.Adr_dele te_address _Sp | |
| 891 | (PB_run_ standalone | |
| 892 | IN BOOLEAN DEFAULT FA LSE, | |
| 893 | PB_allo w_rpt_inst | |
| 894 | IN BOOLEAN DEFAULT FA LSE | |
| 895 | ) | |
| 896 | IS | |
| 897 | ||
| 898 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 899 | -- * Proce dure: Adr_ delete_add ress_Sp | |
| 900 | -- * | |
| 901 | -- * Temp orary Add ress table bug fix t o be run n ightly. | |
| 902 | -- * | |
| 903 | -- * - Se lects all Address re cords wher e the INSU RANCE_ID S TD_ADDRESS TYPE_ID | |
| 904 | -- * i s NULL | |
| 905 | -- * | |
| 906 | -- * | |
| 907 | -- * Param eters: | |
| 908 | -- * | |
| 909 | -- * PB_r un_standal one Igno re DBMS_JO B logic fo r checking running j obs. | |
| 910 | -- * Def ault: FALS E | |
| 911 | -- * | |
| 912 | -- * PB_a llow_rpt_i nst Allo w stored p rocedure t o be submi tted in th e | |
| 913 | -- * DBMS _JOB queue on the AD R reportin g database s | |
| 914 | -- * Def ault: FALS E | |
| 915 | -- * | |
| 916 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 917 | -- | |
| 918 | -- ======= ========== ========== ========== ========== ========== ========== ======== | |
| 919 | -- Date Autho r De scription | |
| 920 | -- ======= ========== ========== ========== ========== ========== ========== ======== | |
| 921 | -- 11/30/2 010 Brend a Caningto n Cr eated for CCR 1252. | |
| 922 | ||
| 923 | -- | |
| 924 | -- ======= ========== ========== ========== ========== ========== ========== ======== | |
| 925 | ||
| 926 | -- CONSTAN TS | |
| 927 | ||
| 928 | ||
| 929 | -- VARIABL ES | |
| 930 | ||
| 931 | VB_allow _rpt_inst B OOLEAN := FALSE; | |
| 932 | VB_error B OOLEAN := FALSE; | |
| 933 | VB_run_s tandalone B OOLEAN := FALSE; | |
| 934 | VB_updat e_row B OOLEAN := FALSE; | |
| 935 | ||
| 936 | VC_allow _rpt_inst V ARCHAR2(5) := NULL; | |
| 937 | VC_insta nce_name V ARCHAR2(16 ); | |
| 938 | VC_proce ss_duratio n V ARCHAR2(25 ); | |
| 939 | VC_proce ss_name V ARCHAR2(60 ) := 'ADR Delete Add ress Recor ds'; | |
| 940 | VC_run_s tandalone V ARCHAR2(5) := NULL; | |
| 941 | ||
| 942 | VD_log_d ate D ATE; | |
| 943 | VD_proce ss_end_dat e D ATE; | |
| 944 | VD_proce ss_start_d ate D ATE; | |
| 945 | VD_rec_g roup_date D ATE; | |
| 946 | ||
| 947 | VN_addr_ chg_src_ty pe_id N UMBER := 0 ; | |
| 948 | VN_job_c ount N UMBER := 0 ; | |
| 949 | VN_job_n umber N UMBER := 0 ; | |
| 950 | VN_inst_ id_upd_cou nt N UMBER := 0 ; | |
| 951 | VN_error _recs_coun t N UMBER := 0 ; | |
| 952 | VN_no_in st_id_coun t N UMBER := 0 ; | |
| 953 | VN_rec_c ount N UMBER := 0 ; | |
| 954 | VN_src_t ype_upd_co unt N UMBER := 0 ; | |
| 955 | VN_std_i nstitution _id N UMBER := 0 ; | |
| 956 | VN_total _recs_coun t N UMBER := 0 ; | |
| 957 | sql_stmt v archar2(50 0); | |
| 958 | ||
| 959 | -- CURSORS | |
| 960 | ||
| 961 | CURSOR my_ del_record s IS | |
| 962 | SELEC T A.ADDRES S_ID | |
| 963 | FROM ADR.A ddress A | |
| 964 | WHERE A.STD_ ADDRESSTYP E_ID IS NU LL | |
| 965 | AND | |
| 966 | A .INSURANCE _ID IS NUL L; | |
| 967 | ||
| 968 | -- ******* ********** ********** ********** ********** ********** ********** ******* | |
| 969 | -- * | |
| 970 | -- * MAIN PROCEDURE : | |
| 971 | -- * | |
| 972 | -- * AD R.Adr_Addr ess_Z05_Up date_Sp | |
| 973 | -- * | |
| 974 | -- ******* ********** ********** ********** ********** ********** ********** ******* | |
| 975 | ||
| 976 | BEGIN | |
| 977 | ||
| 978 | VD_rec_g roup_date := TRUNC(S YSDATE); | |
| 979 | ||
| 980 | VD_log_d ate := SYS DATE; | |
| 981 | ADRMGT.J ob_Process _Log_Sp(PC _job_name => SUBSTR( VC_process _name,1,60 ), | |
| 982 | PD _job_log_d ate => VD_ log_date, | |
| 983 | PC _job_statu s => SUBST R('Process Initiatio n',1,60), | |
| 984 | PD _date1 => VD_rec_gro up_date, | |
| 985 | PC _text1 => SUBSTR('Da te1 column contains the daily process st art date', 1,255)); | |
| 986 | ||
| 987 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 988 | -- * | |
| 989 | -- * Valid ate input parameters | |
| 990 | -- * | |
| 991 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 992 | ||
| 993 | -- * Check run stand alone flag | |
| 994 | ||
| 995 | IF PB_ru n_standalo ne IS NULL | |
| 996 | OR NOT PB_run_sta ndalone TH EN | |
| 997 | ||
| 998 | VB_run _standalon e := FALSE ; | |
| 999 | VC_run _standalon e := 'FALS E'; -- use d for log message, b oolean can 't be disp layed | |
| 1000 | ||
| 1001 | ELSE | |
| 1002 | ||
| 1003 | VB_run _standalon e := TRUE; | |
| 1004 | VC_run _standalon e := 'TRUE '; -- used for log m essage, bo olean can' t be displ ayed | |
| 1005 | ||
| 1006 | END IF; | |
| 1007 | ||
| 1008 | -- * Check run on re port insta nce flag | |
| 1009 | ||
| 1010 | IF PB_al low_rpt_in st IS NULL | |
| 1011 | OR NOT PB_allow_r pt_inst TH EN | |
| 1012 | ||
| 1013 | VB_all ow_rpt_ins t := FALSE ; | |
| 1014 | VC_all ow_rpt_ins t := 'FALS E'; -- use d for log message, b oolean can 't be disp layed | |
| 1015 | ||
| 1016 | ELSE | |
| 1017 | ||
| 1018 | VB_all ow_rpt_ins t := TRUE; | |
| 1019 | VC_all ow_rpt_ins t := 'TRUE '; -- used for log m essage, bo olean can' t be displ ayed | |
| 1020 | ||
| 1021 | END IF; | |
| 1022 | ||
| 1023 | VD_log_d ate := SYS DATE; | |
| 1024 | ADRMGT.J ob_Process _Log_Sp(PC _job_name => SUBSTR( VC_process _name,1,60 ), | |
| 1025 | PD _job_log_d ate => VD_ log_date, | |
| 1026 | PC _job_statu s => SUBST R('INFORMA TION - Pro cessing pa rameters f or this jo b',1,60), | |
| 1027 | PC _job_log_m essage => SUBSTR('Cu rrent job parameters - ' | |
| 1028 | || ' R un standal one: ' || VC_run_sta ndalone | |
| 1029 | || ' R un on repo rting data bases: ' | | VC_allow _rpt_inst, 1,2000), | |
| 1030 | PD _date1 => VD_rec_gro up_date, | |
| 1031 | PC _text1 => SUBSTR('Da te1 column contains the daily process st art date', 1,255)); | |
| 1032 | ||
| 1033 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 1034 | -- * | |
| 1035 | -- * Check to see if process i s running on a repor ting datab ase. | |
| 1036 | -- * - If VB_allow_ rpt_inst i s FALSE, t hen it's n ot allowed . End the job. | |
| 1037 | -- * | |
| 1038 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 1039 | ||
| 1040 | IF NOT V B_allow_rp t_inst THE N | |
| 1041 | ||
| 1042 | BEGIN | |
| 1043 | ||
| 1044 | VD_l og_date := SYSDATE; | |
| 1045 | ADRM GT.Job_Pro cess_Log_S p(PC_job_n ame => SUB STR(VC_pro cess_name, 1,60), | |
| 1046 | PD_job_l og_date => VD_log_da te, | |
| 1047 | PC_job_s tatus => S UBSTR('INF ORMATION - Checking if running on a repo rting data base',1,60 ), | |
| 1048 | PD_date1 => VD_rec _group_dat e, | |
| 1049 | PC_text1 => SUBSTR ('Date1 co lumn conta ins the da ily proces s start da te',1,255) ); | |
| 1050 | ||
| 1051 | SELE CT Inst ance_name | |
| 1052 | INTO VC_i nstance_na me | |
| 1053 | FROM V$in stance; | |
| 1054 | ||
| 1055 | IF U PPER(SUBST R(VC_insta nce_name,1 ,4)) = 'AD RR' THEN | |
| 1056 | ||
| 1057 | VD _log_date := SYSDATE ; | |
| 1058 | AD RMGT.Job_P rocess_Log _Sp(PC_job _name => S UBSTR(VC_p rocess_nam e,1,60), | |
| 1059 | PD_job _log_date => VD_log_ date, | |
| 1060 | PC_job _status => SUBSTR('W ARNING - Process ing Failed ',1,60), | |
| 1061 | PC_job _log_messa ge => SUBS TR('Attemp ting to ru n on a rep orting ins tance. Ins tance name : ' | |
| 1062 | || VC_inst ance_name | |
| 1063 | || '. This job has b een termin ated. To r un on a re porting in stance,' | |
| 1064 | || ' set p arameter V B_allow_rp t_inst to TRUE and r esubmit th e job.',1, 2000), | |
| 1065 | PD_dat e1 => VD_r ec_group_d ate, | |
| 1066 | PC_tex t1 => SUBS TR('Date1 column con tains the daily proc ess start date',1,25 5)); | |
| 1067 | ||
| 1068 | RE TURN; | |
| 1069 | ||
| 1070 | END IF; | |
| 1071 | ||
| 1072 | EXCEPT ION | |
| 1073 | ||
| 1074 | WHEN OTHERS TH EN | |
| 1075 | ||
| 1076 | VD _log_date := SYSDATE ; | |
| 1077 | AD RMGT.Job_P rocess_Log _Sp(PC_job _name => S UBSTR(VC_p rocess_nam e,1,60), | |
| 1078 | PD_job _log_date => VD_log_ date, | |
| 1079 | PC_job _status => SUBSTR('E RROR - Unable to retriev e instance name',1,6 0), | |
| 1080 | PC_job _log_messa ge => SUBS TR('Termin ating scri pt.',1,200 0), | |
| 1081 | PD_dat e1 => VD_r ec_group_d ate, | |
| 1082 | PC_tex t1 => SUBS TR('Date1 column con tains the daily proc ess start date',1,25 5)); | |
| 1083 | ||
| 1084 | RE TURN; | |
| 1085 | ||
| 1086 | END; | |
| 1087 | ||
| 1088 | END IF; | |
| 1089 | ||
| 1090 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 1091 | -- * | |
| 1092 | -- * Check to see if the job h as already run today | |
| 1093 | -- * - If running i n stand-al one mode, don't chec k. | |
| 1094 | -- * - Ot herwise, i f job has already ru n today, t hen exit t he job. | |
| 1095 | -- * | |
| 1096 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 1097 | ||
| 1098 | IF NOT P B_run_stan dalone THE N | |
| 1099 | ||
| 1100 | BEGIN | |
| 1101 | ||
| 1102 | SELE CT COUN T(*) | |
| 1103 | INTO VN_r ec_count | |
| 1104 | FROM ADRM GT.Job_Pro cess_Logs | |
| 1105 | WHER E Job_ name = VC_ process_na me | |
| 1106 | AND Date 1 = VD_rec _group_dat e | |
| 1107 | AND Job_ status = ' SUCCESS - Proces sing Compl eted'; | |
| 1108 | ||
| 1109 | IF V N_rec_coun t > 0 THEN | |
| 1110 | ||
| 1111 | VD _log_date := SYSDATE ; | |
| 1112 | AD RMGT.Job_P rocess_Log _Sp(PC_job _name => S UBSTR(VC_p rocess_nam e,1,60), | |
| 1113 | PD_job _log_date => VD_log_ date, | |
| 1114 | PC_job _status => SUBSTR('I NFORMATION - This da te has alr eady been processed' ,1,60), | |
| 1115 | PC_job _log_messa ge => SUBS TR('Proces sing has a lready com pleted for this date . Exiting to job que ue.',1,200 0), | |
| 1116 | PD_dat e1 => VD_r ec_group_d ate, | |
| 1117 | PC_tex t1 => SUBS TR('Date1 column con tains the daily proc ess start date',1,25 5)); | |
| 1118 | ||
| 1119 | RE TURN; | |
| 1120 | ||
| 1121 | END IF; | |
| 1122 | ||
| 1123 | EXCEPT ION | |
| 1124 | ||
| 1125 | WHEN OTHERS TH EN | |
| 1126 | ||
| 1127 | VD _log_date := SYSDATE ; | |
| 1128 | AD RMGT.Job_P rocess_Log _Sp(PC_job _name => S UBSTR(VC_p rocess_nam e,1,60), | |
| 1129 | PD_job _log_date => VD_log_ date, | |
| 1130 | PC_job _status => SUBSTR('E RROR - Unable to verify if job has already r un',1,60), | |
| 1131 | PC_job _log_messa ge => SUBS TR('Termin ating scri pt.',1,200 0), | |
| 1132 | PD_dat e1 => VD_r ec_group_d ate, | |
| 1133 | PC_tex t1 => SUBS TR('Date1 column con tains the daily proc ess start date',1,25 5)); | |
| 1134 | ||
| 1135 | RE TURN; | |
| 1136 | ||
| 1137 | END; | |
| 1138 | ||
| 1139 | END IF; | |
| 1140 | ||
| 1141 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 1142 | -- * | |
| 1143 | -- * Check to see if any other jobs of t his proced ure are ru nning. | |
| 1144 | -- * - If yes, then end this job. | |
| 1145 | -- * | |
| 1146 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 1147 | ||
| 1148 | SELECT C OUNT(*) | |
| 1149 | INTO V N_job_coun t | |
| 1150 | FROM S YS.DBA_JOB S_RUNNING R, | |
| 1151 | S YS.DBA_JOB S J | |
| 1152 | WHERE J .JOB = R.J OB | |
| 1153 | AND U PPER(J.WHA T) LIKE '% ADR_DELETE _ADDRESS_S P%'; | |
| 1154 | ||
| 1155 | IF VN_jo b_count > 1 THEN | |
| 1156 | ||
| 1157 | VD_log _date := S YSDATE; | |
| 1158 | ADRMGT .Job_Proce ss_Log_Sp( PC_job_nam e => SUBST R(VC_proce ss_name,1, 60), | |
| 1159 | PD_job_log _date => V D_log_date , | |
| 1160 | PC_job_sta tus => SUB STR('WARNI NG - C heck for r unning job s',1,60), | |
| 1161 | PC_job_log _message = > SUBSTR(' There is a nother add ress Delet e job runn ing.' | |
| 1162 | || ' Exiting j ob without running.' ,1,2000), | |
| 1163 | PD_date1 = > VD_rec_g roup_date, | |
| 1164 | PC_text1 = > SUBSTR(' Date1 colu mn contain s the dail y process start date ',1,255)); | |
| 1165 | ||
| 1166 | RETURN ; | |
| 1167 | ||
| 1168 | ELSE | |
| 1169 | ||
| 1170 | IF VB_ run_standa lone THEN | |
| 1171 | ||
| 1172 | VD_l og_date := SYSDATE; | |
| 1173 | ADRM GT.Job_Pro cess_Log_S p(PC_job_n ame => SUB STR(VC_pro cess_name, 1,60), | |
| 1174 | PD_job_l og_date => VD_log_da te, | |
| 1175 | PC_job_s tatus => S UBSTR('INF ORMATION - Starting in STANDAL ONE mode', 1,60), | |
| 1176 | PD_date1 => VD_rec _group_dat e, | |
| 1177 | PC_text1 => SUBSTR ('Date1 co lumn conta ins the da ily proces s start da te',1,255) ); | |
| 1178 | ||
| 1179 | ELSE | |
| 1180 | ||
| 1181 | SELE CT MAX( J.Job) | |
| 1182 | INTO VN_j ob_number | |
| 1183 | FROM SYS. DBA_JOBS_R UNNING R, | |
| 1184 | SYS. DBA_JOBS J | |
| 1185 | WHER E J.JO B = R.JOB | |
| 1186 | AND UPPE R(J.WHAT) LIKE '%ADR _DELETE_AD DRESS_SP%' ; | |
| 1187 | ||
| 1188 | VD_l og_date := SYSDATE; | |
| 1189 | ADRM GT.Job_Pro cess_Log_S p(PC_job_n ame => SUB STR(VC_pro cess_name, 1,60), | |
| 1190 | PD_job_l og_date => VD_log_da te, | |
| 1191 | PC_job_s tatus => S UBSTR('INF ORMATION - Starting in DBMS_JO B mode',1, 60), | |
| 1192 | PD_date1 => VD_rec _group_dat e, | |
| 1193 | PC_text1 => SUBSTR ('Date1 co lumn conta ins the da ily proces s start da te',1,255) ); | |
| 1194 | ||
| 1195 | END IF ; | |
| 1196 | ||
| 1197 | END IF; | |
| 1198 | ||
| 1199 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 1200 | -- * | |
| 1201 | -- * Main processing loop | |
| 1202 | -- * | |
| 1203 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 1204 | ||
| 1205 | VN_error _recs_coun t := 0; | |
| 1206 | VN_inst_ id_upd_cou nt := 0; | |
| 1207 | VN_no_in st_id_coun t := 0; | |
| 1208 | VN_src_t ype_upd_co unt := 0; | |
| 1209 | VN_total _recs_coun t := 0; | |
| 1210 | ||
| 1211 | VD_proce ss_start_d ate := SYS DATE; | |
| 1212 | ||
| 1213 | -- Remove all proces s logs ove r 14 days old | |
| 1214 | ||
| 1215 | BEGIN | |
| 1216 | ||
| 1217 | VD_log _date := S YSDATE; | |
| 1218 | ADRMGT .Job_Proce ss_Log_Sp( PC_job_nam e => SUBST R(VC_proce ss_name,1, 60), | |
| 1219 | PD_job_log _date => V D_log_date , | |
| 1220 | PC_job_sta tus => SUB STR('INFOR MATION - R emoving ol d process logs',1,60 ), | |
| 1221 | PC_job_log _message = > SUBSTR(' Removing p rocess log s over 14 days old', 1,2000), | |
| 1222 | PD_date1 = > VD_rec_g roup_date, | |
| 1223 | PC_text1 = > SUBSTR(' Date1 colu mn contain s the dail y process start date ',1,255)); | |
| 1224 | ||
| 1225 | DELETE | |
| 1226 | FROM ADRMGT .Job_Proce ss_Logs | |
| 1227 | WHERE Job_na me = VC_pr ocess_name | |
| 1228 | AND Date1 < TRUNC(SY SDATE) - 1 4; | |
| 1229 | ||
| 1230 | COMMIT ; | |
| 1231 | ||
| 1232 | VD_log _date := S YSDATE; | |
| 1233 | ADRMGT .Job_Proce ss_Log_Sp( PC_job_nam e => SUBST R(VC_proce ss_name,1, 60), | |
| 1234 | PD_job_log _date => V D_log_date , | |
| 1235 | PC_job_sta tus => SUB STR('INFOR MATION - R emoved old process l ogs',1,60) , | |
| 1236 | PC_job_log _message = > SUBSTR(' Removed pr ocess logs over 14 d ays old',1 ,2000), | |
| 1237 | PD_date1 = > VD_rec_g roup_date, | |
| 1238 | PC_text1 = > SUBSTR(' Date1 colu mn contain s the dail y process start date ',1,255)); | |
| 1239 | ||
| 1240 | ||
| 1241 | EXCEPTIO N | |
| 1242 | ||
| 1243 | WHEN N O_DATA_FOU ND THEN | |
| 1244 | ||
| 1245 | NULL ; | |
| 1246 | ||
| 1247 | WHEN O THERS THEN | |
| 1248 | ||
| 1249 | VD_l og_date := SYSDATE; | |
| 1250 | ADRM GT.Job_Pro cess_Err_S p(PC_job_n ame => SUB STR(VC_pro cess_name, 1,60), | |
| 1251 | PD_job_e rror_date => VD_log _date, | |
| 1252 | PC_job_e rror_code => SUBSTR( SQLCODE,1, 60), | |
| 1253 | PC_job_e rror_messa ge => SUBS TR('Unknow n error wh ile removi ng old pro cess logs. ' | |
| 1254 | || SQLE RRM,1,2000 ), | |
| 1255 | PD_date1 => VD_rec _group_dat e, | |
| 1256 | PC_text1 => SUBSTR ('Date1 co lumn conta ins the da ily proces s start da te',1,255) ); | |
| 1257 | ||
| 1258 | END; | |
| 1259 | ||
| 1260 | -- Remove all proces s errors o ver 14 day s old | |
| 1261 | ||
| 1262 | BEGIN | |
| 1263 | ||
| 1264 | VD_log _date := S YSDATE; | |
| 1265 | ADRMGT .Job_Proce ss_Log_Sp( PC_job_nam e => SUBST R(VC_proce ss_name,1, 60), | |
| 1266 | PD_job_log _date => V D_log_date , | |
| 1267 | PC_job_sta tus => SUB STR('INFOR MATION - R emoving ol d process errors',1, 60), | |
| 1268 | PC_job_log _message = > SUBSTR(' Removing p rocess err ors over 1 4 days old ',1,2000), | |
| 1269 | PD_date1 = > VD_rec_g roup_date, | |
| 1270 | PC_text1 = > SUBSTR(' Date1 colu mn contain s the dail y process start date ',1,255)); | |
| 1271 | ||
| 1272 | DELETE | |
| 1273 | FROM ADRMGT .Job_Proce ss_Errs | |
| 1274 | WHERE Job_na me = VC_pr ocess_name | |
| 1275 | AND Date1 < TRUNC(SY SDATE) - 1 4; | |
| 1276 | ||
| 1277 | COMMIT ; | |
| 1278 | ||
| 1279 | VD_log _date := S YSDATE; | |
| 1280 | ADRMGT .Job_Proce ss_Log_Sp( PC_job_nam e => SUBST R(VC_proce ss_name,1, 60), | |
| 1281 | PD_job_log _date => V D_log_date , | |
| 1282 | PC_job_sta tus => SUB STR('INFOR MATION - R emoved old process e rrors',1,6 0), | |
| 1283 | PC_job_log _message = > SUBSTR(' Removed pr ocess erro rs over 14 days old' ,1,2000), | |
| 1284 | PD_date1 = > VD_rec_g roup_date, | |
| 1285 | PC_text1 = > SUBSTR(' Date1 colu mn contain s the dail y process start date ',1,255)); | |
| 1286 | ||
| 1287 | EXCEPTIO N | |
| 1288 | ||
| 1289 | WHEN N O_DATA_FOU ND THEN | |
| 1290 | ||
| 1291 | NULL ; | |
| 1292 | ||
| 1293 | WHEN O THERS THEN | |
| 1294 | ||
| 1295 | VD_l og_date := SYSDATE; | |
| 1296 | ADRM GT.Job_Pro cess_Err_S p(PC_job_n ame => SUB STR(VC_pro cess_name, 1,60), | |
| 1297 | PD_job_e rror_date => VD_log _date, | |
| 1298 | PC_job_e rror_code => SUBSTR( SQLCODE,1, 60), | |
| 1299 | PC_job_e rror_messa ge => SUBS TR('Unknow n error wh ile removi ng old pro cess error s. ' | |
| 1300 | || SQLE RRM,1,2000 ), | |
| 1301 | PD_date1 => VD_rec _group_dat e, | |
| 1302 | PC_text1 => SUBSTR ('Date1 co lumn conta ins the da ily proces s start da te',1,255) ); | |
| 1303 | ||
| 1304 | END; | |
| 1305 | ||
| 1306 | -- Main re cord curso r logic | |
| 1307 | BEGIN | |
| 1308 | FOR th is_del_rec ords in my _del_recor ds LOOP | |
| 1309 | sql_stmt := 'DELET E FROM ADR. Address A WHERE A.AD DRESS_ID = ' || this _del_recor ds.ADDRESS _ID ; | |
| 1310 | EXECUTE IMMEDIATE sql_stmt; | |
| 1311 | COMMIT; | |
| 1312 | END LOOP; | |
| 1313 | ||
| 1314 | ||
| 1315 | ||
| 1316 | EX CEPTION | |
| 1317 | WH EN NO_DATA _FOUND THE N | |
| 1318 | NULL; | |
| 1319 | WH EN OTHERS THEN | |
| 1320 | VN_error_r ecs_count := VN_erro r_recs_cou nt + 1; | |
| 1321 | ROLLBACK; | |
| 1322 | VD_log_dat e := SYSDA TE; | |
| 1323 | ADRMGT.Job _Process_E rr_Sp(PC_j ob_name => SUBSTR(VC _process_n ame,1,60), | |
| 1324 | PD_j ob_error_d ate => VD _log_date, | |
| 1325 | PC_j ob_error_c ode => SUB STR(SQLCOD E,1,60), | |
| 1326 | PC_j ob_error_m essage => SUBSTR('Un known erro r while de leting fro m ADR.Addr ess row.' | |
| 1327 | || SQL ERRM,1,200 0), | |
| 1328 | PD_d ate1 => VD _rec_group _date, | |
| 1329 | PC_t ext1 => SU BSTR('Date 1 column c ontains th e daily pr ocess star t date',1, 255) | |
| 1330 | ); | |
| 1331 | ||
| 1332 | END; | |
| 1333 | ||
| 1334 | ||
| 1335 | ||
| 1336 | END Adr_de lete_addre ss_Sp; | |
| 1337 | / | |
| 1338 | DROP PROCE DURE ADR.A DR_INCOME_ TEST_FIX_S P; | |
| 1339 | ||
| 1340 | CREATE OR REPLACE PR OCEDURE AD R.Adr_Inco me_Test_Fi x_Sp | |
| 1341 | (p_run_s tandalone | |
| 1342 | IN BOOLEAN DEFAULT FA LSE, | |
| 1343 | p_allow _rpt_inst | |
| 1344 | IN BOOLEAN DEFAULT FA LSE | |
| 1345 | ) | |
| 1346 | IS | |
| 1347 | ||
| 1348 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 1349 | -- * Proce dure: Adr_ Income_Tes t_Fix_Sp | |
| 1350 | -- * | |
| 1351 | -- * Fix data in In come_Test table from applicati on bug to be run nig htly. | |
| 1352 | -- * | |
| 1353 | -- * - Se lects futu re Income_ Test table records f or individ uals with multiple i ncome_test records a nd multipl e records where the income_tes t_type_id is the sam e | |
| 1354 | -- * And the futu re_test_fl ag = 1 | |
| 1355 | -- * An d there is also an I ncome_Test table rec ord Wherfu ture_test_ flag = 0 | |
| 1356 | -- * -And there is a record where the income_tes t_effectiv e_date = M AX(income_ test_effec tive_date) | |
| 1357 | -- * And there is a record w here the i ncome_year is greate r than the income_ye ar selecte d where th e future_t est_flag = 1 | |
| 1358 | -- * | |
| 1359 | -- * - It then sele cts the cu rrent year records f or each in dividual i n the futu re Income_ Test query | |
| 1360 | -- * Wh ere future _test_flag = 0 | |
| 1361 | -- * | |
| 1362 | -- * It t hen update s income_t est with c orrect inf ormation. | |
| 1363 | -- * | |
| 1364 | -- * Param eters: | |
| 1365 | -- * | |
| 1366 | -- * PB_r un_standal one Igno re DBMS_JO B logic fo r checking running j obs. | |
| 1367 | -- * Def ault: FALS E | |
| 1368 | -- * | |
| 1369 | -- * PB_a llow_rpt_i nst Allo w stored p rocedure t o be submi tted in th e | |
| 1370 | -- * DBMS _JOB queue on the AD R reportin g database s | |
| 1371 | -- * Def ault: FALS E | |
| 1372 | -- * | |
| 1373 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 1374 | -- | |
| 1375 | -- ======= ========== ========== ========== ========== ========== ========== ======== | |
| 1376 | -- Date Autho r Descrip tion | |
| 1377 | -- ======= ========== ========== ========== ========== ========== ========== ======== | |
| 1378 | -- 06/22/2 010 Craig Wood Created for CCR 1 173. | |
| 1379 | -- | |
| 1380 | -- | |
| 1381 | -- ======= ========== ========== ========== ========== ========== ========== ======== | |
| 1382 | ||
| 1383 | CURSOR f utureyears cur | |
| 1384 | IS | |
| 1385 | SELE CT it1.inc ome_test_i d income_t est_idf, i t1.person_ id person_ idf, | |
| 1386 | it1 .income_ye ar income_ yearf, | |
| 1387 | it1 .income_te st_effecti ve_date in come_test_ effective_ datef, | |
| 1388 | it1 .income_te st_type_id | |
| 1389 | FROM inc ome_test i t1 | |
| 1390 | WHERE it1 .future_te st_flag = 1 | |
| 1391 | AND EXI STS ( | |
| 1392 | SELECT it2 .income_ye ar | |
| 1393 | FROM inc ome_test i t2 | |
| 1394 | WHERE it2 .future_te st_flag = 0 | |
| 1395 | AND it2 .income_te st_effecti ve_date = | |
| 1396 | (SELECT MA X (it4.inc ome_test_e ffective_d ate) | |
| 1397 | FROM in come_test it4 | |
| 1398 | WHERE it 4.person_i d = it1.pe rson_id | |
| 1399 | AND it 4.income_t est_type_i d = it1.in come_test_ type_id | |
| 1400 | AND it 4.future_t est_flag = 0) | |
| 1401 | AND it2 .person_id = it1.per son_id | |
| 1402 | AND it2 .income_te st_type_id = it1.inc ome_test_t ype_id | |
| 1403 | AND it2 .income_ye ar > it1.i ncome_year ); | |
| 1404 | ||
| 1405 | ||
| 1406 | v_f_inc ome_test_i d inco me_test.in come_test_ id%TYPE; | |
| 1407 | v_f_per son_id inco me_test.pe rson_id%TY PE; | |
| 1408 | v_f_inc ome_year inco me_test.in come_year% TYPE; | |
| 1409 | v_f_inc ome_test_e ffective_d ate inco me_test.in come_test_ effective_ date%TYPE; | |
| 1410 | v_f_inc ome_test_t ype_id inco me_test.in come_test_ type_id%TY PE; | |
| 1411 | v_c_inc ome_test_i d inco me_test.in come_test_ id%TYPE; | |
| 1412 | v_c_per son_id inco me_test.pe rson_id%TY PE; | |
| 1413 | v_c_inc ome_year inco me_test.in come_year% TYPE; | |
| 1414 | v_c_inc ome_test_e ffective_d ate inco me_test.in come_test_ effective_ date%TYPE; | |
| 1415 | v_incom e_test_eff ective_dat e inco me_test.in come_test_ effective_ date%TYPE; | |
| 1416 | v_incom e_test_det ail_id inco me_test_de tail.incom e_test_det ail_id%TYP E; | |
| 1417 | v_incom e_test_id inco me_test_de tail.incom e_test_det ail_id%TYP E; | |
| 1418 | v_incom e_test_typ e_id inco me_test_de tail.incom e_test_id% TYPE; | |
| 1419 | v_test_ status_typ e_id inco me_test_de tail.test_ status_typ e_id%TYPE; | |
| 1420 | v_test_ detmnd_sta tus_type_i d inco me_test_de tail.test_ detmnd_sta tus_type_i d%TYPE; | |
| 1421 | v_incom e_test_las t_edited_d ate inco me_test_de tail.incom e_test_las t_edited_d ate%TYPE; | |
| 1422 | v_incom e_test_com pleted_dat e inco me_test_de tail.incom e_test_com pleted_dat e%TYPE; | |
| 1423 | v_incom e_test_exp iration_da te inco me_test_de tail.incom e_test_exp iration_da te%TYPE; | |
| 1424 | v1_inco me_test_ef fective_da te inco me_test_de tail.incom e_test_eff ective_dat e%TYPE; | |
| 1425 | v_incom e_test_sig ned_date inco me_test_de tail.incom e_test_sig ned_date%T YPE; | |
| 1426 | vh_inco me_test_la st_edit_da te inco me_test_de tail.incom e_test_las t_edited_d ate%TYPE; | |
| 1427 | vh_inco me_test_co mpleted_da te inco me_test_de tail.incom e_test_com pleted_dat e%TYPE; | |
| 1428 | v_count N UMBER; | |
| 1429 | v_debug VA RCHAR2(200 0); | |
| 1430 | ||
| 1431 | v_allow_ rpt_inst BOOLEAN := FALSE; | |
| 1432 | v_run_st andalone BOOLEAN := FALSE; | |
| 1433 | v_instan ce_name VARCHAR2(1 6); | |
| 1434 | v_job_co unt NUMBER := 0; | |
| 1435 | vc_allow _rpt_inst VARCHAR2(5 ) := NULL; | |
| 1436 | vc_run_s tandalone VARCHAR2(5 ) := NULL; | |
| 1437 | v_log_da te DATE; | |
| 1438 | v_rec_gr oup_date DATE; | |
| 1439 | v_proces s_name VARCHAR2(6 0) := 'ADR Income Te st Fix'; | |
| 1440 | CURSOR detailcurs or | |
| 1441 | IS | |
| 1442 | SELE CT income_ test_detai l_id, inco me_test_id , income_t est_type_i d, | |
| 1443 | test_st atus_type_ id, test_d etmnd_stat us_type_id , | |
| 1444 | income_ test_last_ edited_dat e, income_ test_compl eted_date, | |
| 1445 | income_ test_expir ation_date , income_t est_effect ive_date, | |
| 1446 | income_ test_signe d_date | |
| 1447 | FR OM income_ test_detai l | |
| 1448 | WHE RE income_ test_id = v_f_income _test_id; | |
| 1449 | ||
| 1450 | ||
| 1451 | ||
| 1452 | BEGIN | |
| 1453 | ||
| 1454 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 1455 | -- * | |
| 1456 | -- * Valid ate input parameters | |
| 1457 | -- * | |
| 1458 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 1459 | ||
| 1460 | -- * Check run stand alone flag | |
| 1461 | ||
| 1462 | IF p_run _standalon e IS NULL | |
| 1463 | OR NOT p_run_stan dalone THE N | |
| 1464 | v_ run_standa lone := FA LSE; | |
| 1465 | vc _run_stand alone := ' FALSE'; -- used for log messag e, boolean can't be displayed | |
| 1466 | ELSE | |
| 1467 | v_run_ standalone := TRUE; | |
| 1468 | vc_run _standalon e := 'TRUE '; -- used for log m essage, bo olean can' t be displ ayed | |
| 1469 | END IF; | |
| 1470 | ||
| 1471 | -- * Check run on re port insta nce flag | |
| 1472 | ||
| 1473 | IF p_all ow_rpt_ins t IS NULL | |
| 1474 | OR NOT p_allow_rp t_inst THE N | |
| 1475 | v_allo w_rpt_inst := FALSE; | |
| 1476 | vc_all ow_rpt_ins t := 'FALS E'; -- use d for log message, b oolean can 't be disp layed | |
| 1477 | ELSE | |
| 1478 | v_allo w_rpt_inst := TRUE; | |
| 1479 | vc_all ow_rpt_ins t := 'TRUE '; -- used for log m essage, bo olean can' t be displ ayed | |
| 1480 | END IF; | |
| 1481 | v_log_da te := SYSD ATE; | |
| 1482 | ADRMGT.J ob_Process _Log_Sp(PC _job_name => SUBSTR( v_process_ name,1,60) , | |
| 1483 | PD _job_log_d ate => v_l og_date, | |
| 1484 | PC _job_statu s => SUBST R('INFORMA TION - Pro cessing pa rameters f or this jo b',1,60), | |
| 1485 | PC _job_log_m essage => SUBSTR('Cu rrent job parameters - ' | |
| 1486 | || ' R un standal one: ' || vc_run_sta ndalone | |
| 1487 | || ' R un on repo rting data bases: ' | | vc_allow _rpt_inst, 1,2000), | |
| 1488 | PD _date1 => v_rec_grou p_date, | |
| 1489 | PC _text1 => SUBSTR('Da te1 column contains the daily process st art date', 1,255)); | |
| 1490 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 1491 | -- * | |
| 1492 | -- * Check to see if process i s running on a repor ting datab ase. | |
| 1493 | -- * - If v_allow_r pt_inst is FALSE, th en it's no t allowed. End the j ob. | |
| 1494 | -- * | |
| 1495 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 1496 | IF NOT v_allow_r pt_inst TH EN | |
| 1497 | BE GIN | |
| 1498 | v_log_d ate := SYS DATE; | |
| 1499 | ADRMGT. Job_Proces s_Log_Sp(P C_job_name => SUBSTR (v_process _name,1,60 ), | |
| 1500 | PD_job_l og_date => v_log_dat e, | |
| 1501 | PC_job_s tatus => S UBSTR('INF ORMATION - Checking if running on a repo rting data base',1,60 ), | |
| 1502 | PD_date1 => v_rec_ group_date , | |
| 1503 | PC_text1 => SUBSTR ('Date1 co lumn conta ins the da ily proces s start da te',1,255) ); | |
| 1504 | ||
| 1505 | SELECT Instance _name | |
| 1506 | INTO v_instan ce_name | |
| 1507 | FROM V$instan ce; | |
| 1508 | IF UPPER (SUBSTR(v_ instance_n ame,1,4)) = 'ADRR' T HEN | |
| 1509 | v_lo g_date := SYSDATE; | |
| 1510 | ADRM GT.Job_Pro cess_Log_S p(PC_job_n ame => SUB STR(v_proc ess_name,1 ,60), | |
| 1511 | PD_job _log_date => v_log_d ate, | |
| 1512 | PC_job _status => SUBSTR('W ARNING - Process ing Failed ',1,60), | |
| 1513 | PC_job _log_messa ge => SUBS TR('Attemp ting to ru n on a rep orting ins tance. Ins tance name : ' | |
| 1514 | || v_insta nce_name | |
| 1515 | || '. This job has b een termin ated. To r un on a re porting in stance,' | |
| 1516 | || ' set p arameter p _allow_rpt _inst to T RUE and re submit the job.',1,2 000), | |
| 1517 | PD_dat e1 => v_re c_group_da te, | |
| 1518 | PC_tex t1 => SUBS TR('Date1 column con tains the daily proc ess start date',1,25 5)); | |
| 1519 | RETU RN; | |
| 1520 | END IF; | |
| 1521 | EXCEPTI ON | |
| 1522 | WHEN OTHERS TH EN | |
| 1523 | v_ log_date : = SYSDATE; | |
| 1524 | AD RMGT.Job_P rocess_Log _Sp(PC_job _name => S UBSTR(v_pr ocess_name ,1,60), | |
| 1525 | PD_job _log_date => v_log_d ate, | |
| 1526 | PC_job _status => SUBSTR('E RROR - Unable to retriev e instance name',1,6 0), | |
| 1527 | PC_job _log_messa ge => SUBS TR('Termin ating scri pt.',1,200 0), | |
| 1528 | PD_dat e1 => v_re c_group_da te, | |
| 1529 | PC_tex t1 => SUBS TR('Date1 column con tains the daily proc ess start date',1,25 5)); | |
| 1530 | ||
| 1531 | RETURN; | |
| 1532 | END; | |
| 1533 | END IF ; | |
| 1534 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 1535 | -- * | |
| 1536 | -- * Check to see if any other jobs of t his proced ure are ru nning. | |
| 1537 | -- * - If yes, then end this job. | |
| 1538 | -- * | |
| 1539 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 1540 | ||
| 1541 | SELECT COUNT(*) | |
| 1542 | INTO v_job_cou nt | |
| 1543 | FROM SYS.DBA_J OBS_RUNNIN G R, | |
| 1544 | S YS.DBA_JOB S J | |
| 1545 | WHERE J.JOB = R. JOB | |
| 1546 | AND UPPER(J.WH AT) LIKE ' %ADR_INCOM E_TEST_FIX _SP%'; | |
| 1547 | IF v_j ob_count > 1 THEN | |
| 1548 | BE GIN | |
| 1549 | v_log_da te := SYSD ATE; | |
| 1550 | ADRMGT.J ob_Process _Log_Sp(PC _job_name => SUBSTR( v_process_ name,1,60) , | |
| 1551 | PD_job_log _date => v _log_date, | |
| 1552 | PC_job_sta tus => SUB STR('WARNI NG - C heck for r unning job s',1,60), | |
| 1553 | PC_job_log _message = > SUBSTR(' There is a nother Inc ome Test F ix job run ning.' | |
| 1554 | || ' Exiting j ob without running.' ,1,2000), | |
| 1555 | PD_date1 = > v_rec_gr oup_date, | |
| 1556 | PC_text1 = > SUBSTR(' Date1 colu mn contain s the dail y process start date ',1,255)); | |
| 1557 | ||
| 1558 | RETURN; | |
| 1559 | EN D; | |
| 1560 | ELSE | |
| 1561 | IF v_run_sta ndalone TH EN | |
| 1562 | v_log_da te := SYSD ATE; | |
| 1563 | ADRMGT.J ob_Process _Log_Sp(PC _job_name => SUBSTR( v_process_ name,1,60) , | |
| 1564 | PD_job_l og_date => v_log_dat e, | |
| 1565 | PC_job_s tatus => S UBSTR('INF ORMATION - Starting in STANDAL ONE mode', 1,60), | |
| 1566 | PD_date1 => v_rec_ group_date , | |
| 1567 | PC_text1 => SUBSTR ('Date1 co lumn conta ins the da ily proces s start da te',1,255) ); | |
| 1568 | EN D IF; | |
| 1569 | END IF ; | |
| 1570 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 1571 | -- * | |
| 1572 | -- * Main processing loop | |
| 1573 | -- * | |
| 1574 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 1575 | ||
| 1576 | ||
| 1577 | ||
| 1578 | ||
| 1579 | -- Remove all proces s logs ove r 14 days old | |
| 1580 | ||
| 1581 | BEGIN | |
| 1582 | ||
| 1583 | v_log_ date := SY SDATE; | |
| 1584 | ADRMGT .Job_Proce ss_Log_Sp( PC_job_nam e => SUBST R(v_proces s_name,1,6 0), | |
| 1585 | PD_job_log _date => v _log_date, | |
| 1586 | PC_job_sta tus => SUB STR('INFOR MATION - R emoving ol d process logs',1,60 ), | |
| 1587 | PC_job_log _message = > SUBSTR(' Removing p rocess log s over 14 days old', 1,2000), | |
| 1588 | PD_date1 = > v_rec_gr oup_date, | |
| 1589 | PC_text1 = > SUBSTR(' Date1 colu mn contain s the dail y process start date ',1,255)); | |
| 1590 | ||
| 1591 | DELETE | |
| 1592 | FROM ADRMGT .Job_Proce ss_Logs | |
| 1593 | WHERE Job_na me = v_pro cess_name | |
| 1594 | AND Date1 < TRUNC(SY SDATE) - 1 4; | |
| 1595 | ||
| 1596 | COMMIT ; | |
| 1597 | ||
| 1598 | v_log_ date := SY SDATE; | |
| 1599 | ADRMGT .Job_Proce ss_Log_Sp( PC_job_nam e => SUBST R(v_proces s_name,1,6 0), | |
| 1600 | PD_job_log _date => v _log_date, | |
| 1601 | PC_job_sta tus => SUB STR('INFOR MATION - R emoved old process l ogs',1,60) , | |
| 1602 | PC_job_log _message = > SUBSTR(' Removed pr ocess logs over 14 d ays old',1 ,2000), | |
| 1603 | PD_date1 = > v_rec_gr oup_date, | |
| 1604 | PC_text1 = > SUBSTR(' Date1 colu mn contain s the dail y process start date ',1,255)); | |
| 1605 | ||
| 1606 | ||
| 1607 | EXCEPTIO N | |
| 1608 | ||
| 1609 | WHEN N O_DATA_FOU ND THEN | |
| 1610 | ||
| 1611 | NULL ; | |
| 1612 | ||
| 1613 | WHEN O THERS THEN | |
| 1614 | ||
| 1615 | ADRM GT.Job_Pro cess_Log_S p(PC_job_n ame => SUB STR(v_proc ess_name,1 ,60), | |
| 1616 | PD_job_log _date => v _log_date, | |
| 1617 | PC_job_sta tus => SUB STR('ERROR - UNKOWN EXCEPTION' ,1,60), | |
| 1618 | PC_job_log _message = > SUBSTR(v _debug,1,2 000), | |
| 1619 | PD_date1 = > v_rec_gr oup_date, | |
| 1620 | PC_text1 = > SUBSTR(' Date1 colu mn contain s the dail y process start date ',1,255)); | |
| 1621 | ||
| 1622 | END; | |
| 1623 | ||
| 1624 | OPEN f utureyears cur; | |
| 1625 | LOOP | |
| 1626 | FETC H futureye arscur | |
| 1627 | INT O v_f_inco me_test_id , v_f_pers on_id, v_f _income_ye ar, | |
| 1628 | v_f_inco me_test_ef fective_da te, v_f_in come_test_ type_id; | |
| 1629 | EXIT WHEN futu reyearscur %NOTFOUND; | |
| 1630 | v_de bug := ''; | |
| 1631 | v_de bug := v_d ebug || 'S TEP1 for : ' || v_f_i ncome_test _id ; | |
| 1632 | v_lo g_date := SYSDATE; | |
| 1633 | ADRM GT.Job_Pro cess_Log_S p(PC_job_n ame => SUB STR(v_proc ess_name,1 ,60), | |
| 1634 | PD_job_log _date => v _log_date, | |
| 1635 | PC_job_sta tus => SUB STR('INFOR MATION - S tep 1',1,6 0), | |
| 1636 | PC_job_log _message = > SUBSTR(v _debug,1,2 000), | |
| 1637 | PD_date1 = > v_rec_gr oup_date, | |
| 1638 | PC_text1 = > SUBSTR(' Date1 colu mn contain s the dail y process start date ',1,255)); | |
| 1639 | ||
| 1640 | --find the current t est for th is person | |
| 1641 | BEGIN | |
| 1642 | SELECT income_te st_id, per son_id, in come_year, income_te st_effecti ve_date | |
| 1643 | INTO v_c_incom e_test_id, v_c_perso n_id, v_c_ income_yea r,v_c_inco me_test_ef fective_da te | |
| 1644 | FROM income_te st it2 | |
| 1645 | WHERE it2.incom e_test_eff ective_dat e = | |
| 1646 | ( SELECT MAX (income_t est_effect ive_date) | |
| 1647 | FR OM income_ test | |
| 1648 | WHE RE person_ id = v_f_p erson_id A ND future_ test_flag = 0) | |
| 1649 | A ND it2.per son_id = v _f_person_ id AND it2 .future_te st_flag = 0; | |
| 1650 | ||
| 1651 | v _debug := 'STEP2 for :' || v_f _income_te st_id|| CH R(10) || | |
| 1652 | 'SE LECT incom e_test_id, person_id , income_y ear, incom e_test_eff ective_dat e'|| CHR(1 0) || | |
| 1653 | 'IN TO v_c_inc ome_test_i d, v_c_per son_id, v_ c_income_y ear,v_c_in come_test_ effective_ date '|| C HR(10) || | |
| 1654 | ' F ROM income _test it2' || CHR(10 ) || | |
| 1655 | ' W HERE it2.i ncome_test _effective _date ='|| CHR(10) | | | |
| 1656 | '(S ELECT MAX (income_te st_effecti ve_date)' || CHR(10) || | |
| 1657 | 'FR OM income_ test' || C HR(10) || | |
| 1658 | ' W HERE perso n_id = v_f _person_id AND futur e_test_fla g = 0)' ; | |
| 1659 | ||
| 1660 | v _log_date := SYSDATE ; | |
| 1661 | A DRMGT.Job_ Process_Lo g_Sp(PC_jo b_name => SUBSTR(v_p rocess_nam e,1,60), | |
| 1662 | PD_job_log _date => v _log_date, | |
| 1663 | PC_job_sta tus => SUB STR('INFOR MATION - S tep 2',1,6 0), | |
| 1664 | PC_job_log _message = > SUBSTR(v _debug,1,2 000), | |
| 1665 | PD_date1 = > v_rec_gr oup_date, | |
| 1666 | PC_text1 = > SUBSTR(' Date1 colu mn contain s the dail y process start date ',1,255)); | |
| 1667 | EXCEPTION | |
| 1668 | ||
| 1669 | WHEN TOO _MANY_ROWS THEN | |
| 1670 | SELE CT income_ test_id, p erson_id, income_yea r, income_ test_effec tive_date | |
| 1671 | INTO v_c_incom e_test_id, v_c_perso n_id, v_c_ income_yea r,v_c_inco me_test_ef fective_da te | |
| 1672 | FROM income_te st it2 | |
| 1673 | WHER E it2.inco me_test_ef fective_da te = | |
| 1674 | (SEL ECT MAX (i ncome_test _effective _date) | |
| 1675 | FROM income_te st | |
| 1676 | WHER E person_i d = v_f_pe rson_id AN D future_t est_flag = 0) | |
| 1677 | AND it2.income _year = TO _NUMBER (T O_CHAR (SY SDATE, 'YY YY')) - 1 | |
| 1678 | AND it2.person _id = v_f_ person_id AND it2.fu ture_test_ flag = 0; | |
| 1679 | ||
| 1680 | v_de bug := 'ST EP2 for :' || v_f_in come_test_ id|| CHR(1 0) || | |
| 1681 | 'SE LECT incom e_test_id, person_id , income_y ear, incom e_test_eff ective_dat e:'|| CHR( 10) || | |
| 1682 | 'IN TO v_c_inc ome_test_i d, v_c_per son_id, v_ c_income_y ear,v_c_in come_test_ effective_ date '|| C HR(10) || | |
| 1683 | ' F ROM income _test it2' || CHR(10 ) || | |
| 1684 | ' W HERE it2.i ncome_test _effective _date ='|| CHR(10) | | | |
| 1685 | '(S ELECT MAX (income_te st_effecti ve_date)' || CHR(10) || | |
| 1686 | 'FR OM income_ test' || C HR(10) || | |
| 1687 | ' W HERE perso n_id = v_f _person_id AND futur e_test_fla g = 0)' || CHR(10) | | | |
| 1688 | ' A ND it2.inc ome_year = TO_NUMBER (TO_CHAR (SYSDATE, YYYY)) - 1 ' || CHR( 10) || | |
| 1689 | ' A ND it2.per son_id = v _f_person_ id AND it2 .future_te st_flag = 0'; | |
| 1690 | ||
| 1691 | v_lo g_date := SYSDATE; | |
| 1692 | ADRM GT.Job_Pro cess_Log_S p(PC_job_n ame => SUB STR(v_proc ess_name,1 ,60), | |
| 1693 | PD_job_log _date => v _log_date, | |
| 1694 | PC_job_sta tus => SUB STR('INFOR MATION - S TEP 2',1,6 0), | |
| 1695 | PC_job_log _message = > SUBSTR(v _debug,1,2 000), | |
| 1696 | PD_date1 = > v_rec_gr oup_date, | |
| 1697 | PC_text1 = > SUBSTR(' Date1 colu mn contain s the dail y process start date ',1,255)); | |
| 1698 | ||
| 1699 | WHEN OTHERS TH EN | |
| 1700 | v_debug := 'UNKNOWN EXCEPTION : ' ||CHR (10)|| | |
| 1701 | 'er ror code i s : '||sql code || CH R(10)|| | |
| 1702 | 'er ror code m essage is : '||SQLER RM || CHR( 10)|| | |
| 1703 | 'Ex ception oc cured for v_c_incom e_test_id: ' || v_c_ income_tes t_id|| CHR (10)|| | |
| 1704 | 'v_c_perso n_id: '|| v_c_person _id ; | |
| 1705 | v _log_date := SYSDATE ; | |
| 1706 | ADRM GT.Job_Pro cess_Log_S p(PC_job_n ame => SUB STR(v_proc ess_name,1 ,60), | |
| 1707 | PD_job_log _date => v _log_date, | |
| 1708 | PC_job_sta tus => SUB STR('ERROR - STEP 2' ,1,60), | |
| 1709 | PC_job_log _message = > SUBSTR(v _debug,1,2 000), | |
| 1710 | PD_date1 = > v_rec_gr oup_date, | |
| 1711 | PC_text1 = > SUBSTR(' Date1 colu mn contain s the dail y process start date ',1,255)); | |
| 1712 | ||
| 1713 | END; | |
| 1714 | ||
| 1715 | -- we have the cuure nt income_ year and f uture inco me year. | |
| 1716 | BEGI N | |
| 1717 | S ELECT DIST INCT incom e_test_eff ective_dat e | |
| 1718 | INTO v_in come_test_ effective_ date | |
| 1719 | FROM inco me_test_h | |
| 1720 | WHERE pers on_id = v_ f_person_i d | |
| 1721 | AND inco me_test_id = v_f_inc ome_test_i d | |
| 1722 | AND futu re_test_fl ag = 0 | |
| 1723 | AND ( re cord_modif ied_by <> 'CCR7649 D ataCleanup ' OR recor d_modified _by <> 'AD RCQ0000117 3'); | |
| 1724 | ||
| 1725 | ||
| 1726 | v_debug := 'STEP3 [i ncome_test _h]for : v _f_income_ test_id '| |v_f_incom e_test_id; | |
| 1727 | v_log_dat e := SYSDA TE; | |
| 1728 | ADRMGT.Jo b_Process_ Log_Sp(PC_ job_name = > SUBSTR(v _process_n ame,1,60), | |
| 1729 | PD_job_log _date => v _log_date, | |
| 1730 | PC_job_sta tus => SUB STR('INFOR MATION - S tep 3',1,6 0), | |
| 1731 | PC_job_log _message = > SUBSTR(v _debug,1,2 000), | |
| 1732 | PD_date1 = > v_rec_gr oup_date, | |
| 1733 | PC_text1 = > SUBSTR(' Date1 colu mn contain s the dail y process start date ',1,255)); | |
| 1734 | EXCE PTION | |
| 1735 | W HEN NO_DAT A_FOUND | |
| 1736 | T HEN | |
| 1737 | v_debug := 'NO DAT A FOUND IN THE HISTO RY TABLE F OR : ' | |
| 1738 | || v_f_i ncome_test _id || ' E xiting Loo p'; | |
| 1739 | v_log_da te := SYSD ATE; | |
| 1740 | ADRMGT.J ob_Process _Log_Sp(PC _job_name => SUBSTR( v_process_ name,1,60) , | |
| 1741 | PD_job_log _date => v _log_date, | |
| 1742 | PC_job_sta tus => SUB STR('INFOR MATION - N O DATA FOU ND',1,60), | |
| 1743 | PC_job_log _message = > SUBSTR(v _debug,1,2 000), | |
| 1744 | PD_date1 = > v_rec_gr oup_date, | |
| 1745 | PC_text1 = > SUBSTR(' Date1 colu mn contain s the dail y process start date ',1,255)); | |
| 1746 | GOTO EN D_OF_LOOP; | |
| 1747 | WHEN TOO _MANY_ROWS THEN | |
| 1748 | ||
| 1749 | v_de bug := 'TO O MANY ROW S : ' | |
| 1750 | || v_income_t est_detail _id ||' Ex iting Loop '; | |
| 1751 | v_lo g_date := SYSDATE; | |
| 1752 | ADRM GT.Job_Pro cess_Log_S p(PC_job_n ame => SUB STR(v_proc ess_name,1 ,60), | |
| 1753 | PD_job_log _date => v _log_date, | |
| 1754 | PC_job_sta tus => SUB STR('INFOR MATION - S TEP 3',1,6 0), | |
| 1755 | PC_job_log _message = > SUBSTR(v _debug,1,2 000), | |
| 1756 | PD_date1 = > v_rec_gr oup_date, | |
| 1757 | PC_text1 = > SUBSTR(' Date1 colu mn contain s the dail y process start date ',1,255)); | |
| 1758 | GOTO END_OF_LOO P; | |
| 1759 | END; | |
| 1760 | ||
| 1761 | ||
| 1762 | ||
| 1763 | --up date incom e test rec ord | |
| 1764 | UPDA TE income_ test | |
| 1765 | S ET future_ test_flag = 0, | |
| 1766 | income_ test_effec tive_date = v_income _test_effe ctive_date , | |
| 1767 | cad_adj usted_ind = NULL, | |
| 1768 | record_ modified_b y = 'ADRCQ 00001173', | |
| 1769 | record_ modified_d ate = SYSD ATE, | |
| 1770 | record_ modified_c ount = rec ord_modifi ed_count + 1 | |
| 1771 | WHE RE income_ test_id = v_f_income _test_id | |
| 1772 | A ND future_ test_flag = 1 | |
| 1773 | A ND person_ id = v_f_p erson_id; | |
| 1774 | ||
| 1775 | ||
| 1776 | v_de bug := 'ST EP4 UPDATE finished' ; | |
| 1777 | v_lo g_date := SYSDATE; | |
| 1778 | ADRM GT.Job_Pro cess_Log_S p(PC_job_n ame => SUB STR(v_proc ess_name,1 ,60), | |
| 1779 | PD_job_log _date => v _log_date, | |
| 1780 | PC_job_sta tus => SUB STR('INFOR MATION - S TEP 4',1,6 0), | |
| 1781 | PC_job_log _message = > SUBSTR(v _debug,1,2 000), | |
| 1782 | PD_date1 = > v_rec_gr oup_date, | |
| 1783 | PC_text1 = > SUBSTR(' Date1 colu mn contain s the dail y process start date ',1,255)); | |
| 1784 | --up date incom e test det ail table | |
| 1785 | OPEN detailcur sor; | |
| 1786 | ||
| 1787 | LOOP | |
| 1788 | F ETCH detai lcursor | |
| 1789 | INTO v_inc ome_test_d etail_id, v_income_t est_id, | |
| 1790 | v_inc ome_test_t ype_id, v_ test_statu s_type_id, | |
| 1791 | v_tes t_detmnd_s tatus_type _id, v_inc ome_test_l ast_edited _date, | |
| 1792 | v_inc ome_test_c ompleted_d ate, v_inc ome_test_e xpiration_ date, | |
| 1793 | v1_in come_test_ effective_ date, v_in come_test_ signed_dat e; | |
| 1794 | ||
| 1795 | E XIT WHEN d etailcurso r%NOTFOUND ; | |
| 1796 | ||
| 1797 | ||
| 1798 | v_debug := 'Inne r cursor d ata :' || v_c_income _test_id | |
| 1799 | || '--' | |
| 1800 | || v_c_ person_id | |
| 1801 | || '--' | |
| 1802 | || v_c_ income_yea r | |
| 1803 | || '--' | |
| 1804 | || v_c_ income_tes t_effectiv e_date | |
| 1805 | || '--' | |
| 1806 | || v_f_ income_tes t_id | |
| 1807 | || '--' | |
| 1808 | || v_f_ person_id | |
| 1809 | || '--' | |
| 1810 | || v_f_ income_yea r | |
| 1811 | || '--' | |
| 1812 | || v_f_ income_tes t_effectiv e_date | |
| 1813 | || '--' | |
| 1814 | || v_in come_test_ completed_ date || '- -' | |
| 1815 | || v_in come_test_ effective_ date; | |
| 1816 | ||
| 1817 | v_log_d ate := SYS DATE; | |
| 1818 | ADRMGT. Job_Proces s_Log_Sp(P C_job_name => SUBSTR (v_process _name,1,60 ), | |
| 1819 | PD_job_log _date => v _log_date, | |
| 1820 | PC_job_sta tus => SUB STR('INFOR MATION - I nner Curso r Data',1, 60), | |
| 1821 | PC_job_log _message = > SUBSTR(v _debug,1,2 000), | |
| 1822 | PD_date1 = > v_rec_gr oup_date, | |
| 1823 | PC_text1 = > SUBSTR(' Date1 colu mn contain s the dail y process start date ',1,255)); | |
| 1824 | ||
| 1825 | B EGIN | |
| 1826 | ||
| 1827 | SELECT i ncome_test _last_edit ed_date, | |
| 1828 | i ncome_test _completed _date | |
| 1829 | INTO v h_income_t est_last_e dit_date, | |
| 1830 | v h_income_t est_comple ted_date | |
| 1831 | FROM i ncome_test _detail_h | |
| 1832 | WHERE i ncome_test _id = v_in come_test_ id | |
| 1833 | AND i ncome_test _detail_id = v_incom e_test_det ail_id | |
| 1834 | AND i ncome_test _type_id = v_income_ test_type_ id | |
| 1835 | AND i ncome_test _completed _date <> v _income_te st_complet ed_date | |
| 1836 | AND r ecord_modi fied_by <> 'ADRCQ000 01173' ; | |
| 1837 | ||
| 1838 | v_debug := 'Fixin g the deta il :' | |
| 1839 | || v_i ncome_test _detail_id | |
| 1840 | || ' W ith date : ' | |
| 1841 | || vh_ income_tes t_complete d_date; | |
| 1842 | ||
| 1843 | v_log_d ate := SYS DATE; | |
| 1844 | ADRMGT. Job_Proces s_Log_Sp(P C_job_name => SUBSTR (v_process _name,1,60 ), | |
| 1845 | PD_job_log _date => v _log_date, | |
| 1846 | PC_job_sta tus => SUB STR('INFOR MATION - F IXING DETA IL',1,60), | |
| 1847 | PC_job_log _message = > SUBSTR(v _debug,1,2 000), | |
| 1848 | PD_date1 = > v_rec_gr oup_date, | |
| 1849 | PC_text1 = > SUBSTR(' Date1 colu mn contain s the dail y process start date ',1,255)); | |
| 1850 | ||
| 1851 | UPDATE i ncome_test _detail | |
| 1852 | SET i ncome_test _completed _date = vh _income_te st_complet ed_date, | |
| 1853 | r ecord_modi fied_by = 'ADRCQ0000 1173', | |
| 1854 | r ecord_modi fied_date = SYSDATE, | |
| 1855 | r ecord_modi fied_count = record_ modified_c ount + 1 | |
| 1856 | WHERE income_te st_detail_ id = v_inc ome_test_d etail_id; | |
| 1857 | ||
| 1858 | ||
| 1859 | E XCEPTION | |
| 1860 | WHEN NO_ DATA_FOUND | |
| 1861 | THEN | |
| 1862 | v_deb ug := 'NO DETAIL DAT A FOUND IN THE HISTO RY TABLE F OR :' | |
| 1863 | || v_ income_tes t_detail_i d; | |
| 1864 | v_log _date := S YSDATE; | |
| 1865 | ADRMG T.Job_Proc ess_Log_Sp (PC_job_na me => SUBS TR(v_proce ss_name,1, 60), | |
| 1866 | PD_job_log _date => v _log_date, | |
| 1867 | PC_job_sta tus => SUB STR('INFOR MATION - N O DATA FOU ND',1,60), | |
| 1868 | PC_job_log _message = > SUBSTR(v _debug,1,2 000), | |
| 1869 | PD_date1 = > v_rec_gr oup_date, | |
| 1870 | PC_text1 = > SUBSTR(' Date1 colu mn contain s the dail y process start date ',1,255)); | |
| 1871 | WHEN TOO _MANY_ROWS THEN | |
| 1872 | v_ debug := ' TOO MANY R OWS for in come_test_ detail :' | |
| 1873 | || v_ income_tes t_detail_i d || 'v_de bug :' || v_debug; | |
| 1874 | v_ log_date : = SYSDATE; | |
| 1875 | AD RMGT.Job_P rocess_Log _Sp(PC_job _name => S UBSTR(v_pr ocess_name ,1,60), | |
| 1876 | PD_job_log _date => v _log_date, | |
| 1877 | PC_job_sta tus => SUB STR('INFOR MATION - T OO MANY RO WS',1,60), | |
| 1878 | PC_job_log _message = > SUBSTR(v _debug,1,2 000), | |
| 1879 | PD_date1 = > v_rec_gr oup_date, | |
| 1880 | PC_text1 = > SUBSTR(' Date1 colu mn contain s the dail y process start date ',1,255)); | |
| 1881 | ||
| 1882 | E ND; | |
| 1883 | END LOOP; | |
| 1884 | ||
| 1885 | CLOS E detailcu rsor; | |
| 1886 | ||
| 1887 | <<END_ OF_LOOP>> | |
| 1888 | v_debug := 'END OF L OOP: ' | |
| 1889 | || v_c_ income_tes t_id | |
| 1890 | || '--' | |
| 1891 | || v_c_perso n_id | |
| 1892 | || '--' | |
| 1893 | || v_c_incom e_year | |
| 1894 | || '--' | |
| 1895 | || v_c_incom e_test_eff ective_dat e | |
| 1896 | || '--' | |
| 1897 | || v_f_incom e_test_id | |
| 1898 | || '--' | |
| 1899 | || v_f_perso n_id | |
| 1900 | || '--' | |
| 1901 | || v_f_incom e_year | |
| 1902 | || '--' | |
| 1903 | || v_f_incom e_test_eff ective_dat e | |
| 1904 | || '--' | |
| 1905 | || v_income_ test_effec tive_date; | |
| 1906 | v_log_da te := SYSD ATE; | |
| 1907 | ADRMGT.J ob_Process _Log_Sp(PC _job_name => SUBSTR( v_process_ name,1,60) , | |
| 1908 | PD_job_log _date => v _log_date, | |
| 1909 | PC_job_sta tus => SUB STR('INFOR MATION - < <END OF LO OP>>',1,60 ), | |
| 1910 | PC_job_log _message = > SUBSTR(v _debug,1,2 000), | |
| 1911 | PD_date1 = > v_rec_gr oup_date, | |
| 1912 | PC_text1 = > SUBSTR(' Date1 colu mn contain s the dail y process start date ',1,255)); | |
| 1913 | ||
| 1914 | END LOO P; | |
| 1915 | ||
| 1916 | CLOSE f utureyears cur; | |
| 1917 | ||
| 1918 | --get t he final c ount | |
| 1919 | SELECT co unt(*) INT O v_count | |
| 1920 | FROM inc ome_test i t1 | |
| 1921 | WHERE it1 .future_te st_flag = 1 | |
| 1922 | AND EXI STS ( | |
| 1923 | SELECT it2 .income_ye ar | |
| 1924 | FROM inc ome_test i t2 | |
| 1925 | WHERE it2 .future_te st_flag = 0 | |
| 1926 | AND it2 .income_te st_effecti ve_date = | |
| 1927 | (SELECT MA X (it4.inc ome_test_e ffective_d ate) | |
| 1928 | FROM in come_test it4 | |
| 1929 | WHERE it 4.person_i d = it1.pe rson_id | |
| 1930 | AND it 4.income_t est_type_i d = it1.in come_test_ type_id | |
| 1931 | AND it 4.future_t est_flag = 0) | |
| 1932 | AND it2 .person_id = it1.per son_id | |
| 1933 | AND it2 .income_te st_type_id = it1.inc ome_test_t ype_id | |
| 1934 | AND it2 .income_ye ar > it1.i ncome_year ); | |
| 1935 | ||
| 1936 | v_d ebug := 'C ompleted t he cleanup . Total Nu mber of re cords stil l need to be fixed [ SHOULD BE 0]:' | |
| 1937 | || v_count; | |
| 1938 | v_l og_date := SYSDATE; | |
| 1939 | ADR MGT.Job_Pr ocess_Log_ Sp(PC_job_ name => SU BSTR(v_pro cess_name, 1,60), | |
| 1940 | PD_job_log _date => v _log_date, | |
| 1941 | PC_job_sta tus => SUB STR('INFOR MATION - C LEANUP COM PLETED',1, 60), | |
| 1942 | PC_job_log _message = > SUBSTR(v _debug,1,2 000), | |
| 1943 | PD_date1 = > v_rec_gr oup_date, | |
| 1944 | PC_text1 = > SUBSTR(' Date1 colu mn contain s the dail y process start date ',1,255)); | |
| 1945 | EXCEPTION | |
| 1946 | WHEN NO _DATA_FOUN D | |
| 1947 | THEN | |
| 1948 | v_log_da te := SYSD ATE; | |
| 1949 | ADRMGT.J ob_Process _Log_Sp(PC _job_name => SUBSTR( v_process_ name,1,60) , | |
| 1950 | PD_job_log _date => v _log_date, | |
| 1951 | PC_job_sta tus => SUB STR('INFOR MATION - N O DATA FOU ND',1,60), | |
| 1952 | PC_job_log _message = > SUBSTR(' NO DATA FO UND',1,200 0), | |
| 1953 | PD_date1 = > v_rec_gr oup_date, | |
| 1954 | PC_text1 = > SUBSTR(' Date1 colu mn contain s the dail y process start date ',1,255)); | |
| 1955 | WHEN OT HERS | |
| 1956 | THEN | |
| 1957 | v_de bug := 'UN KNOWN EXCE PTION :' | |CHR(10)|| | |
| 1958 | 'er ror code i s : '||sql code || CH R(10)|| | |
| 1959 | 'er ror code m essage is : '||SQLER RM || CHR( 10)|| | |
| 1960 | 'Ex ception oc cured for ' || v_c_ income_tes t_id | |
| 1961 | || '--' | |
| 1962 | || v_c_perso n_id | |
| 1963 | || '--' | |
| 1964 | || v_c_incom e_year | |
| 1965 | || '--' | |
| 1966 | || v_c_incom e_test_eff ective_dat e | |
| 1967 | || '--' | |
| 1968 | || v_f_incom e_test_id | |
| 1969 | || '--' | |
| 1970 | || v_f_perso n_id | |
| 1971 | || '--' | |
| 1972 | || v_f_incom e_year | |
| 1973 | || '--' | |
| 1974 | || v_f_incom e_test_eff ective_dat e | |
| 1975 | || '--' | |
| 1976 | || v_income_ test_effec tive_date; | |
| 1977 | v_log_dat e := SYSDA TE; | |
| 1978 | ADRMGT.Jo b_Process_ Log_Sp(PC_ job_name = > SUBSTR(v _process_n ame,1,60), | |
| 1979 | PD_job_log _date => v _log_date, | |
| 1980 | PC_job_sta tus => SUB STR('ERROR - UNKOWN EXCEPTION' ,1,60), | |
| 1981 | PC_job_log _message = > SUBSTR(v _debug,1,2 000), | |
| 1982 | PD_date1 = > v_rec_gr oup_date, | |
| 1983 | PC_text1 = > SUBSTR(' Date1 colu mn contain s the dail y process start date ',1,255)); | |
| 1984 | ||
| 1985 | END; | |
| 1986 | / | |
| 1987 | DROP PROCE DURE ADR.B ATCH_SSN_P ROCESSED_S P; | |
| 1988 | ||
| 1989 | CREATE OR REPLACE PR OCEDURE AD R.BATCH_SS N_PROCESSE D_SP | |
| 1990 | ( P_batch_ SSN_ADRToP rocess_DIR IN VARCH AR2, | |
| 1991 | P_batch_ SSN_ToProc ess_DIR IN VARCH AR2, | |
| 1992 | P_batch_ SSN_log_DI R IN VARCH AR2, | |
| 1993 | P_batch_ SSN_err_DI R IN VARCH AR2, | |
| 1994 | P_num_fi les_proces s IN NUMBE R DEFAULT 2, | |
| 1995 | PB_run_s tandalone IN BOOLE AN DEFAULT FALSE, | |
| 1996 | PB_allow _rpt_inst IN BOOLE AN DEFAULT FALSE) | |
| 1997 | ||
| 1998 | -- ####### ########## ########## ########## ########## ########## ########## ########## ## | |
| 1999 | -- # Desc ription: C CR 1674: P rocess a b acklog of SSN Verifi catio | |
| 2000 | -- # | |
| 2001 | -- # Usa ge: Calle d by run_w rapper.sql | |
| 2002 | -- # Inp ut Paramet ers: | |
| 2003 | -- # 1 ) None | |
| 2004 | -- # Out put: | |
| 2005 | -- # 1 ) Terminal | |
| 2006 | -- # Int ernal Scri pt Paramet ers: | |
| 2007 | -- # 1 ) None | |
| 2008 | -- # | |
| 2009 | -- # | |
| 2010 | -- ####### ########## ########## ########## ########## ########## ########## ######## | |
| 2011 | -- # Chang e History | |
| 2012 | -- # | |
| 2013 | -- # DATE User Name DESCRI PTION | |
| 2014 | -- # ----- ----- ---- ---------- --- ------ ---------- ---------- ---------- ---------- --- | |
| 2015 | -- # 06/10 /2012 Rich ard Do Create d | |
| 2016 | -- # | |
| 2017 | -- # | |
| 2018 | -- ####### ########## ########## ########## ########## ########## ########## ######## | |
| 2019 | AS | |
| 2020 | ||
| 2021 | CC_SSN_ VERIFICATI ON_EXT CONSTA NT VARCHAR 2(20):= 'S SN_VERIFIC ATION_EXT' ; | |
| 2022 | CC_BATC H_SSN_LOG_ DIR CONSTA NT VARCHAR 2(20):= 'B ATCH_SSN_L OG_DIR'; | |
| 2023 | CC_BATC H_SSN_TOPR OCESS_DIR CONSTA NT VARCHAR 2(25):= 'B ATCH_SSN_T OPROCESS_D IR'; | |
| 2024 | CC_BATC H_SSN_ADRT OPROCESS_D IR CONSTA NT VARCHAR 2(35):= 'B ATCH_SSN_A DRTOPROCES S_DIR'; | |
| 2025 | CC_BATC H_SSN_ERR_ DIR CONSTA NT VARCHAR 2(20):= 'B ATCH_SSN_E RR_DIR'; | |
| 2026 | CC_JOB_ SSN_TERM_S OL VARCHA R2(23) := 'Job-SSNIt erimSoluti on'; | |
| 2027 | ||
| 2028 | CC_MAX_ ROWS_COMMI T CONSTANT NUMBER := 1000; | |
| 2029 | ||
| 2030 | V_File_ handle UTL _FILE.FILE _TYPE; | |
| 2031 | V_FILE_ Line VARCH AR2(1024); | |
| 2032 | ||
| 2033 | VD_log_ date DATE; | |
| 2034 | VD_rec_ group_date DATE; | |
| 2035 | VN_SSN_ VER_ID NUMBER ; | |
| 2036 | VC_log_ step VARCHA R2(500); | |
| 2037 | VN_job_ number NUMBER := 0; | |
| 2038 | VC_proc ess_name VARCHA R2(30) := 'ADR.BATCH _SSN_PROCE SSED_SP'; | |
| 2039 | ||
| 2040 | VC_file _name VARCHA R2(300); | |
| 2041 | VC_log_ file VARCHA R2(200); | |
| 2042 | VC_erro r_file VARCHA R2(200); | |
| 2043 | VC_pref ix_file VARCHA R2(40):= ' SSA.r'; | |
| 2044 | VN_vpid _value ADR.pe rson.vpid_ value%TYPE ; | |
| 2045 | ||
| 2046 | VN_pers on_id ADR.pers on.person_ id%TYPE; | |
| 2047 | VN_erro r_count NUMBER; | |
| 2048 | VN_num_ rows_bePro cessed NUMBER; | |
| 2049 | VN_num_ rows_proce ssed NUMBER; | |
| 2050 | VD_days _deletion NUMBER:= 14; | |
| 2051 | VN_rec_ count NUMBER:= 0; | |
| 2052 | VN_job_ count NUMBER:= 0; | |
| 2053 | ||
| 2054 | VB_allo w_rpt_inst BOOLEAN := FALSE; | |
| 2055 | VB_run_ standalone BOOLEAN := FALSE; | |
| 2056 | ||
| 2057 | VC_allo w_rpt_inst VARCHAR2 (5) := NUL L; | |
| 2058 | VC_inst ance_name VARCHAR2 (16); | |
| 2059 | VC_run_ standalone VARCHAR2 (5) := NUL L; | |
| 2060 | t1 INTEGER; | |
| 2061 | t2 INTEGER; | |
| 2062 | ||
| 2063 | ||
| 2064 | ||
| 2065 | VC_ADRt oProcess_f ile_path ALL_DIRE CTORIES.DI RECTORY_PA TH%TYPE; | |
| 2066 | VC_ToPr ocess_file _path ALL_DIRE CTORIES.DI RECTORY_PA TH%TYPE; | |
| 2067 | VC_erro r_file_pat h ALL_DIRE CTORIES.DI RECTORY_PA TH%TYPE; | |
| 2068 | VC_log_ file_path ALL_DIRE CTORIES.DI RECTORY_PA TH%TYPE; | |
| 2069 | VC_TMP NUMBER : = 0; | |
| 2070 | VN_comm it_cnt NUMBER : = 0; | |
| 2071 | ||
| 2072 | VC_SQLS TMNT VARCHAR2 (2000); | |
| 2073 | ||
| 2074 | FILE_PA TH_ADRTOPR OCESS_NULL _E EXCEPTI ON; | |
| 2075 | FILE_PA TH_TOPROCE SS_NULL_E EXCEPTIO N; | |
| 2076 | LOG_FIL E_PATH_NUL L_E EXCEPTIO N; | |
| 2077 | ERROR_F ILE_PATH_N ULL_E EXCEPTIO N; | |
| 2078 | ||
| 2079 | INVALID _SSN_ADRTO PROCESS_E EXCEPTIO N; | |
| 2080 | INVALID _SSN_TOPRO CESS_E EXCEPTIO N; | |
| 2081 | INVALID _SSN_LOG_E EXCEPTIO N; | |
| 2082 | INVALID _SSN_ERR_E EXCEPTIO N; | |
| 2083 | ||
| 2084 | ||
| 2085 | BEGIN | |
| 2086 | ||
| 2087 | VD_rec_ group_date := TRUNC( SYSDATE); | |
| 2088 | t1 := DBMS_UTILI TY.get_tim e; | |
| 2089 | ||
| 2090 | ||
| 2091 | -- **** ********** ********** ********** ********** ********** ********** ********** * | |
| 2092 | -- * | |
| 2093 | -- * Va lidate inp ut paramet ers | |
| 2094 | -- * | |
| 2095 | -- **** ********** ********** ********** ********** ********** ********** ********** * | |
| 2096 | ||
| 2097 | VC_log_ step := 'C hecking in put parame ters.'; | |
| 2098 | ||
| 2099 | IF NVL( P_batch_SS N_ADRToPro cess_DIR,' ***') != C C_BATCH_SS N_ADRTOPRO CESS_DIR T HEN | |
| 2100 | ||
| 2101 | RAISE INVALID_S SN_ADRTOPR OCESS_E; | |
| 2102 | ||
| 2103 | ELSIF N VL(P_batch _SSN_ToPro cess_DIR,' ***') != C C_BATCH_SS N_TOPROCES S_DIR THEN | |
| 2104 | ||
| 2105 | RAIS E INVALID_ SSN_TOPROC ESS_E; | |
| 2106 | ||
| 2107 | ELSIF N VL(P_batch _SSN_log_D IR,'***') != CC_BATC H_SSN_LOG_ DIR THEN | |
| 2108 | ||
| 2109 | RAIS E INVALID_ SSN_LOG_E; | |
| 2110 | ||
| 2111 | ELSIF N VL(P_batch _SSN_err_D IR,'***') != CC_BATC H_SSN_ERR_ DIR THEN | |
| 2112 | ||
| 2113 | RAIS E INVALID_ SSN_ERR_E; | |
| 2114 | ||
| 2115 | END IF; | |
| 2116 | ||
| 2117 | ||
| 2118 | -- * Ch eck run st andalone f lag | |
| 2119 | ||
| 2120 | IF PB_r un_standal one IS NUL L | |
| 2121 | OR N OT PB_run_ standalone THEN | |
| 2122 | ||
| 2123 | VB_ run_standa lone := FA LSE; | |
| 2124 | VC_ run_standa lone := 'F ALSE'; -- used for l og message , boolean can't be d isplayed | |
| 2125 | ||
| 2126 | ELSE | |
| 2127 | ||
| 2128 | VB_ run_standa lone := TR UE; | |
| 2129 | VC_ run_standa lone := 'T RUE'; -- u sed for lo g message, boolean c an't be di splayed | |
| 2130 | ||
| 2131 | END IF; | |
| 2132 | ||
| 2133 | -- * Ch eck run on report in stance fla g | |
| 2134 | ||
| 2135 | IF PB_a llow_rpt_i nst IS NUL L | |
| 2136 | OR N OT PB_allo w_rpt_inst THEN | |
| 2137 | ||
| 2138 | VB_ allow_rpt_ inst := FA LSE; | |
| 2139 | VC_ allow_rpt_ inst := 'F ALSE'; -- used for l og message , boolean can't be d isplayed | |
| 2140 | ||
| 2141 | ELSE | |
| 2142 | ||
| 2143 | VB_ allow_rpt_ inst := TR UE; | |
| 2144 | VC_ allow_rpt_ inst := 'T RUE'; -- u sed for lo g message, boolean c an't be di splayed | |
| 2145 | ||
| 2146 | END IF; | |
| 2147 | ||
| 2148 | VD_log_ date := SY SDATE; | |
| 2149 | ||
| 2150 | ||
| 2151 | ||
| 2152 | BEGIN | |
| 2153 | ||
| 2154 | -- * ********** ********** ********** ********** ********** ********** ********** **** | |
| 2155 | -- * | |
| 2156 | -- * Check to see if pro cess is ru nning on a reporting database. | |
| 2157 | -- * - If VB_ allow_rpt_ inst is FA LSE, then it's not a llowed. En d the job. | |
| 2158 | -- * | |
| 2159 | -- * ********** ********** ********** ********** ********** ********** ********** **** | |
| 2160 | ||
| 2161 | IF N OT VB_allo w_rpt_inst THEN | |
| 2162 | ||
| 2163 | S ELECT i nstance_na me | |
| 2164 | I NTO V C_instance _name | |
| 2165 | F ROM V $instance; | |
| 2166 | ||
| 2167 | I F UPPER(SU BSTR(VC_in stance_nam e,1,4)) = 'ADRR' THE N | |
| 2168 | ||
| 2169 | VD_log_d ate := SYS DATE; | |
| 2170 | ADRMGT.J ob_Process _Log_Sp(PC _job_name => SUBSTR( VC_process _name,1,60 ), | |
| 2171 | PD_ job_log_da te => VD_l og_date, | |
| 2172 | PC_ job_status => SUBSTR ('WARNING - Proc essing Fai led',1,60) , | |
| 2173 | PC_ job_log_me ssage => S UBSTR('Att empting to run on a reporting instance. Instance n ame: ' | |
| 2174 | || VC_in stance_nam e | |
| 2175 | || '. T his job ha s been ter minated. T o run on a reporting instance, ' | |
| 2176 | || ' se t paramete r VB_allow _rpt_inst to TRUE an d resubmit the job.' ,1,2000), | |
| 2177 | PD_ date1 => V D_rec_grou p_date, | |
| 2178 | PC_ text1 => S UBSTR('Dat e1 column contains t he daily p rocess sta rt date',1 ,255)); | |
| 2179 | ||
| 2180 | RETURN; | |
| 2181 | ||
| 2182 | E ND IF; | |
| 2183 | ||
| 2184 | END IF; | |
| 2185 | ||
| 2186 | ||
| 2187 | -- * ********** ********** ********** ********** ********** ********** ********** **** | |
| 2188 | -- * | |
| 2189 | -- * Check to see if the job has a lready run today | |
| 2190 | -- * - If run ning in st and-alone mode, don' t check. | |
| 2191 | -- * - Otherw ise, if jo b has alre ady run to day, then exit the j ob. | |
| 2192 | -- * | |
| 2193 | -- * ********** ********** ********** ********** ********** ********** ********** **** | |
| 2194 | IF N OT PB_run_ standalone THEN | |
| 2195 | ||
| 2196 | SELECT COUNT(*) | |
| 2197 | INTO VN_rec_c ount | |
| 2198 | FROM ADRMGT.Jo b_Process_ Logs | |
| 2199 | WHERE Job_name = VC_proce ss_name | |
| 2200 | AND Date1 = V D_rec_grou p_date | |
| 2201 | AND Job_statu s = 'SUCCE SS - P rocessing Completed' ; | |
| 2202 | ||
| 2203 | IF VN_rec _count > 0 THEN | |
| 2204 | ||
| 2205 | VD_log _date := S YSDATE; | |
| 2206 | ADRMGT .Job_Proce ss_Log_Sp( PC_job_nam e => SUBST R(VC_proce ss_name,1, 60), | |
| 2207 | PD_job_l og_date => VD_log_da te, | |
| 2208 | PC_job_s tatus => S UBSTR('INF ORMATION - This date has alrea dy been pr ocessed',1 ,60), | |
| 2209 | PC_job_l og_message => SUBSTR ('Processi ng has alr eady compl eted for t his date. Exiting to job queue .',1,2000) , | |
| 2210 | PD_date1 => VD_rec _group_dat e, | |
| 2211 | PC_text1 => SUBSTR ('Date1 co lumn conta ins the da ily proces s start da te',1,255) ); | |
| 2212 | ||
| 2213 | RETURN ; | |
| 2214 | ||
| 2215 | END IF; | |
| 2216 | ||
| 2217 | END IF; | |
| 2218 | ||
| 2219 | -- * ********** ********** ********** ********** ********** ********** ********** **** | |
| 2220 | -- * | |
| 2221 | -- * Check to see if any other job s of this procedure are runnin g. | |
| 2222 | -- * If yes, then end t his job. | |
| 2223 | -- * | |
| 2224 | -- * ********** ********** ********** ********** ********** ********** ********** **** | |
| 2225 | ||
| 2226 | SELE CT COUNT(* ) | |
| 2227 | IN TO VN_jo b_count | |
| 2228 | FROM SYS.DBA_ JOBS_RUNNI NG R, | |
| 2229 | SYS.DBA_ JOBS J | |
| 2230 | WHER E J.JOB = R.JOB | |
| 2231 | AND schema_use r = 'ADR' | |
| 2232 | AND upper(WHAT ) LIKE '%B ATCH_SSN_P ROCESSED_S P%'; | |
| 2233 | ||
| 2234 | ||
| 2235 | IF V N_job_coun t > 1 THEN | |
| 2236 | ||
| 2237 | VD _log_date := SYSDATE ; | |
| 2238 | AD RMGT.Job_P rocess_Log _Sp(PC_job _name => S UBSTR(VC_p rocess_nam e,1,60), | |
| 2239 | PD_ job_log_da te => VD_l og_date, | |
| 2240 | PC_ job_status => SUBSTR ('WARNING - Chec k for runn ing jobs', 1,60), | |
| 2241 | PC_ job_log_me ssage => S UBSTR('The re is anot her SSN VE RIFICATION job runni ng.' | |
| 2242 | || ' Exi ting job w ithout run ning.',1,2 000), | |
| 2243 | PD_ date1 => V D_rec_grou p_date, | |
| 2244 | PC_ text1 => S UBSTR('Dat e1 column contains t he daily p rocess sta rt date',1 ,255)); | |
| 2245 | ||
| 2246 | RETURN; | |
| 2247 | ||
| 2248 | ELSI F VB_run_s tandalone THEN | |
| 2249 | ||
| 2250 | VD_log_dat e := SYSDA TE; | |
| 2251 | ADRMGT.Job _Process_L og_Sp(PC_j ob_name => SUBSTR(VC _process_n ame,1,60), | |
| 2252 | PD_ job_log_da te => VD_l og_date, | |
| 2253 | PC_ job_status => SUBSTR ('INFORMAT ION - Star ting in ST ANDALONE m ode',1,60) , | |
| 2254 | PD_ date1 => V D_rec_grou p_date, | |
| 2255 | PC_ text1 => S UBSTR('Dat e1 column contains t he daily p rocess sta rt date',1 ,255)); | |
| 2256 | ||
| 2257 | ELSE | |
| 2258 | ||
| 2259 | SELECT MAX(J.Job) | |
| 2260 | INTO VN_job_nu mber | |
| 2261 | FROM SYS.DBA_JO BS_RUNNING R, | |
| 2262 | SYS.DBA_JO BS J | |
| 2263 | WHERE J.JOB = R. JOB | |
| 2264 | AND UPPER(J.WH AT) LIKE ' %ADR_ADDRE SS_Z05_UPD ATE_SP%'; | |
| 2265 | ||
| 2266 | VD_log_dat e := SYSDA TE; | |
| 2267 | ADRMGT.Job _Process_L og_Sp(PC_j ob_name => SUBSTR(VC _process_n ame,1,60), | |
| 2268 | P D_job_log_ date => VD _log_date, | |
| 2269 | P C_job_stat us => SUBS TR('INFORM ATION - St arting DBM S_JOB mode ',1,60), | |
| 2270 | P D_date1 => VD_rec_gr oup_date, | |
| 2271 | P C_text1 => SUBSTR('D ate1 colum n contains the daily process s tart date' ,1,255)); | |
| 2272 | ||
| 2273 | END IF; | |
| 2274 | ||
| 2275 | ||
| 2276 | EXCE PTION | |
| 2277 | ||
| 2278 | WHE N OTHERS T HEN | |
| 2279 | ||
| 2280 | V D_log_date := SYSDAT E; | |
| 2281 | A DRMGT.Job_ Process_Lo g_Sp(PC_jo b_name => SUBSTR(VC_ process_na me,1,60), | |
| 2282 | P D_job_log_ date => VD _log_date, | |
| 2283 | P C_job_stat us => SUBS TR('ERROR - Un able to re trieve ins tance name ',1,60), | |
| 2284 | P C_job_log_ message => SUBSTR('T erminating script.', 1,2000), | |
| 2285 | P D_date1 => VD_rec_gr oup_date, | |
| 2286 | P C_text1 => SUBSTR('D ate1 colum n contains the daily process s tart date' ,1,255)); | |
| 2287 | ||
| 2288 | R ETURN; | |
| 2289 | ||
| 2290 | END; | |
| 2291 | ||
| 2292 | ||
| 2293 | VC_log_ step := 'R etrieving dir paths for '||P_b atch_SSN_A DRToProces s_DIR; | |
| 2294 | ||
| 2295 | -- ==== ========== ========== ========== ========== ========== ========== == | |
| 2296 | -- | |
| 2297 | -- MAIN PROGRAM | |
| 2298 | -- | |
| 2299 | -- Retr ieving dir ectory pat hs of exte rnal files , log/erro r/processe d | |
| 2300 | -- | |
| 2301 | -- ==== ========== ========== ========== ========== ========== ========== = | |
| 2302 | ||
| 2303 | SELECT d.director y_path , | |
| 2304 | l.director y_path, | |
| 2305 | err.direct ory_path, | |
| 2306 | p.director y_path | |
| 2307 | INTO | |
| 2308 | VC_A DRToProces s_file_pat h, | |
| 2309 | VC_l og_file_pa th, | |
| 2310 | VC_e rror_file_ path, | |
| 2311 | VC_T oProcess_f ile_path | |
| 2312 | FROM al l_director ies d, | |
| 2313 | ( SELECT dir ectory_pat h | |
| 2314 | FROM all_ directorie s | |
| 2315 | WHERE dire ctory_name = P_batch _SSN_log_D IR) l, | |
| 2316 | ( SELECT dir ectory_pat h | |
| 2317 | FROM all_ directorie s | |
| 2318 | WHERE dire ctory_name = P_batch _SSN_err_D IR) err, | |
| 2319 | ( SELECT dir ectory_pat h | |
| 2320 | FROM all_ directorie s | |
| 2321 | WHERE dire ctory_name = P_batch _SSN_ToPro cess_DIR) p | |
| 2322 | WHERE d .directory _name = P_ batch_SSN_ ADRToProce ss_DIR; | |
| 2323 | ||
| 2324 | ||
| 2325 | ADRMGT. Job_Proces s_Log_Sp( | |
| 2326 | P C_job_name => SUBSTR (VC_proces s_name,1,6 0), | |
| 2327 | P D_job_log_ date => SY SDATE, | |
| 2328 | P C_job_stat us => SUBS TR('INFORM ATION - Pr ocess Init iation',1, 60), | |
| 2329 | P C_job_log_ message => SUBSTR('I NFORMATION - ADRToPr ocess DIR= '||VC_ADR ToProcess_ file_path| |' ** '|| | |
| 2330 | 'L og DIR= '| |P_batch_S SN_log_DIR ||' ** '|| | |
| 2331 | 'E rror DIR= '||P_batch _SSN_err_D IR||' ** ' || | |
| 2332 | 'T oProcess D IR= '||VC_ ToProcess_ file_path| |' ** '|| | |
| 2333 | VC _log_step, 1,2000), | |
| 2334 | P D_date1 => SYSDATE, | |
| 2335 | P C_text1 => SUBSTR(VC _log_step, 1,255)); | |
| 2336 | ||
| 2337 | ||
| 2338 | IF VC_A DRtoProces s_file_pat h IS NULL THEN | |
| 2339 | ||
| 2340 | VC_lo g_step := 'Directory path of A DRToProces s IS NOT s etup.'; | |
| 2341 | ||
| 2342 | RAISE FILE_PAT H_ADRTOPRO CESS_NULL_ E; | |
| 2343 | ||
| 2344 | ELSIF V C_ToProces s_file_pat h IS NULL THEN | |
| 2345 | ||
| 2346 | VC_lo g_step := 'Directory path of T oProcessed IS NOT se tup.'; | |
| 2347 | RAISE FILE_PAT H_TOPROCES S_NULL_E; | |
| 2348 | ||
| 2349 | ELSIF V C_log_file _path IS N ULL THEN | |
| 2350 | ||
| 2351 | VC_lo g_step := 'Directory path of L og IS NOT setup.'; | |
| 2352 | RAISE LOG_FILE _PATH_NULL _E; | |
| 2353 | ||
| 2354 | ELSIF V C_error_fi le_path IS NULL THEN | |
| 2355 | ||
| 2356 | VC_lo g_step := 'Directory path of E RROR IS NO T setup.'; | |
| 2357 | RAISE ERROR_FI LE_PATH_NU LL_E; | |
| 2358 | ||
| 2359 | END IF; | |
| 2360 | ||
| 2361 | VC_TMP := 0; | |
| 2362 | ||
| 2363 | ||
| 2364 | -- ====== ========== ========== ========== ========== ========== == | |
| 2365 | -- | |
| 2366 | -- This w ill loop n umber of t imes to pr ocess each source | |
| 2367 | -- data f ile. As r equired, t here will be 2 files processed | |
| 2368 | -- | |
| 2369 | -- ====== ========== ========== ========== ========== ========== == | |
| 2370 | ||
| 2371 | FOR I IN 1..P_num_f iles_proce ss LOOP | |
| 2372 | ||
| 2373 | ||
| 2374 | SELECT VC_prefix_ file||to_c har(sysdat e,'YY')||T O_CHAR(SYS DATE,'DDD' )||I||'.tx t' | |
| 2375 | INTO VC_file_n ame | |
| 2376 | FROM du al; | |
| 2377 | ||
| 2378 | --DBMS_ OUTPUT.PUT _LINE('Fil e name: '| |VC_ADRToP rocess_fil e_path||'/ '||VC_file _name); | |
| 2379 | VC_log_ step := 'P rocessing File '||VC _file_name ; | |
| 2380 | ||
| 2381 | ADRMGT. Job_Proces s_Log_Sp( | |
| 2382 | P C_job_name => SUBSTR (VC_proces s_name,1,6 0), | |
| 2383 | P D_job_log_ date => SY SDATE, | |
| 2384 | P C_job_stat us => SUBS TR(VC_log_ step,1,60) , | |
| 2385 | P C_job_log_ message => SUBSTR('I NFORMATION - '||VC_l og_step,1, 2000), | |
| 2386 | P D_date1 => VD_rec_gr oup_date, | |
| 2387 | P C_text1 => SUBSTR(VC _log_step, 1,255)); | |
| 2388 | ||
| 2389 | -- ==== ========== ========== ========== ========== | |
| 2390 | -- | |
| 2391 | -- Open ing source data file for readi ng and | |
| 2392 | -- load ing into S SN_VERIFIC ATION and details | |
| 2393 | -- | |
| 2394 | -- ==== ========== ========== ========== ========== | |
| 2395 | BEGIN | |
| 2396 | ||
| 2397 | VC_lo g_step := 'Reading f ile '|| VC _file_name ; | |
| 2398 | V_Fil e_handle : = UTL_FILE .FOPEN(P_b atch_SSN_A DRToProces s_DIR, VC_ file_name, 'R'); | |
| 2399 | ||
| 2400 | ADRMG T.Job_Proc ess_Log_Sp ( | |
| 2401 | PC_j ob_name => SUBSTR(VC _process_n ame,1,60), | |
| 2402 | PD_j ob_log_dat e => SYSDA TE, | |
| 2403 | PC_j ob_status => SUBSTR( VC_log_ste p,1,60), | |
| 2404 | PC_j ob_log_mes sage => SU BSTR('INFO RMATION - '||VC_log_ step,1,200 0), | |
| 2405 | PD_d ate1 => SY SDATE, | |
| 2406 | PC_t ext1 => SU BSTR(VC_lo g_step,1,2 55)); | |
| 2407 | ||
| 2408 | ||
| 2409 | -- == ========== ========== ========== ========== ========== ===== | |
| 2410 | -- | |
| 2411 | -- Ch ecking ext ernal tabl e existed or nor pri or creatin g one | |
| 2412 | -- | |
| 2413 | -- == ========== ========== ========== ========== ========== ====== | |
| 2414 | SELEC T COUNT(1) INTO | |
| 2415 | VC_ TMP | |
| 2416 | FROM all_exter nal_tables | |
| 2417 | WHERE table_nam e = CC_SSN _VERIFICAT ION_EXT; | |
| 2418 | ||
| 2419 | IF VC _TMP = 0 THEN | |
| 2420 | V C_log_step := 'Build ing SQLSTM NT create Ext Tab.'; | |
| 2421 | ||
| 2422 | V C_SQLSTMNT := | |
| 2423 | 'CREATE T ABLE ADR.' ||CC_SSN_V ERIFICATIO N_EXT||CHR (10)|| | |
| 2424 | '(SS N VARCHAR2(9 ), ' ||CHR(10 )|| | |
| 2425 | 'ENT RY_CODE VARCHA R2(3),' ||CHR(10 )|| | |
| 2426 | 'PRO CESSING_CO DE VARCHA R2(3),' ||CHR(10 )|| | |
| 2427 | 'LAS T_NAME VARCHA R2(13),' ||CHR(10 )|| | |
| 2428 | 'FIR ST_NAME VARCHA R2(10),' ||CHR(10 )|| | |
| 2429 | 'MID DLE_NAME VARCHA R2(7),' ||CHR(10 )|| | |
| 2430 | 'DOB VARCHA R2(8),' ||CHR(10 )|| | |
| 2431 | 'SEX VARCHA R2(1),' ||CHR(10 )|| | |
| 2432 | 'INC OME_YEAR VARCHA R2(4),' ||CHR(10 )|| | |
| 2433 | 'HEC _VA_ID VARCHA R2(15),' ||CHR(10 )|| | |
| 2434 | 'SPO USE_CODE VARCHA R2(1),' ||CHR(10 )|| | |
| 2435 | 'BLA NK_1 VARCHA R2(29),' ||CHR(10 )|| | |
| 2436 | 'BLA NK_2 VARCHA R2(20),' ||CHR(10 )|| | |
| 2437 | 'REQ UEST_CODE VARCHA R2(4),' ||CHR(10 )|| | |
| 2438 | 'BLA NK_3 VARCHA R2(3))' ||CHR(10 )|| | |
| 2439 | 'ORG ANIZATION EXTERNAL ( TYPE ORAC LE_LOADER' ||CHR(10 )|| | |
| 2440 | 'DEF AULT DIREC TORY '|| C C_BATCH_SS N_ADRTOPRO CESS_DIR | |' ' ||CHR (10)|| | |
| 2441 | 'ACC ESS PARAME TERS (RECO RDS DELIMI TED BY NEW LINE ' ||CHR(10 )|| | |
| 2442 | 'BAD FILE '||CC _BATCH_SSN _ERR_DIR|| ':''' ||VC _prefix_fi le||'_%a_% p.err' ||' '' ' ||CHR(10 )|| | |
| 2443 | 'LOG FILE '||CC _BATCH_SSN _LOG_DIR|| ':''' ||VC _prefix_fi le||'_%a_% p.log' ||' '' ' ||CHR(10 )|| | |
| 2444 | 'FIE LDS (' ||CHR( 10)|| | |
| 2445 | 'SSN POSITION(1 :9) CHAR(9 ),' ||CHR( 10)|| | |
| 2446 | 'ENT RY_CODE POSITION(1 0:12) CHAR (3),' ||CHR( 10)|| | |
| 2447 | 'PRO CESSING_CO DE POSITI ON(13:15) CHAR(3),' ||CHR( 10)|| | |
| 2448 | 'LAS T_NAME POSITION(1 6:28) CHAR (13),' ||CHR( 10)|| | |
| 2449 | 'FIR ST_NAME POSITION(2 9:38) CHAR (10),' ||CHR( 10)|| | |
| 2450 | 'MID DLE_NAME POSITION(3 9:45) CHAR (7),' ||CHR( 10)|| | |
| 2451 | 'DOB POSITION(4 6:53) CHAR (8),' ||CHR( 10)|| | |
| 2452 | 'SEX POSITION(5 4:54) CHAR (1),' ||CHR( 10)|| | |
| 2453 | 'INC OME_YEAR POSITION(5 5:58) CHAR (4),' ||CHR( 10)|| | |
| 2454 | 'HEC _VA_ID POSITION(5 9:73) CHAR (15),' ||CHR( 10)|| | |
| 2455 | 'SPO USE_CODE POSITION(7 4:74) CHAR (1),' ||CHR( 10)|| | |
| 2456 | 'BLA NK_1 POSITION(7 5:103) CHA R(29),' ||CHR( 10)|| | |
| 2457 | 'BLA NK_2 POSITION(1 04:123) CH AR(20),' ||CHR( 10)|| | |
| 2458 | 'REQ UEST_CODE POSITION(1 24:127) CH AR(4),' ||CHR( 10)|| | |
| 2459 | 'BLA NK_3 POSITION(1 28:130) CH AR(3)' ||CHR( 10)|| | |
| 2460 | ') ) LOCATION ('''||VC_f ile_name|| ''')) PARA LLEL 4 REJ ECT LIMIT UNLIMITED' ; | |
| 2461 | ||
| 2462 | ||
| 2463 | V C_log_step := 'Creat ed Ext tab le '||VC_f ile_name; | |
| 2464 | ||
| 2465 | E XECUTE IMM EDIATE VC_ SQLSTMNT; | |
| 2466 | ||
| 2467 | A DRMGT.Job_ Process_Lo g_Sp( | |
| 2468 | PC_j ob_name => SUBSTR(VC _process_n ame,1,60), | |
| 2469 | PD_job_lo g_date => SYSDATE, | |
| 2470 | PC_job_st atus => SU BSTR('Exte rnal table is on fil e '||VC_fi le_name,1, 60), | |
| 2471 | PC_job_lo g_message => SUBSTR( 'INFORMATI ON - '||VC _log_step, 1,2000), | |
| 2472 | PD_date1 => SYSDATE , | |
| 2473 | PC_text1 => SUBSTR( VC_log_ste p,1,255)); | |
| 2474 | ||
| 2475 | V C_SQLSTMNT := 'GRANT SELECT ON ADR.'|| C C_SSN_VERI FICATION_E XT||' TO A DR_R'; | |
| 2476 | E XECUTE IMM EDIATE VC_ SQLSTMNT; | |
| 2477 | ||
| 2478 | ELSE | |
| 2479 | ||
| 2480 | V C_log_step := 'Modif ied Ext ta b on dataf ile '||VC_ file_name; | |
| 2481 | ||
| 2482 | V C_SQLSTMNT := 'ALTER TABLE ADR .'||CC_SSN _VERIFICAT ION_EXT||' LOCATION ('''||VC_f ile_name|| ''')'; | |
| 2483 | ||
| 2484 | ||
| 2485 | E XECUTE IMM EDIATE VC_ SQLSTMNT; | |
| 2486 | ||
| 2487 | A DRMGT.Job_ Process_Lo g_Sp( | |
| 2488 | PC_j ob_name => SUBSTR(VC _process_n ame,1,60), | |
| 2489 | PD_j ob_log_dat e => SYSDA TE, | |
| 2490 | PC_j ob_status => SUBSTR( 'Ext table '||CC_SSN _VERIFICAT ION_EXT||' EXISTED.' ,1,60), | |
| 2491 | PC_j ob_log_mes sage => SU BSTR('INFO RMATION - External t able point s to file '||VC_file _name|| ' - '||VC_lo g_step,1,2 000), | |
| 2492 | PD_d ate1 => VD _rec_group _date, | |
| 2493 | PC_t ext1 => SU BSTR(VC_lo g_step,1,2 55)); | |
| 2494 | ||
| 2495 | END I F; | |
| 2496 | ||
| 2497 | -- == ========== ========== ========== = | |
| 2498 | -- | |
| 2499 | -- In sert rows to SSN_VER IFICATION | |
| 2500 | -- | |
| 2501 | -- == ========== ========== ========== = | |
| 2502 | BEGIN -- Inser t rows to SSN_VERIFI CATION | |
| 2503 | ||
| 2504 | VC _log_step := 'Get ne x sequence number.'; | |
| 2505 | ||
| 2506 | SE LECT TRANS ACTION_S.N EXTVAL INT O VN_SSN_V ER_ID | |
| 2507 | FR OM DUAL; | |
| 2508 | ||
| 2509 | VC _log_step := 'Add a row into A DR.SSN_VER IFICATION' ; | |
| 2510 | ||
| 2511 | IN SERT /*+ A PPEND */IN TO ADR.SSN _VERIFICAT ION | |
| 2512 | ( SSN_VERIF ICATION_ID , | |
| 2513 | SSA_ SENT_DATE , | |
| 2514 | RECO RD_CREATED _BY , | |
| 2515 | RECO RD_CREATED _DATE , | |
| 2516 | RECO RD_MODIFIE D_BY , | |
| 2517 | RECO RD_MODIFIE D_DATE , | |
| 2518 | RECO RD_MODIFIE D_COUNT | |
| 2519 | ) | |
| 2520 | VA LUES(VN_SS N_VER_ID, SYSDATE, C C_JOB_SSN_ TERM_SOL, SYSDATE, C C_JOB_SSN_ TERM_SOL, SYSDATE,0) ; | |
| 2521 | ||
| 2522 | ||
| 2523 | -- ========= ========== ========== ========== ==== | |
| 2524 | -- | |
| 2525 | -- Insert ro ws to SSN_ VERIFICATI ON_DETAIL | |
| 2526 | -- | |
| 2527 | -- ========= ========== ========== ========== ==== | |
| 2528 | BE GIN -- lo oping exte rnal table | |
| 2529 | ||
| 2530 | VN_num_row s_processe d := 0; | |
| 2531 | VC_log_ste p := 'Loop ing extern al table ' ||CC_SSN_V ERIFICATIO N_EXT; | |
| 2532 | ||
| 2533 | FOR I IN ( SELECT bla nk_1, hec_ va_id, ssn FROM ADR. SSN_VERIFI CATION_EXT ) LOOP | |
| 2534 | ||
| 2535 | VN_vpid _value := I.blank_1; | |
| 2536 | ||
| 2537 | BEGIN | |
| 2538 | ||
| 2539 | VC_l og_step := 'Obtainin g person i d using vp id_value=' ||VN_vpid_ value; | |
| 2540 | ||
| 2541 | SELE CT p.perso n_id | |
| 2542 | I NTO VN_per son_id | |
| 2543 | FROM person p | |
| 2544 | WHER E p.vpid_v alue = VN_ vpid_value ; | |
| 2545 | ||
| 2546 | VC_l og_step := 'Adding r ow to SSN_ VERIFICATI ON_DETAIL, person_id ='||VN_per son_id||', and vpid_ value='||V N_vpid_val ue; | |
| 2547 | ||
| 2548 | ||
| 2549 | INSE RT /*+ APP END */ INT O ADR.SSN_ VERIFICATI ON_DETAIL | |
| 2550 | ( | |
| 2551 | SSN_VE RIFICATION _DETAIL_ID , | |
| 2552 | SSN_VE RIFICATION _ID , | |
| 2553 | PERSON _ID , | |
| 2554 | SSN_ID , | |
| 2555 | SSN , | |
| 2556 | VERIFI CATION_REQ UEST_NUMBE R , | |
| 2557 | RECORD _CREATED_B Y , | |
| 2558 | RECORD _CREATED_D ATE , | |
| 2559 | RECORD _MODIFIED_ BY , | |
| 2560 | RECORD _MODIFIED_ DATE , | |
| 2561 | RECORD _MODIFIED_ COUNT | |
| 2562 | ) | |
| 2563 | VALU ES( TRANSA CTION_S.NE XTVAL, | |
| 2564 | VN_SSN _VER_ID, | |
| 2565 | VN_per son_id, | |
| 2566 | NULL, | |
| 2567 | I.SSN, | |
| 2568 | I.HEC_ VA_ID, | |
| 2569 | CC_JOB _SSN_TERM_ SOL, | |
| 2570 | SYSDAT E, | |
| 2571 | CC_JOB _SSN_TERM_ SOL, | |
| 2572 | SYSDAT E, | |
| 2573 | 0 | |
| 2574 | ); | |
| 2575 | ||
| 2576 | IF V N_commit_c nt >= CC_M AX_ROWS_CO MMIT THEN | |
| 2577 | V N_commit_c nt := 0; | |
| 2578 | ||
| 2579 | C OMMIT; | |
| 2580 | ELSE | |
| 2581 | V N_commit_c nt := VN_c ommit_cnt + 1; | |
| 2582 | ||
| 2583 | END IF; | |
| 2584 | ||
| 2585 | VN_n um_rows_pr ocessed := VN_num_ro ws_process ed + 1; | |
| 2586 | ||
| 2587 | EXCE PTION | |
| 2588 | W HEN NO_DAT A_FOUND TH EN | |
| 2589 | ||
| 2590 | ADRMGT.J ob_Process _Err_Sp( | |
| 2591 | PC_ job_name = > SUBSTR(V C_process_ name,1,60) , | |
| 2592 | PD_ job_error_ date => S YSDATE, | |
| 2593 | PC_ job_error_ code => SU BSTR(SQLCO DE,1,60), | |
| 2594 | PC_ job_error_ message => SUBSTR('E RROR: No D ATA FOUND in PERSON table of F ile '||VC_ file_name| | | |
| 2595 | '. VPID_ VALUE= '|| VN_vpid_va lue|| | |
| 2596 | '==> No row added to SSN_VER IFICATION_ DETAIL. ER RMSG: ' || SQLERRM,1 ,2000), | |
| 2597 | PD_ date1 => S YSDATE, | |
| 2598 | PC_ text1 => S UBSTR(VC_l og_step||' VPID_VALU E='||VN_vp id_value,1 ,255)); | |
| 2599 | ||
| 2600 | ||
| 2601 | ||
| 2602 | W HEN OTHERS THEN | |
| 2603 | ADRMGT .Job_Proce ss_Err_Sp( | |
| 2604 | PC_job_n ame => SUB STR(VC_pro cess_name, 1,60), | |
| 2605 | PD_job_e rror_date => SYSDAT E, | |
| 2606 | PC_job_e rror_code => SUBSTR( SQLCODE,1, 60), | |
| 2607 | PC_job_e rror_messa ge => SUBS TR('ERROR: Unknown E xception o f File '|| VC_file_na me|| | |
| 2608 | '. ' || SQ LERRM||' - VPID_VALU E: '||VN_v pid_value, 1,2000), | |
| 2609 | PD_date1 => SYSDAT E, | |
| 2610 | PC_text1 => SUBSTR (VC_log_st ep||' VPID _VALUE='|| VN_vpid_va lue,1,255) ); | |
| 2611 | ||
| 2612 | END; -- SSN_VER IFICATION_ DETAIL | |
| 2613 | ||
| 2614 | END LOOP; -- SSN_VE RIFICATION _EXT | |
| 2615 | ||
| 2616 | -- ======= ========== ========== ========== ========== ========== = | |
| 2617 | -- | |
| 2618 | -- Update rows proc essed of S SN_VERIFIC ATION. Ot herwise | |
| 2619 | -- delete SSN_VERIF ICATION wh en no reco rds matche d to | |
| 2620 | -- detail table (SS N_VERIFICA TION_DETAI L) | |
| 2621 | -- | |
| 2622 | -- ======= ========== ========== ========== ========== ========== = | |
| 2623 | ||
| 2624 | VN_num_row s_beProces sed := 0; | |
| 2625 | ||
| 2626 | SELECT COU NT(1) | |
| 2627 | INTO VN _num_rows_ beProcesse d | |
| 2628 | FROM ADR.S SN_VERIFIC ATION_EXT; | |
| 2629 | ||
| 2630 | ||
| 2631 | IF VN_num_ rows_proce ssed > 0 T HEN | |
| 2632 | ||
| 2633 | VC_log _step := ' Updating p rocessed r ows of SSN _VERIFICAT ION.'; | |
| 2634 | ||
| 2635 | MERGE INTO ADR.S SN_VERIFIC ATION | |
| 2636 | U SING DUAL | |
| 2637 | ON (SSN_V ERIFICATIO N_ID = VN_ SSN_VER_ID ) | |
| 2638 | W HEN MATCHE D THEN | |
| 2639 | UPDATE S ET SSN_SEN T_COUNT = VN_num_ro ws_process ed; | |
| 2640 | ||
| 2641 | ELSE | |
| 2642 | ||
| 2643 | VC_log _step := ' Removing h eader reco rd in SSN_ VERIFICATI ON'; | |
| 2644 | ||
| 2645 | MERGE INTO ADR.S SN_VERIFIC ATION | |
| 2646 | U SING DUAL | |
| 2647 | O N (SSN_VER IFICATION_ ID = VN_SS N_VER_ID) | |
| 2648 | W HEN MATCHE D THEN | |
| 2649 | UPDATE S ET SSN_SEN T_COUNT = VN_num_ro ws_process ed | |
| 2650 | DELETE W HERE SSN_V ERIFICATIO N_ID = VN_ SSN_VER_ID ; | |
| 2651 | ||
| 2652 | END IF; | |
| 2653 | COMMIT; | |
| 2654 | ||
| 2655 | -- ======= ========== ========== ========== ========== ========== = | |
| 2656 | -- | |
| 2657 | -- Moving file name to Process ed dir fro m toProces s folder | |
| 2658 | -- | |
| 2659 | -- ======= ========== ========== ========== ========== ========== = | |
| 2660 | ||
| 2661 | ||
| 2662 | VC_log_ste p := 'Movi ng file na me '|| VC_ file_name| |' to '||V C_ToProces s_file_pat h; | |
| 2663 | --dbms_out put.put_li ne(VC_log_ step); | |
| 2664 | ||
| 2665 | VN_error_c ount:= VN_ num_rows_b eProcessed -VN_num_ro ws_process ed; | |
| 2666 | ||
| 2667 | UTL_FILE.F RENAME(P_b atch_SSN_A DRToProces s_DIR, VC_ file_name, P_batch_SS N_ToProces s_DIR,VC_f ile_name,T RUE); | |
| 2668 | ||
| 2669 | ||
| 2670 | ADRMGT.Job _Process_L og_Sp( | |
| 2671 | PC_j ob_name => SUBSTR(VC _process_n ame,1,60), | |
| 2672 | PD_j ob_log_dat e => SYSDA TE, | |
| 2673 | PC_j ob_status => SUBSTR( 'INFORMATI ON - Proce ss Complet ed.',1,60) , | |
| 2674 | PC_j ob_log_mes sage => SU BSTR('**** SUMMARY I NFO CHANGE S TO SSN_V ERIFICATIO N_DETAIL * ***'||CHR( 10)|| | |
| 2675 | ' Total Rows Proc essed: '|| VN_num_ro ws_beProce ssed||CHR( 10)|| | |
| 2676 | ' Num R ows Added: '|| VN_nu m_rows_pro cessed||CH R(10)|| | |
| 2677 | ' Num R ows Reject ed: '||VN_ error_coun t||CHR(10) || | |
| 2678 | ' File Name '||VC _file_name ||' is now moved to '||VC_ToPr ocess_file _path||CHR (10)|| | |
| 2679 | '******* ********** ********** END TRANS ACTION *** ********** ********** ******',1, 2000), | |
| 2680 | PD_d ate1 => SY SDATE, | |
| 2681 | PC_t ext1 => SU BSTR(VC_lo g_step||' VPID_VALUE ='||VN_vpi d_value,1, 255)); | |
| 2682 | ||
| 2683 | ||
| 2684 | EXCEPTION | |
| 2685 | WHEN O THERS THEN | |
| 2686 | ADRM GT.Job_Pro cess_Err_S p( | |
| 2687 | PC_job _name => S UBSTR(VC_p rocess_nam e,1,60), | |
| 2688 | PD_job _error_dat e => SYSD ATE, | |
| 2689 | PC_job _error_cod e => SUBST R(SQLCODE, 1,60), | |
| 2690 | PC_job _error_mes sage => SU BSTR('ERRO R: Unknown Exception of File ' ||VC_file_ name|| | |
| 2691 | '. ' || SQ LERRM||' - VPID_VALU E: '||VN_v pid_value, 1,2000), | |
| 2692 | PD_dat e1 => SYSD ATE, | |
| 2693 | PC_tex t1 => SUBS TR(VC_log_ step||' VP ID_VALUE=' ||VN_vpid_ value,1,25 5)); | |
| 2694 | ||
| 2695 | EN D; -- loop ing extern al table | |
| 2696 | ||
| 2697 | ||
| 2698 | EX CEPTION | |
| 2699 | ||
| 2700 | WHEN UTL_ FILE.INVAL ID_PATH TH EN | |
| 2701 | ||
| 2702 | ADRMGT. Job_Proces s_Err_Sp( | |
| 2703 | PC_j ob_name => SUBSTR(VC _process_n ame,1,60), | |
| 2704 | PD_j ob_error_d ate => SY SDATE, | |
| 2705 | PC_j ob_error_c ode => SUB STR(SQLCOD E,1,60), | |
| 2706 | PC_j ob_error_m essage => SUBSTR('ER ROR: Inval id PATH - '||VC_ADRt oProcess_f ile_path|| | |
| 2707 | ' ERRMSG: '|| SQLE RRM,1,2000 ), | |
| 2708 | PD_d ate1 => SY SDATE, | |
| 2709 | PC_t ext1 => SU BSTR(VC_lo g_step,1,2 55)); | |
| 2710 | ||
| 2711 | WHEN UTL_ FILE.INVAL ID_FILENAM E THEN | |
| 2712 | ||
| 2713 | ADRMGT. Job_Proces s_Log_Sp( | |
| 2714 | PC_j ob_name => SUBSTR(VC _process_n ame,1,60), | |
| 2715 | PD_j ob_log_dat e => SYSDA TE, | |
| 2716 | PC_j ob_status => SUBSTR( VC_log_ste p,1,60), | |
| 2717 | PC_j ob_log_mes sage => SU BSTR('INFO RMATION - Invalid fi le name '| | VC_file_ name,1,200 0), | |
| 2718 | PD_d ate1 => SY SDATE, | |
| 2719 | PC_t ext1 => SU BSTR(VC_lo g_step,1,2 55)); | |
| 2720 | ||
| 2721 | WHEN NO_DA TA_FOUND T HEN | |
| 2722 | ||
| 2723 | ADRMGT.J ob_Process _Log_Sp( | |
| 2724 | PC_j ob_name => SUBSTR(VC _process_n ame,1,60), | |
| 2725 | PD_j ob_log_dat e => SYSDA TE, | |
| 2726 | PC_j ob_status => SUBSTR( VC_log_ste p,1,60), | |
| 2727 | PC_j ob_log_mes sage => SU BSTR('INFO RMATION - NO DATA FO UND of Fil e '||VC_fi le_name,1, 2000), | |
| 2728 | PD_d ate1 => SY SDATE, | |
| 2729 | PC_t ext1 => SU BSTR(VC_lo g_step,1,2 55)); | |
| 2730 | ||
| 2731 | WHEN OTHER S THEN | |
| 2732 | ||
| 2733 | ADRMGT.J ob_Process _Err_Sp( | |
| 2734 | PC_j ob_name => SUBSTR(VC _process_n ame,1,60), | |
| 2735 | PD_j ob_error_d ate => SY SDATE, | |
| 2736 | PC_j ob_error_c ode => SUB STR(SQLCOD E,1,60), | |
| 2737 | PC_j ob_error_m essage => SUBSTR('ER ROR: Unkno wn Excepti on of File '||VC_fil e_name|| | |
| 2738 | '. ' || SQ LERRM,1,20 00), | |
| 2739 | PD_d ate1 => VD _rec_group _date, | |
| 2740 | PC_t ext1 => SU BSTR(VC_lo g_step,1,2 55)); | |
| 2741 | ||
| 2742 | END ; -- SSN _VERIFICAT ION | |
| 2743 | ||
| 2744 | EXCEPT ION | |
| 2745 | ||
| 2746 | WHEN UTL_FILE. INVALID_PA TH THEN | |
| 2747 | AD RMGT.Job_P rocess_Err _Sp( | |
| 2748 | PC_j ob_name => SUBSTR(VC _process_n ame,1,60), | |
| 2749 | PD_j ob_error_d ate => SY SDATE, | |
| 2750 | PC_j ob_error_c ode => SUB STR(SQLCOD E,1,60), | |
| 2751 | PC_j ob_error_m essage => SUBSTR('ER ROR: Inval id PATH - '||VC_ADRt oProcess_f ile_path|| | |
| 2752 | ' ERRMSG: '|| SQLE RRM,1,2000 ), | |
| 2753 | PD_d ate1 => SY SDATE, | |
| 2754 | PC_t ext1 => SU BSTR(VC_lo g_step,1,2 55)); | |
| 2755 | ||
| 2756 | ||
| 2757 | WHEN UTL_FILE. INVALID_FI LENAME THE N | |
| 2758 | ||
| 2759 | ||
| 2760 | AD RMGT.Job_P rocess_Log _Sp( | |
| 2761 | PC_ job_name = > SUBSTR(V C_process_ name,1,60) , | |
| 2762 | PD_ job_log_da te => SYSD ATE, | |
| 2763 | PC_ job_status => SUBSTR (VC_log_st ep,1,60), | |
| 2764 | PC_ job_log_me ssage => S UBSTR('INF ORMATION - Invalid f ile name ' || VC_file _name,1,20 00), | |
| 2765 | PD_ date1 => S YSDATE, | |
| 2766 | PC_ text1 => S UBSTR(VC_l og_step,1, 255)); | |
| 2767 | ||
| 2768 | ||
| 2769 | WHEN UTL_FILE. INVALID_OP ERATION TH EN | |
| 2770 | ||
| 2771 | ||
| 2772 | AD RMGT.Job_P rocess_Log _Sp( | |
| 2773 | PC_j ob_name => SUBSTR(VC _process_n ame,1,60), | |
| 2774 | PD_j ob_log_dat e => SYSDA TE, | |
| 2775 | PC_j ob_status => SUBSTR( VC_log_ste p,1,60), | |
| 2776 | PC_j ob_log_mes sage => SU BSTR('INFO RMATION - File Name Not find/I nvalid ope ration of File '|| V C_file_nam e,1,2000), | |
| 2777 | PD_d ate1 => SY SDATE, | |
| 2778 | PC_t ext1 => SU BSTR(VC_lo g_step,1,2 55)); | |
| 2779 | ||
| 2780 | ||
| 2781 | WHEN UTL_FILE. WRITE_ERRO R THEN | |
| 2782 | AD RMGT.Job_P rocess_Err _Sp( | |
| 2783 | PC_j ob_name => SUBSTR(VC _process_n ame,1,60), | |
| 2784 | PD_j ob_error_d ate => SY SDATE, | |
| 2785 | PC_j ob_error_c ode => SUB STR(SQLCOD E,1,60), | |
| 2786 | PC_j ob_error_m essage => SUBSTR('ER ROR: Inval id Write E rror. ERRM SG: ' || S QLERRM,1,2 000), | |
| 2787 | PD_d ate1 => SY SDATE, | |
| 2788 | PC_t ext1 => SU BSTR(VC_lo g_step,1,2 55)); | |
| 2789 | ||
| 2790 | WHEN NO_DATA_F OUND THEN | |
| 2791 | AD RMGT.Job_P rocess_Log _Sp( | |
| 2792 | PC_j ob_name => SUBSTR(VC _process_n ame,1,60), | |
| 2793 | PD_j ob_log_dat e => SYSDA TE, | |
| 2794 | PC_j ob_status => SUBSTR( VC_log_ste p,1,60), | |
| 2795 | PC_j ob_log_mes sage => SU BSTR('INFO RMATION - No DATA FO UND of Fil e '||VC_fi le_name,1, 2000), | |
| 2796 | PD_d ate1 => SY SDATE, | |
| 2797 | PC_t ext1 => SU BSTR(VC_lo g_step,1,2 55)); | |
| 2798 | ||
| 2799 | WHEN OTHERS TH EN | |
| 2800 | ||
| 2801 | AD RMGT.Job_P rocess_Err _Sp( | |
| 2802 | PC_j ob_name => SUBSTR(VC _process_n ame,1,60), | |
| 2803 | PD_j ob_error_d ate => SY SDATE, | |
| 2804 | PC_j ob_error_c ode => SUB STR(SQLCOD E,1,60), | |
| 2805 | PC_j ob_error_m essage => SUBSTR('ER ROR: Unkno wn Excepti on of File '||VC_fil e_name|| | |
| 2806 | '. ' || SQ LERRM||' - VPID_VALU E: '||VN_v pid_value, 1,2000), | |
| 2807 | PD_d ate1 => SY SDATE, | |
| 2808 | PC_t ext1 => SU BSTR(VC_lo g_step,1,2 55)); | |
| 2809 | END; | |
| 2810 | ||
| 2811 | END LOO P; | |
| 2812 | ||
| 2813 | ||
| 2814 | -- ==== ========== ========== ========== ========= | |
| 2815 | -- | |
| 2816 | -- Clea n up old l og records | |
| 2817 | -- | |
| 2818 | -- ==== ========== ========== ========== ========= | |
| 2819 | DELETE | |
| 2820 | FROM ADRMGT. Job_Proces s_Logs | |
| 2821 | WHERE Job_nam e = VC_pro cess_name | |
| 2822 | AND TRUNC(D ATE1) < TR UNC(SYSDAT E) - VD_da ys_deletio n; | |
| 2823 | ||
| 2824 | COMMIT; | |
| 2825 | ||
| 2826 | ||
| 2827 | ||
| 2828 | VD_log_ date := SY SDATE; | |
| 2829 | t2 := DBMS_UTILI TY.get_tim e; | |
| 2830 | ||
| 2831 | ADRMGT. Job_Proces s_Log_Sp(P C_job_name => SUBSTR (VC_proces s_name,1,6 0), | |
| 2832 | PD_job_ log_date = > VD_log_d ate, | |
| 2833 | PC_job_ status => SUBSTR('SU CCESS - Processi ng Complet ed',1,60), | |
| 2834 | PC_job_ log_messag e => SUBST R('Process ing Time ( sec): ' || TO_CHAR(( t2 - t1)/1 00),1,2000 ), | |
| 2835 | PD_date 1 => VD_re c_group_da te, | |
| 2836 | PC_text 1 => SUBST R('Date1 c olumn cont ains the d aily proce ss start d ate',1,255 )); | |
| 2837 | ||
| 2838 | ||
| 2839 | EXCEPTI ON | |
| 2840 | ||
| 2841 | WHEN INVALID_SS N_ADRTOPRO CESS_E THE N | |
| 2842 | A DRMGT.Job_ Process_Er r_Sp( | |
| 2843 | PC_j ob_name => SUBSTR(VC _process_n ame,1,60), | |
| 2844 | PD_j ob_error_d ate => SY SDATE, | |
| 2845 | PC_j ob_error_c ode => SUB STR(SQLCOD E,1,60), | |
| 2846 | PC_j ob_error_m essage => SUBSTR('ER ROR - Inva lid input parameter ADRToProce ss: '||P_b atch_SSN_A DRToProces s_DIR,1,20 00), | |
| 2847 | PD_d ate1 => SY SDATE, | |
| 2848 | PC_t ext1 => SU BSTR(VC_lo g_step,1,2 55)); | |
| 2849 | ||
| 2850 | WHEN INVALID_SS N_TOPROCES S_E THEN | |
| 2851 | A DRMGT.Job_ Process_Er r_Sp( | |
| 2852 | PC_j ob_name => SUBSTR(VC _process_n ame,1,60), | |
| 2853 | PD_j ob_error_d ate => SY SDATE, | |
| 2854 | PC_j ob_error_c ode => SUB STR(SQLCOD E,1,60), | |
| 2855 | PC_j ob_error_m essage => SUBSTR('ER ROR - Inva lid input parameter ToProcess: '||P_batc h_SSN_ToPr ocess_DIR, 1,2000), | |
| 2856 | PD_d ate1 => SY SDATE, | |
| 2857 | PC_t ext1 => SU BSTR(VC_lo g_step,1,2 55)); | |
| 2858 | ||
| 2859 | ||
| 2860 | WHEN INVALID_SS N_LOG_E T HEN | |
| 2861 | ||
| 2862 | A DRMGT.Job_ Process_Er r_Sp( | |
| 2863 | PC_j ob_name => SUBSTR(VC _process_n ame,1,60), | |
| 2864 | PD_j ob_error_d ate => SY SDATE, | |
| 2865 | PC_j ob_error_c ode => SUB STR(SQLCOD E,1,60), | |
| 2866 | PC_j ob_error_m essage => SUBSTR('ER ROR - Inva lid input parameter Log: '||P_ batch_SSN_ log_DIR,1, 2000), | |
| 2867 | PD_d ate1 => SY SDATE, | |
| 2868 | PC_t ext1 => SU BSTR(VC_lo g_step,1,2 55)); | |
| 2869 | ||
| 2870 | WHEN INVALID_SS N_ERR_E TH EN | |
| 2871 | A DRMGT.Job_ Process_Er r_Sp( | |
| 2872 | PC_j ob_name => SUBSTR(VC _process_n ame,1,60), | |
| 2873 | PD_j ob_error_d ate => SY SDATE, | |
| 2874 | PC_j ob_error_c ode => SUB STR(SQLCOD E,1,60), | |
| 2875 | PC_j ob_error_m essage => SUBSTR('ER ROR - Inva lid input parameter Error: '|| P_batch_SS N_err_DIR, 1,2000), | |
| 2876 | PD_d ate1 => SY SDATE, | |
| 2877 | PC_t ext1 => SU BSTR(VC_lo g_step,1,2 55)); | |
| 2878 | ||
| 2879 | WHEN NO_DATA_FO UND THEN | |
| 2880 | ||
| 2881 | A DRMGT.Job_ Process_Er r_Sp( | |
| 2882 | PC_j ob_name => SUBSTR(VC _process_n ame,1,60), | |
| 2883 | PD_j ob_error_d ate => SY SDATE, | |
| 2884 | PC_j ob_error_c ode => SUB STR(SQLCOD E,1,60), | |
| 2885 | PC_j ob_error_m essage => SUBSTR('ER ROR - No D ATA FOUND in ADR ToP rocess of File '||P_ batch_SSN_ ADRToProce ss_DIR,1,2 000), | |
| 2886 | PD_d ate1 => SY SDATE, | |
| 2887 | PC_t ext1 => SU BSTR(VC_lo g_step,1,2 55)); | |
| 2888 | ||
| 2889 | WHEN FILE_PATH_ TOPROCESS_ NULL_E THE N | |
| 2890 | A DRMGT.Job_ Process_Er r_Sp( | |
| 2891 | PC_j ob_name => SUBSTR(VC _process_n ame,1,60), | |
| 2892 | PD_j ob_error_d ate => SY SDATE, | |
| 2893 | PC_j ob_error_c ode => SUB STR(SQLCOD E,1,60), | |
| 2894 | PC_j ob_error_m essage => SUBSTR('ER ROR: '||P_ batch_SSN_ ToProcess_ DIR||' nee ds to be c onfigured. ' || SQLE RRM,1,2000 ), | |
| 2895 | PD_d ate1 => SY SDATE, | |
| 2896 | PC_t ext1 => SU BSTR(VC_lo g_step,1,2 55)); | |
| 2897 | ||
| 2898 | ||
| 2899 | WHEN FILE_PATH_ ADRTOPROCE SS_NULL_E THEN | |
| 2900 | A DRMGT.Job_ Process_Er r_Sp( | |
| 2901 | PC_j ob_name => SUBSTR(VC _process_n ame,1,60), | |
| 2902 | PD_j ob_error_d ate => SY SDATE, | |
| 2903 | PC_j ob_error_c ode => SUB STR(SQLCOD E,1,60), | |
| 2904 | PC_j ob_error_m essage => SUBSTR('ER ROR: '||P_ batch_SSN_ ADRToProce ss_DIR||' needs to b e configur ed. ' || S QLERRM,1,2 000), | |
| 2905 | PD_d ate1 => SY SDATE, | |
| 2906 | PC_t ext1 => SU BSTR(VC_lo g_step,1,2 55)); | |
| 2907 | ||
| 2908 | WHEN LOG_FILE_P ATH_NULL_E THEN | |
| 2909 | ||
| 2910 | A DRMGT.Job_ Process_Er r_Sp( | |
| 2911 | PC_j ob_name => SUBSTR(VC _process_n ame,1,60), | |
| 2912 | PD_j ob_error_d ate => SY SDATE, | |
| 2913 | PC_j ob_error_c ode => SUB STR(SQLCOD E,1,60), | |
| 2914 | PC_j ob_error_m essage => SUBSTR('ER ROR: '||P_ batch_SSN_ log_DIR||' needs to be configu red. ' || SQLERRM,1, 2000), | |
| 2915 | PD_d ate1 => SY SDATE, | |
| 2916 | PC_t ext1 => SU BSTR(VC_lo g_step,1,2 55)); | |
| 2917 | ||
| 2918 | WHEN ERROR_FILE _PATH_NULL _E THEN | |
| 2919 | ||
| 2920 | A DRMGT.Job_ Process_Er r_Sp( | |
| 2921 | PC_j ob_name => SUBSTR(VC _process_n ame,1,60), | |
| 2922 | PD_j ob_error_d ate => SY SDATE, | |
| 2923 | PC_j ob_error_c ode => SUB STR(SQLCOD E,1,60), | |
| 2924 | PC_j ob_error_m essage => SUBSTR('ER ROR: '||P_ batch_SSN_ err_DIR||' needs to be configu red. ' || SQLERRM,1, 2000), | |
| 2925 | PD_d ate1 => SY SDATE, | |
| 2926 | PC_t ext1 => SU BSTR(VC_lo g_step,1,2 55)); | |
| 2927 | ||
| 2928 | WHEN OTHERS THE N | |
| 2929 | ||
| 2930 | A DRMGT.Job_ Process_Er r_Sp( | |
| 2931 | PC_j ob_name => SUBSTR(VC _process_n ame,1,60), | |
| 2932 | PD_j ob_error_d ate => SY SDATE, | |
| 2933 | PC_j ob_error_c ode => SUB STR(SQLCOD E,1,60), | |
| 2934 | PC_j ob_error_m essage => SUBSTR('ER ROR: Unkno wn Excepti on of File '||VC_fil e_name|| | |
| 2935 | '. ' || SQLERRM,1, 2000), | |
| 2936 | PD_d ate1 => SY SDATE, | |
| 2937 | PC_t ext1 => SU BSTR(VC_lo g_step,1,2 55)); | |
| 2938 | ||
| 2939 | END; | |
| 2940 | / | |
| 2941 | DROP PROCE DURE ADR.C LEAN_SSN_F RM_ADDR; | |
| 2942 | ||
| 2943 | CREATE OR REPLACE PR OCEDURE AD R.CLEAN_SS N_FRM_ADDR IS | |
| 2944 | v_rec_c nt INTEG ER; | |
| 2945 | BEGIN | |
| 2946 | ADRMGT. Job_Proces s_Log_Sp ( PC_job_nam e => SUBSTR ('CLEAN_S SN_FRM_ADD R', 1, 60) , | |
| 2947 | PD_job_log _date => SYSDAT E, | |
| 2948 | PC_job_sta tus => 'STG-B EGIN', | |
| 2949 | PC_JOB_LOG _MESSAGE => SUBSTR (' Starti ng to proc ess', 1, 6 0)); | |
| 2950 | ||
| 2951 | INSERT INTO ADR.S TG_ADDRESS _SSN_CLEAN UP (ADDRES S_ID, | |
| 2952 | ADDRES S_LINE1, | |
| 2953 | ADDRES S_LINE2, | |
| 2954 | ADDRES S_LINE3, | |
| 2955 | CITY, | |
| 2956 | SSN) | |
| 2957 | SELE CT address _id, | |
| 2958 | address _line1, | |
| 2959 | address _line2, | |
| 2960 | address _line3, | |
| 2961 | city, | |
| 2962 | rpt_psi m_traits.s sn | |
| 2963 | FR OM address , person, psim.rpt_p sim_traits | |
| 2964 | WHE RE add ress.perso n_id = per son.person _id | |
| 2965 | AND per son.vpid_v alue = rpt _psim_trai ts.vpid_va lue | |
| 2966 | AND ( (INSTR ( | |
| 2967 | REGEX P_REPLACE (address_l ine1, | |
| 2968 | '([[:alph a:]]|[[:sp ace:]]|[[: punct:]])* ', | |
| 2969 | ''), | |
| 2970 | rpt_p sim_traits .ssn) > 0) | |
| 2971 | OR (INSTR ( | |
| 2972 | REGEX P_REPLACE (address_l ine2, | |
| 2973 | '([[:alph a:]]|[[:sp ace:]]|[[: punct:]])* ', | |
| 2974 | ''), | |
| 2975 | rpt_p sim_traits .ssn) > 0) | |
| 2976 | OR (INSTR ( | |
| 2977 | REGEX P_REPLACE (address_l ine3, | |
| 2978 | '([[:alph a:]]|[[:sp ace:]]|[[: punct:]])* ', | |
| 2979 | ''), | |
| 2980 | rpt_p sim_traits .ssn) > 0) | |
| 2981 | OR (INSTR ( | |
| 2982 | REGEX P_REPLACE (city, '([ [:alpha:]] |[[:space: ]]|[[:punc t:]])*', ' '), | |
| 2983 | rpt_p sim_traits .ssn) > 0) ); | |
| 2984 | ||
| 2985 | v_rec_c nt := SQL% ROWCOUNT; | |
| 2986 | COMMIT; | |
| 2987 | ||
| 2988 | ADRMGT. Job_Proces s_Log_Sp ( | |
| 2989 | PC_j ob_name => SUBSTR ('C LEAN_SSN_F RM_ADDR', 1, 60), | |
| 2990 | PD_j ob_log_dat e => SYSDATE, | |
| 2991 | PC_j ob_status => 'STG-COMPL ETE', | |
| 2992 | PC_J OB_LOG_MES SAGE => SUBSTR ( | |
| 2993 | 'STAG E record_c ount : ' | |
| 2994 | || v_rec _cnt | |
| 2995 | || ' Com pleted col lecting AD DRESS_IDs' , | |
| 2996 | 1, | |
| 2997 | 60)); | |
| 2998 | ||
| 2999 | UPDATE address tg t | |
| 3000 | SET (address_l ine1, | |
| 3001 | address_l ine2, | |
| 3002 | address_l ine3, | |
| 3003 | city) = | |
| 3004 | (SELECT CASE | |
| 3005 | WHEN ( INSTR ( | |
| 3006 | REGEXP_ REPLACE (a ddress_lin e1, | |
| 3007 | ' ([[:alpha: ]]|[[:spac e:]]|[[:pu nct:]])*', | |
| 3008 | ' '), | |
| 3009 | ssn) > 0) THEN | |
| 3010 | NUL L | |
| 3011 | ELSE | |
| 3012 | add ress_line1 | |
| 3013 | END | |
| 3014 | addres s_line1_re p, | |
| 3015 | CASE | |
| 3016 | WHEN ( INSTR ( | |
| 3017 | REGEXP_ REPLACE (a ddress_lin e2, | |
| 3018 | ' ([[:alpha: ]]|[[:spac e:]]|[[:pu nct:]])*', | |
| 3019 | ' '), | |
| 3020 | ssn) > 0) THEN | |
| 3021 | NUL L | |
| 3022 | ELSE | |
| 3023 | add ress_line2 | |
| 3024 | END | |
| 3025 | addres s_line2_re p, | |
| 3026 | CASE | |
| 3027 | WHEN ( INSTR ( | |
| 3028 | REGEXP_ REPLACE (a ddress_lin e3, | |
| 3029 | ' ([[:alpha: ]]|[[:spac e:]]|[[:pu nct:]])*', | |
| 3030 | ' '), | |
| 3031 | ssn) > 0) THEN | |
| 3032 | NUL L | |
| 3033 | ELSE | |
| 3034 | add ress_line3 | |
| 3035 | END | |
| 3036 | addres s_line3_re p, | |
| 3037 | CASE | |
| 3038 | WHEN ( INSTR ( | |
| 3039 | REGEXP_ REPLACE (c ity, | |
| 3040 | ' ([[:alpha: ]]|[[:spac e:]]|[[:pu nct:]])*', | |
| 3041 | ' '), | |
| 3042 | ssn) > 0) THEN | |
| 3043 | NUL L | |
| 3044 | ELSE | |
| 3045 | cit y | |
| 3046 | END | |
| 3047 | city_r ep | |
| 3048 | FROM STG_ADDRE SS_SSN_CLE ANUP src | |
| 3049 | WHERE src.addre ss_id = tg t.address_ id), | |
| 3050 | record_mod ified_by = '581393', | |
| 3051 | record_mod ified_date = SYSDATE , | |
| 3052 | record_mod ified_coun t = record _modified_ count + 1 | |
| 3053 | WHERE EXISTS | |
| 3054 | (SELECT 1 | |
| 3055 | FROM STG_ADDRE SS_SSN_CLE ANUP src | |
| 3056 | WHERE src.addre ss_id = tg t.address_ id); | |
| 3057 | ||
| 3058 | v_rec_c nt := SQL% ROWCOUNT; | |
| 3059 | COMMIT; | |
| 3060 | ||
| 3061 | ADRMGT. Job_Proces s_Log_Sp ( | |
| 3062 | PC_j ob_name => SUBSTR ('C LEAN_SSN_F RM_ADDR', 1, 60), | |
| 3063 | PD_j ob_log_dat e => SYSDATE, | |
| 3064 | PC_j ob_status => 'COMPLETE' , | |
| 3065 | PC_J OB_LOG_MES SAGE => SUBSTR ( | |
| 3066 | 'Upda ted record _count : ' | |
| 3067 | || v_rec _cnt | |
| 3068 | || ' Sta rting to p rocess', | |
| 3069 | 1, | |
| 3070 | 60)); | |
| 3071 | EXCEPTION | |
| 3072 | WHEN NO _DATA_FOUN D THEN | |
| 3073 | ADRM GT.Job_Pro cess_Log_S p ( | |
| 3074 | P C_job_name => SUBSTR ('CLEAN_SS N_FRM_ADDR ', 1, 60), | |
| 3075 | P D_job_log_ date => SYSDATE , | |
| 3076 | P C_job_stat us => 'WARN', | |
| 3077 | P C_JOB_LOG_ MESSAGE => SUBSTR ('Nothing to remove; no record FOUND', 1 , 60)); | |
| 3078 | WHEN OT HERS THEN | |
| 3079 | ADRM GT.Job_Pro cess_Log_S p ( | |
| 3080 | P C_job_name => SUBSTR ('CLEAN_SS N_FRM_ADDR ', 1, 60), | |
| 3081 | P D_job_log_ date => SYSDATE , | |
| 3082 | P C_job_stat us => 'FAILED ', | |
| 3083 | P C_JOB_LOG_ MESSAGE => SUBSTR ( | |
| 3084 | DB MS_UTILITY .FORMAT_CA LL_STACK | |
| 3085 | || DB MS_UTILITY .format_er ror_stack | |
| 3086 | || DB MS_UTILITY .format_er ror_backtr ace, | |
| 3087 | 1, | |
| 3088 | 60)); | |
| 3089 | END CLEAN_ SSN_FRM_AD DR; | |
| 3090 | / | |
| 3091 | ||
| 3092 | ||
| 3093 | CREATE OR REPLACE PU BLIC SYNON YM CLEAN_S SN_FRM_ADD R FOR ADR. CLEAN_SSN_ FRM_ADDR; | |
| 3094 | DROP PROCE DURE ADR.H ANDBOOK_SP ; | |
| 3095 | ||
| 3096 | CREATE OR REPLACE PR OCEDURE AD R.HANDBOOK _SP | |
| 3097 | IS | |
| 3098 | ||
| 3099 | -- VARIA BLES | |
| 3100 | ||
| 3101 | TYPE TAB LE_COL_TYP E IS TABLE OF VARCHA R2(1000) I NDEX BY BI NARY_INTEG ER; | |
| 3102 | VN_STR_L EN NUMBER:= 1 00; | |
| 3103 | VN_SEPAR ATOR CONSTANT V ARCHAR2(3) := ' | '; | |
| 3104 | ||
| 3105 | VC_WHERE VARCHAR2(3 200); | |
| 3106 | LV_Str_L ist VARCHAR2(5 00); | |
| 3107 | LB_cnt BINARY_INT EGER; | |
| 3108 | LA_Tab_S tr DBMS_UTILI TY.UNCL_AR RAY; | |
| 3109 | ||
| 3110 | LC_TMP VARCHAR2(1 00); | |
| 3111 | LC_err_s tr VARCHAR2(3 2767); | |
| 3112 | LC_str LONG; | |
| 3113 | l_row_cn t BINARY_INT EGER := 0; | |
| 3114 | LN_col_c ount BINARY_INT EGER := 0; | |
| 3115 | ||
| 3116 | VC_log_s tep VARCHAR2(5 00); | |
| 3117 | lc_col1 TABLE_COL_ TYPE; | |
| 3118 | lc_col2 TABLE_COL_ TYPE; | |
| 3119 | lc_col3 TABLE_COL_ TYPE; | |
| 3120 | lc_col4 TABLE_COL_ TYPE; | |
| 3121 | lc_col5 TABLE_COL_ TYPE; | |
| 3122 | ||
| 3123 | ||
| 3124 | VC_SELEC T1 VARCHAR2( 60):= 'SEL ECT * FROM ('; | |
| 3125 | LC_WHERE _LIMIT VARCHAR2( 2000); | |
| 3126 | LN_MAX_R OWS_DISP NUMBER := 30; --Th is number limit numb er of rows display o n the body message | |
| 3127 | VN_max_r ec_display NUMBER; | |
| 3128 | VN_vbr_t ot NUMBER ; | |
| 3129 | VN_ven_t ot NUMBER; | |
| 3130 | VN_brv_t ot NUMBER; | |
| 3131 | VN_hbr_t ot NUMBER; | |
| 3132 | VN_pr_to t NUMBER; | |
| 3133 | ||
| 3134 | VC_SQLST MT VARCHAR2( 5000); | |
| 3135 | ||
| 3136 | vMesg LONG; | |
| 3137 | vSubj VARCHAR2( 800); | |
| 3138 | ||
| 3139 | ||
| 3140 | VB_allow _rpt_inst BOO LEAN := FA LSE; | |
| 3141 | VB_error BOOL EAN := FAL SE; | |
| 3142 | VB_run_s tandalone B OOLEAN := FALSE; | |
| 3143 | VB_updat e_row BO OLEAN := F ALSE; | |
| 3144 | ||
| 3145 | VC_allow _rpt_inst VA RCHAR2(5) := NULL; | |
| 3146 | ||
| 3147 | VC_proce ss_duratio n VA RCHAR2(25) ; | |
| 3148 | VC_proce ss_name V ARCHAR2(30 ) := 'ADR. HANDBOOK_S P'; | |
| 3149 | ||
| 3150 | ||
| 3151 | VN_Inst_ name VAR CHAR2(60); | |
| 3152 | VC_host_ name V ARCHAR2(60 ); | |
| 3153 | VC_email _list VA RCHAR2(300 ); | |
| 3154 | ||
| 3155 | ||
| 3156 | CURSOR c _hbr IS SE LECT batch _release_s ize, batch _release_d ate | |
| 3157 | FROM h andbook_ba tch_reques t | |
| 3158 | WHERE (record_cr eated_date >= TRUNC( sysdate) - 7 | |
| 3159 | AND re cord_creat ed_date < sysdate) | |
| 3160 | AND st d_handbook batchreque ststa_id = 2000010 | |
| 3161 | ORDER BY record_ created_da te; | |
| 3162 | ||
| 3163 | -- ******* ********** ********** ********** ********** ********** ********** ******* | |
| 3164 | -- * | |
| 3165 | -- * MAIN PROCEDURE : | |
| 3166 | -- * | |
| 3167 | -- * | |
| 3168 | -- ******* ********** ********** ********** ********** ********** ********** ******* | |
| 3169 | ||
| 3170 | BEGIN | |
| 3171 | ||
| 3172 | VC_log_ step := 'G et instanc e name'; | |
| 3173 | ||
| 3174 | SELECT sys_contex t('USERENV ','INSTANC E_NAME'), sys_contex t('USERENV ', 'SERVER _HOST') | |
| 3175 | into VN _Inst_name , VC_host_ name | |
| 3176 | FROM du al; | |
| 3177 | ||
| 3178 | ADRMGT. Job_Proces s_Log_Sp(P C_job_name => SUBSTR (VC_proces s_name,1,6 0), | |
| 3179 | PD _job_log_d ate => SYS DATE, | |
| 3180 | PC _job_statu s => SUBST R('INFORMA TION - Pro cess Initi ation',1,6 0), | |
| 3181 | PD _date1 => SYSDATE, | |
| 3182 | PC _text1 => VC_log_ste p||' - Ini tiating AD R Handbook Job'); | |
| 3183 | ||
| 3184 | VN_max_ rec_displa y := NVL(V N_max_rec_ display,30 ); -- set max defau lt to 30 r ows | |
| 3185 | LC_str := 'List of batch r equests fo r the week : '; | |
| 3186 | FOR th is_sql in c_hbr LO OP | |
| 3187 | LC_s tr := LC_ str ||CHR( 10)||RPAD( this_sql.b atch_relea se_size,20 )||' '||th is_sql.bat ch_release _date; | |
| 3188 | End Lo op; | |
| 3189 | ||
| 3190 | SELE CT EMAIL_A DDRESS_LIS T | |
| 3191 | IN TO VC_ema il_list | |
| 3192 | FROM ADRMGT.AD R_USER_CON TACT | |
| 3193 | WHER E CONTACT_ EMAIL_USER _NAME = 'E SR_GRP'; | |
| 3194 | SELE CT NVL(SUM (batch_rel ease_size) , 0) weekl y_batch_re lease_tota l | |
| 3195 | INTO VN_vbr_to t | |
| 3196 | FROM handbook_ batch_requ est | |
| 3197 | WHER E (record_ created_da te >= TRUN C(sysdate) - 7 | |
| 3198 | AND record_cre ated_date < sysdate) | |
| 3199 | AND std_handbo okbatchreq ueststa_id = 2000010 ; | |
| 3200 | LC_s tr := LC_s tr||CHR(10 )||'Total number of records se lected for the week from the b atch reque st: '||VN _vbr_tot|| CHR(10); | |
| 3201 | ||
| 3202 | SELE CT COUNT(* ) requests _to_vendor _total_cou nt | |
| 3203 | INTO VN_ven_to t | |
| 3204 | FROM handbook_ mail_queue hbq, hand book_mail_ status_h h ms | |
| 3205 | WHER E hbq.hand book_mail_ queue_id = hms.handb ook_mail_q ueue_id | |
| 3206 | AND hms.std_ha ndbookmail stattype_i d = 200000 5 | |
| 3207 | AND (hbq.recor d_created_ date >= TR UNC(sysdat e) - 7 | |
| 3208 | AND hbq.record _created_d ate < sysd ate); | |
| 3209 | LC_s tr := LC_s tr||CHR(10 )||'Total Number of requests s ent to ven dor: '|| VN_ven_tot ||CHR(10); | |
| 3210 | ||
| 3211 | SELE CT COUNT(* ) batch_re quests_to_ vendor_cou nt | |
| 3212 | into VN_brv_to t | |
| 3213 | FROM handbook_ mail_queue hbq, hand book_mail_ status_h h ms | |
| 3214 | WHER E hbq.hand book_mail_ queue_id = hms.handb ook_mail_q ueue_id | |
| 3215 | AND hms.std_ha ndbookmail stattype_i d = 200000 5 | |
| 3216 | AND hbq.handbo ok_batch_r equest_id IN (SELECT handbook_ batch_requ est_id | |
| 3217 | FROM ha ndbook_bat ch_request | |
| 3218 | WHERE (r ecord_crea ted_date > = TRUNC(sy sdate) - 7 | |
| 3219 | AND re cord_creat ed_date < sysdate) | |
| 3220 | AND st d_handbook batchreque ststa_id = 2000010); | |
| 3221 | LC_ str := LC_ str||CHR(1 0)||'Total Number of requests sent to ve ndor from the batch requests f or the wee k: '|| VN _brv_tot|| CHR(10); | |
| 3222 | SEL ECT COUNT( *) handboo ks_receive d_count | |
| 3223 | INT O VN_hbr_t ot | |
| 3224 | FRO M vbr.docu ment_recei pt d, vbr. document d r | |
| 3225 | WHE RE d.docum ent_receip t_id = dr. document_r eceipt_id | |
| 3226 | AND receipt_s tring IN ( SELECT han dbook_mail _queue_id | |
| 3227 | FR OM handboo k_mail_que ue hmq, ha ndbook_bat ch_request hbr | |
| 3228 | WHE RE hmq.han dbook_batc h_request_ id = hbr.h andbook_ba tch_reques t_id | |
| 3229 | A ND hbr.std _handbookb atchreques tsta_id = 2000010 | |
| 3230 | A ND (hbr.re cord_creat ed_date >= TRUNC(sys date) - 7 | |
| 3231 | A ND hbr.rec ord_create d_date < s ysdate)) | |
| 3232 | AND dr.docume nt_type_id = 3; | |
| 3233 | LC_ str := LC_ str||CHR(1 0)||'Numbe r of handb ooks recei ved: '|| VN_hbr_tot ||CHR(10); | |
| 3234 | SEL ECT COUNT( *) profile s_received _count | |
| 3235 | INT O VN_pr_to t | |
| 3236 | FRO M vbr.docu ment_recei pt d, vbr. document d r | |
| 3237 | WHE RE d.docum ent_receip t_id = dr. document_r eceipt_id | |
| 3238 | AND receipt_s tring IN ( SELECT han dbook_mail _queue_id | |
| 3239 | FR OM handboo k_mail_que ue hmq, ha ndbook_bat ch_request hbr | |
| 3240 | WHE RE hmq.han dbook_batc h_request_ id = hbr.h andbook_ba tch_reques t_id | |
| 3241 | A ND hbr.std _handbookb atchreques tsta_id = 2000010 | |
| 3242 | A ND (hbr.re cord_creat ed_date >= TRUNC(sys date) - 7 | |
| 3243 | A ND hbr.rec ord_create d_date < s ysdate)) | |
| 3244 | AN D dr.docum ent_type_i d = 4; | |
| 3245 | LC_ str := LC_ str||CHR(1 0)||'Numbe r of benef it profile s received : '|| VN_ pr_tot; | |
| 3246 | -- DB MS_OUTPUT. PUT_LINE(L C_str); | |
| 3247 | vSub j := VC_pr ocess_name ||' - Repo rt ' ||'(' ||VN_Inst_ name||'@'| |VC_host_n ame||')'; | |
| 3248 | vMes g := LC_st r; | |
| 3249 | VC_l og_step := 'Invoking utl_mail. send'; | |
| 3250 | UTL_MAIL.S END (SENDE R => 'oracle @'||VC_hos t_name||'a ac. DNS ', | |
| 3251 | RECIPIENTS => VC_em ail_list, | |
| 3252 | SUBJECT => vSubj , | |
| 3253 | MESSAGE => vMesg ); | |
| 3254 | ||
| 3255 | ADRMG T.Job_Proc ess_Log_Sp ( | |
| 3256 | PC_job_na me => SUBS TR(VC_proc ess_name,1 ,60), | |
| 3257 | PD_job_lo g_date => SYSDATE, | |
| 3258 | PC_job_st atus => SU BSTR('INFO RMATION - '||VC_log_ step,1,60) , | |
| 3259 | PC_job_lo g_message => SUBSTR( VC_log_ste p,1,2000), | |
| 3260 | PD_date1 => SYSDATE , | |
| 3261 | PC_text1 => SUBSTR( VC_log_ste p,1,255)); | |
| 3262 | ||
| 3263 | EXCEPTIO N | |
| 3264 | ||
| 3265 | WHEN N O_DATA_FOU ND THEN | |
| 3266 | ||
| 3267 | NULL ; | |
| 3268 | ||
| 3269 | WHEN O THERS THEN | |
| 3270 | ||
| 3271 | ADRM GT.Job_Pro cess_Err_S p(PC_job_n ame => SUB STR(VC_pro cess_name, 1,60), | |
| 3272 | PD_job_e rror_date => SYSDAT E, | |
| 3273 | PC_job_e rror_code => SUBSTR( SQLCODE,1, 60), | |
| 3274 | PC_job_e rror_messa ge => SUBS TR('Unknow n error wh ile removi ng old pro cess logs. ' | |
| 3275 | || SQLE RRM,1,2000 ), | |
| 3276 | PD_date1 => SYSDAT E, | |
| 3277 | PC_text1 => SUBSTR ('Date1 co lumn conta ins the da ily proces s start da te',1,255) ); | |
| 3278 | ||
| 3279 | ||
| 3280 | END HANDBO OK_SP; | |
| 3281 | / | |
| 3282 | DROP PROCE DURE ADR.H L7_TXN_LOG _NULL_ERR_ COL_SP; | |
| 3283 | ||
| 3284 | CREATE OR REPLACE PR OCEDURE AD R.Hl7_Txn_ Log_Null_E rr_Col_Sp | |
| 3285 | (PB_run_ standalone | |
| 3286 | IN BOOLEAN DEFAULT FA LSE, | |
| 3287 | PB_allo w_rpt_inst | |
| 3288 | IN BOOLEAN DEFAULT FA LSE, | |
| 3289 | PN_rows _to_proces s | |
| 3290 | IN NUMBER D EFAULT NUL L | |
| 3291 | ) | |
| 3292 | IS | |
| 3293 | ||
| 3294 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 3295 | -- * Proce dure: Hl7_ Txn_Log_Nu ll_Error_C ol | |
| 3296 | -- * | |
| 3297 | -- * Upd ate HL7 tr anscations to remove data from the inter nal_error_ text | |
| 3298 | -- * col umn for al l rows mor e than 6 m onths old. | |
| 3299 | -- * | |
| 3300 | -- * Param eters: | |
| 3301 | -- * | |
| 3302 | -- * PB_r un_standal one Igno re DBMS_JO B logic fo r checking running j obs. | |
| 3303 | -- * Def ault: FALS E | |
| 3304 | -- * | |
| 3305 | -- * PB_a llow_rpt_i nst Allo w stored p rocedure t o be submi tted in th e | |
| 3306 | -- * DBMS _JOB queue on the AD R reportin g database s | |
| 3307 | -- * Def ault: FALS E | |
| 3308 | -- * | |
| 3309 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 3310 | -- | |
| 3311 | -- ======= ========== ========== ========== ========== ========== ========== ======== | |
| 3312 | -- Date Autho r Descrip tion | |
| 3313 | -- ======= ========== ========== ========== ========== ========== ========== ======== | |
| 3314 | -- 06/23/2 010 Craig Wood Created for CCR 1 100. | |
| 3315 | -- | |
| 3316 | -- ======= ========== ========== ========== ========== ========== ========== ======== | |
| 3317 | ||
| 3318 | -- CONSTAN TS | |
| 3319 | ||
| 3320 | CC_no V ARCHAR2(1) := 'N'; | |
| 3321 | CC_parm_ applicatio n_name CONSTANT V ARCHAR2(80 ) := 'HL7 NULL INTER NAL_ERROR_ TEXT COLUM N'; | |
| 3322 | CC_parm_ hl7_err_tx t_age CONSTANT V ARCHAR2(50 ) := 'OLDE ST HL7 ERR OR TEXT DA YS'; | |
| 3323 | CC_parm_ last_hl7_i d CONSTANT V ARCHAR2(50 ) := 'LAST HL7 ID PR OCESSED'; | |
| 3324 | CC_parm_ log_file_a ge CONSTANT V ARCHAR2(50 ) := 'OLDE ST LOG FIL E DAYS'; | |
| 3325 | CC_proce ss_name CONSTANT V ARCHAR2(60 ) := 'HL7 NULL INTER NAL_ERROR_ TEXT COLUM N'; | |
| 3326 | CC_sp_na me CONSTANT V ARCHAR2(35 ) := 'Hl7_ Txn_Log_Nu ll_Err_Col _Sp'; | |
| 3327 | CC_yes V ARCHAR2(1) := 'Y'; | |
| 3328 | ||
| 3329 | -- VARIABL ES | |
| 3330 | ||
| 3331 | VB_allow _rpt_inst B OOLEAN := FALSE; | |
| 3332 | VB_run_s tandalone B OOLEAN := FALSE; | |
| 3333 | ||
| 3334 | VC_allow _rpt_inst V ARCHAR2(5) := NULL; | |
| 3335 | VC_insta nce_name V ARCHAR2(16 ); | |
| 3336 | VC_proce ss_duratio n V ARCHAR2(25 ); | |
| 3337 | VC_run_s tandalone V ARCHAR2(5) := NULL; | |
| 3338 | VC_sql_s tatement V ARCHAR2(20 00); | |
| 3339 | ||
| 3340 | VD_log_d ate D ATE; | |
| 3341 | VD_proce ss_end_dat e D ATE; | |
| 3342 | VD_proce ss_start_d ate D ATE; | |
| 3343 | VD_rec_g roup_date D ATE; | |
| 3344 | ||
| 3345 | VN_job_c ount N UMBER := 0 ; | |
| 3346 | VN_job_n umber N UMBER; | |
| 3347 | VN_max_l og_id N UMBER := 0 ; | |
| 3348 | VN_parm_ hl7_err_tx t_age N UMBER; | |
| 3349 | VN_parm_ log_file_a ge N UMBER; | |
| 3350 | VN_parm_ last_log_i d N UMBER := 0 ; | |
| 3351 | VN_parm_ rows_to_pr ocess N UMBER; | |
| 3352 | VN_pass_ count N UMBER := 0 ; | |
| 3353 | VN_rec_c ount N UMBER := 0 ; | |
| 3354 | VN_updat e_count N UMBER := 0 ; | |
| 3355 | ||
| 3356 | -- CURSORS | |
| 3357 | ||
| 3358 | CURSOR C _hl7_id IS | |
| 3359 | SELECT Hl7_tr ansaction_ log_id | |
| 3360 | FROM Hl7_tr ansaction_ log | |
| 3361 | WHERE Hl7_tr ansaction_ log_id > V N_parm_las t_log_id | |
| 3362 | AND Record _created_d ate < TRUN C(SYSDATE) - VN_parm _hl7_err_t xt_age | |
| 3363 | AND Intern al_error_t ext IS NOT NULL; | |
| 3364 | ||
| 3365 | -- TYPES | |
| 3366 | ||
| 3367 | TYPE TT_ hl7_id IS | |
| 3368 | TABLE OF ADR.Hl7 _Transacti on_Log.Hl7 _transacti on_log_id% TYPE; | |
| 3369 | ||
| 3370 | -- MEMORY TABLES | |
| 3371 | ||
| 3372 | T_hl7_id T T_hl7_id; | |
| 3373 | ||
| 3374 | -- ******* ********** ********** ********** ********** ********** ********** ******* | |
| 3375 | -- * | |
| 3376 | -- * MAIN PROCEDURE : | |
| 3377 | -- * | |
| 3378 | -- ******* ********** ********** ********** ********** ********** ********** ******* | |
| 3379 | ||
| 3380 | BEGIN | |
| 3381 | ||
| 3382 | VC_sql_s tatement:= 'ALTER SES SION SET D B_FILE_MUL TIBLOCK_RE AD_COUNT = 128'; | |
| 3383 | EXECUTE IMMEDIATE VC_sql_sta tement; | |
| 3384 | ||
| 3385 | VC_sql_s tatement:= 'ALTER SES SION SET O PTIMIZER_D YNAMIC_SAM PLING = 6' ; | |
| 3386 | EXECUTE IMMEDIATE VC_sql_sta tement; | |
| 3387 | ||
| 3388 | VC_sql_s tatement:= 'ALTER SES SION SET O PTIMIZER_M ODE = ALL_ ROWS'; | |
| 3389 | EXECUTE IMMEDIATE VC_sql_sta tement; | |
| 3390 | ||
| 3391 | VC_sql_s tatement:= 'ALTER SES SION SET S ORT_AREA_S IZE = 8192 000'; | |
| 3392 | EXECUTE IMMEDIATE VC_sql_sta tement; | |
| 3393 | ||
| 3394 | VC_sql_s tatement:= 'ALTER SES SION FORCE PARALLEL QUERY PARA LLEL 8'; | |
| 3395 | EXECUTE IMMEDIATE VC_sql_sta tement; | |
| 3396 | ||
| 3397 | VC_sql_s tatement:= 'ALTER SES SION FORCE PARALLEL DML PARALL EL 8'; | |
| 3398 | EXECUTE IMMEDIATE VC_sql_sta tement; | |
| 3399 | ||
| 3400 | VD_rec_g roup_date := TRUNC(S YSDATE); | |
| 3401 | ||
| 3402 | VD_log_d ate := SYS DATE; | |
| 3403 | ADRMGT.J ob_Process _Log_Sp(PC _job_name => SUBSTR( CC_process _name,1,60 ), | |
| 3404 | PD _job_log_d ate => VD_ log_date, | |
| 3405 | PC _job_statu s => SUBST R('Process Initiatio n',1,60), | |
| 3406 | PD _date1 => VD_rec_gro up_date, | |
| 3407 | PC _text1 => SUBSTR('Da te1 column contains the daily process st art date', 1,255)); | |
| 3408 | ||
| 3409 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 3410 | -- * | |
| 3411 | -- * Valid ate input parameters | |
| 3412 | -- * | |
| 3413 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 3414 | ||
| 3415 | -- * Check run stand alone flag | |
| 3416 | ||
| 3417 | IF PB_ru n_standalo ne IS NULL | |
| 3418 | OR NOT PB_run_sta ndalone TH EN | |
| 3419 | ||
| 3420 | VB_run _standalon e := FALSE ; | |
| 3421 | VC_run _standalon e := 'FALS E'; -- use d for log message, b oolean can 't be disp layed | |
| 3422 | ||
| 3423 | ELSE | |
| 3424 | ||
| 3425 | VB_run _standalon e := TRUE; | |
| 3426 | VC_run _standalon e := 'TRUE '; -- used for log m essage, bo olean can' t be displ ayed | |
| 3427 | ||
| 3428 | END IF; | |
| 3429 | ||
| 3430 | -- * Check run on re port insta nce flag | |
| 3431 | ||
| 3432 | IF PB_al low_rpt_in st IS NULL | |
| 3433 | OR NOT PB_allow_r pt_inst TH EN | |
| 3434 | ||
| 3435 | VB_all ow_rpt_ins t := FALSE ; | |
| 3436 | VC_all ow_rpt_ins t := 'FALS E'; -- use d for log message, b oolean can 't be disp layed | |
| 3437 | ||
| 3438 | ELSE | |
| 3439 | ||
| 3440 | VB_all ow_rpt_ins t := TRUE; | |
| 3441 | VC_all ow_rpt_ins t := 'TRUE '; -- used for log m essage, bo olean can' t be displ ayed | |
| 3442 | ||
| 3443 | END IF; | |
| 3444 | ||
| 3445 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 3446 | -- * | |
| 3447 | -- * Retri eve proces sing param eters | |
| 3448 | -- * | |
| 3449 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 3450 | ||
| 3451 | -- Process Parameter OLDEST HL 7 ERROR TE XT DAYS KE PT | |
| 3452 | ||
| 3453 | BEGIN | |
| 3454 | ||
| 3455 | SELECT Value | |
| 3456 | INTO VN_par m_hl7_err_ txt_age | |
| 3457 | FROM ADRMGT .Adr_Param eter | |
| 3458 | WHERE Applic ation_name = 'HL7 NU LL INTERNA L_ERROR_TE XT COLUMN' | |
| 3459 | AND Parame ter_name = 'OLDEST H L7 ERROR T EXT DAYS K EPT'; | |
| 3460 | ||
| 3461 | IF VN_ parm_hl7_e rr_txt_age IS NULL T HEN | |
| 3462 | ||
| 3463 | VD_l og_date := SYSDATE; | |
| 3464 | ADRM GT.Job_Pro cess_Log_S p(PC_job_n ame => SUB STR(CC_pro cess_name, 1,60), | |
| 3465 | PD_job_l og_date => VD_log_da te, | |
| 3466 | PC_job_s tatus => S UBSTR('ERR OR - Unable to retrieve job parame ters',1,60 ), | |
| 3467 | PC_job_l og_message => SUBSTR ('Paramete r OLDEST H L7 ERROR T EXT DAYS K EPT is NUL L. Termina ting proce ss.',1,200 0), | |
| 3468 | PD_date1 => VD_rec _group_dat e, | |
| 3469 | PC_text1 => SUBSTR ('Date1 co lumn conta ins the da ily proces s start da te',1,255) ); | |
| 3470 | ||
| 3471 | RETU RN; | |
| 3472 | ||
| 3473 | END IF ; | |
| 3474 | ||
| 3475 | EXCEPTIO N | |
| 3476 | ||
| 3477 | WHEN N O_DATA_FOU ND THEN | |
| 3478 | ||
| 3479 | VD_l og_date := SYSDATE; | |
| 3480 | ADRM GT.Job_Pro cess_Log_S p(PC_job_n ame => SUB STR(CC_pro cess_name, 1,60), | |
| 3481 | PD_job_l og_date => VD_log_da te, | |
| 3482 | PC_job_s tatus => S UBSTR('ERR OR - Unable to retrieve job parame ters',1,60 ), | |
| 3483 | PC_job_l og_message => 'Param eter for O LDEST HL7 ERROR TEXT DAYS KEPT was not f ound. Term inating pr ocess.', | |
| 3484 | PD_date1 => VD_rec _group_dat e, | |
| 3485 | PC_text1 => SUBSTR ('Date1 co lumn conta ins the da ily proces s start da te',1,255) ); | |
| 3486 | ||
| 3487 | RETU RN; | |
| 3488 | ||
| 3489 | WHEN O THERS THEN | |
| 3490 | ||
| 3491 | VD_l og_date := SYSDATE; | |
| 3492 | ADRM GT.Job_Pro cess_Log_S p(PC_job_n ame => SUB STR(CC_pro cess_name, 1,60), | |
| 3493 | PD_job_l og_date => VD_log_da te, | |
| 3494 | PC_job_s tatus => S UBSTR('ERR OR - Unable to retrieve job parame ters',1,60 ), | |
| 3495 | PC_job_l og_message => SUBSTR ('Unknown error retr ieving par ameter for OLDEST HL 7 ERROR TE XT DAYS KE PT. Termin ating proc ess. ' | |
| 3496 | || SQLERR M,1,2000), | |
| 3497 | PD_date1 => VD_rec _group_dat e, | |
| 3498 | PC_text1 => SUBSTR ('Date1 co lumn conta ins the da ily proces s start da te',1,255) ); | |
| 3499 | ||
| 3500 | RETU RN; | |
| 3501 | ||
| 3502 | END; | |
| 3503 | ||
| 3504 | -- Process Parameter OLDEST LO G FILE DAY S KEPT | |
| 3505 | ||
| 3506 | BEGIN | |
| 3507 | ||
| 3508 | SELECT Value | |
| 3509 | INTO VN_par m_log_file _age | |
| 3510 | FROM ADRMGT .Adr_Param eter | |
| 3511 | WHERE Applic ation_name = 'HL7 NU LL INTERNA L_ERROR_TE XT COLUMN' | |
| 3512 | AND Parame ter_name = 'OLDEST L OG FILE DA YS KEPT'; | |
| 3513 | ||
| 3514 | IF VN_ parm_log_f ile_age IS NULL THEN | |
| 3515 | ||
| 3516 | VD_l og_date := SYSDATE; | |
| 3517 | ADRM GT.Job_Pro cess_Log_S p(PC_job_n ame => SUB STR(CC_pro cess_name, 1,60), | |
| 3518 | PD_job_l og_date => VD_log_da te, | |
| 3519 | PC_job_s tatus => S UBSTR('ERR OR - Unable to retrieve job parame ters',1,60 ), | |
| 3520 | PC_job_l og_message => SUBSTR ('Paramete r OLDEST L OG FILE DA YS KEPT is NULL. Ter minating p rocess.',1 ,2000), | |
| 3521 | PD_date1 => VD_rec _group_dat e, | |
| 3522 | PC_text1 => SUBSTR ('Date1 co lumn conta ins the da ily proces s start da te',1,255) ); | |
| 3523 | ||
| 3524 | RETU RN; | |
| 3525 | ||
| 3526 | END IF ; | |
| 3527 | ||
| 3528 | EXCEPTIO N | |
| 3529 | ||
| 3530 | WHEN N O_DATA_FOU ND THEN | |
| 3531 | ||
| 3532 | VD_l og_date := SYSDATE; | |
| 3533 | ADRM GT.Job_Pro cess_Log_S p(PC_job_n ame => SUB STR(CC_pro cess_name, 1,60), | |
| 3534 | PD_job_l og_date => VD_log_da te, | |
| 3535 | PC_job_s tatus => S UBSTR('ERR OR - Unable to retrieve job parame ters',1,60 ), | |
| 3536 | PC_job_l og_message => 'Param eter for O LDEST LOG FILE DAYS KEPT was n ot found. Terminatin g process. ', | |
| 3537 | PD_date1 => VD_rec _group_dat e, | |
| 3538 | PC_text1 => SUBSTR ('Date1 co lumn conta ins the da ily proces s start da te',1,255) ); | |
| 3539 | ||
| 3540 | RETU RN; | |
| 3541 | ||
| 3542 | WHEN O THERS THEN | |
| 3543 | ||
| 3544 | VD_l og_date := SYSDATE; | |
| 3545 | ADRM GT.Job_Pro cess_Log_S p(PC_job_n ame => SUB STR(CC_pro cess_name, 1,60), | |
| 3546 | PD_job_l og_date => VD_log_da te, | |
| 3547 | PC_job_s tatus => S UBSTR('ERR OR - Unable to retrieve job parame ters',1,60 ), | |
| 3548 | PC_job_l og_message => SUBSTR ('Unknown error retr ieving par ameter for OLDEST LO G FILE DAY S KEPT. Te rminating process. ' | |
| 3549 | || SQLERR M,1,2000), | |
| 3550 | PD_date1 => VD_rec _group_dat e, | |
| 3551 | PC_text1 => SUBSTR ('Date1 co lumn conta ins the da ily proces s start da te',1,255) ); | |
| 3552 | ||
| 3553 | RETU RN; | |
| 3554 | ||
| 3555 | END; | |
| 3556 | ||
| 3557 | -- Process Parameter ROWS TO P ROCESS | |
| 3558 | ||
| 3559 | BEGIN | |
| 3560 | ||
| 3561 | SELECT Value | |
| 3562 | INTO VN_par m_rows_to_ process | |
| 3563 | FROM ADRMGT .Adr_Param eter | |
| 3564 | WHERE Applic ation_name = 'HL7 NU LL INTERNA L_ERROR_TE XT COLUMN' | |
| 3565 | AND Parame ter_name = 'ROWS TO PROCESS'; | |
| 3566 | ||
| 3567 | IF VN_ parm_rows_ to_process IS NULL T HEN | |
| 3568 | ||
| 3569 | VD_l og_date := SYSDATE; | |
| 3570 | ADRM GT.Job_Pro cess_Log_S p(PC_job_n ame => SUB STR(CC_pro cess_name, 1,60), | |
| 3571 | PD_job_l og_date => VD_log_da te, | |
| 3572 | PC_job_s tatus => S UBSTR('ERR OR - Unable to retrieve job parame ters',1,60 ), | |
| 3573 | PC_job_l og_message => SUBSTR ('Paramete r ROWS TO PROCESS is NULL. Ter minating p rocess.',1 ,2000), | |
| 3574 | PD_date1 => VD_rec _group_dat e, | |
| 3575 | PC_text1 => SUBSTR ('Date1 co lumn conta ins the da ily proces s start da te',1,255) ); | |
| 3576 | ||
| 3577 | RETU RN; | |
| 3578 | ||
| 3579 | END IF ; | |
| 3580 | ||
| 3581 | EXCEPTIO N | |
| 3582 | ||
| 3583 | WHEN N O_DATA_FOU ND THEN | |
| 3584 | ||
| 3585 | VD_l og_date := SYSDATE; | |
| 3586 | ADRM GT.Job_Pro cess_Log_S p(PC_job_n ame => SUB STR(CC_pro cess_name, 1,60), | |
| 3587 | PD_job_l og_date => VD_log_da te, | |
| 3588 | PC_job_s tatus => S UBSTR('ERR OR - Unable to retrieve job parame ters',1,60 ), | |
| 3589 | PC_job_l og_message => 'Param eter for R OWS TO PRO CESS was n ot found. Terminatin g process. ', | |
| 3590 | PD_date1 => VD_rec _group_dat e, | |
| 3591 | PC_text1 => SUBSTR ('Date1 co lumn conta ins the da ily proces s start da te',1,255) ); | |
| 3592 | ||
| 3593 | RETU RN; | |
| 3594 | ||
| 3595 | WHEN O THERS THEN | |
| 3596 | ||
| 3597 | VD_l og_date := SYSDATE; | |
| 3598 | ADRM GT.Job_Pro cess_Log_S p(PC_job_n ame => SUB STR(CC_pro cess_name, 1,60), | |
| 3599 | PD_job_l og_date => VD_log_da te, | |
| 3600 | PC_job_s tatus => S UBSTR('ERR OR - Unable to retrieve job parame ters',1,60 ), | |
| 3601 | PC_job_l og_message => SUBSTR ('Unknown error retr ieving par ameter for ROWS TO P ROCESS. Te rminating process. ' | |
| 3602 | || SQLERR M,1,2000), | |
| 3603 | PD_date1 => VD_rec _group_dat e, | |
| 3604 | PC_text1 => SUBSTR ('Date1 co lumn conta ins the da ily proces s start da te',1,255) ); | |
| 3605 | ||
| 3606 | RETU RN; | |
| 3607 | ||
| 3608 | END; | |
| 3609 | ||
| 3610 | -- Process Parameter LAST PROC ESSED LOG ID | |
| 3611 | ||
| 3612 | BEGIN | |
| 3613 | ||
| 3614 | SELECT Value | |
| 3615 | INTO VN_par m_last_log _id | |
| 3616 | FROM ADRMGT .Adr_Param eter | |
| 3617 | WHERE Applic ation_name = 'HL7 NU LL INTERNA L_ERROR_TE XT COLUMN' | |
| 3618 | AND Parame ter_name = 'LAST PRO CESSED LOG ID'; | |
| 3619 | ||
| 3620 | IF VN_ parm_last_ log_id IS NULL THEN | |
| 3621 | ||
| 3622 | VD_l og_date := SYSDATE; | |
| 3623 | ADRM GT.Job_Pro cess_Log_S p(PC_job_n ame => SUB STR(CC_pro cess_name, 1,60), | |
| 3624 | PD_job_l og_date => VD_log_da te, | |
| 3625 | PC_job_s tatus => S UBSTR('ERR OR - Unable to retrieve job parame ters',1,60 ), | |
| 3626 | PC_job_l og_message => SUBSTR ('Paramete r LAST PRO CESSED LOG ID is NUL L. Termina ting proce ss.',1,200 0), | |
| 3627 | PD_date1 => VD_rec _group_dat e, | |
| 3628 | PC_text1 => SUBSTR ('Date1 co lumn conta ins the da ily proces s start da te',1,255) ); | |
| 3629 | ||
| 3630 | RETU RN; | |
| 3631 | ||
| 3632 | END IF ; | |
| 3633 | ||
| 3634 | EXCEPTIO N | |
| 3635 | ||
| 3636 | WHEN N O_DATA_FOU ND THEN | |
| 3637 | ||
| 3638 | VD_l og_date := SYSDATE; | |
| 3639 | ADRM GT.Job_Pro cess_Log_S p(PC_job_n ame => SUB STR(CC_pro cess_name, 1,60), | |
| 3640 | PD_job_l og_date => VD_log_da te, | |
| 3641 | PC_job_s tatus => S UBSTR('ERR OR - Unable to retrieve job parame ters',1,60 ), | |
| 3642 | PC_job_l og_message => 'Param eter for L AST PROCES SED LOG ID was not f ound. Term inating pr ocess.', | |
| 3643 | PD_date1 => VD_rec _group_dat e, | |
| 3644 | PC_text1 => SUBSTR ('Date1 co lumn conta ins the da ily proces s start da te',1,255) ); | |
| 3645 | ||
| 3646 | RETU RN; | |
| 3647 | ||
| 3648 | WHEN O THERS THEN | |
| 3649 | ||
| 3650 | VD_l og_date := SYSDATE; | |
| 3651 | ADRM GT.Job_Pro cess_Log_S p(PC_job_n ame => SUB STR(CC_pro cess_name, 1,60), | |
| 3652 | PD_job_l og_date => VD_log_da te, | |
| 3653 | PC_job_s tatus => S UBSTR('ERR OR - Unable to retrieve job parame ters',1,60 ), | |
| 3654 | PC_job_l og_message => SUBSTR ('Unknown error retr ieving par ameter for LAST PROC ESSED LOG ID. Termin ating proc ess. ' | |
| 3655 | || SQLERR M,1,2000), | |
| 3656 | PD_date1 => VD_rec _group_dat e, | |
| 3657 | PC_text1 => SUBSTR ('Date1 co lumn conta ins the da ily proces s start da te',1,255) ); | |
| 3658 | ||
| 3659 | RETU RN; | |
| 3660 | ||
| 3661 | END; | |
| 3662 | ||
| 3663 | -- Write o ut Paramet er log mes sages for submitted job | |
| 3664 | ||
| 3665 | VD_log_d ate := SYS DATE; | |
| 3666 | ADRMGT.J ob_Process _Log_Sp(PC _job_name => SUBSTR( CC_process _name,1,60 ), | |
| 3667 | PD _job_log_d ate => VD_ log_date, | |
| 3668 | PC _job_statu s => SUBST R('INFORMA TION - Job submissio n paramete rs',1,60), | |
| 3669 | PC _job_log_m essage => SUBSTR(' R un standal one: ' || VC_run_sta ndalone,1, 2000), | |
| 3670 | PD _date1 => VD_rec_gro up_date, | |
| 3671 | PC _text1 => SUBSTR('Da te1 column contains the daily process st art date', 1,255)); | |
| 3672 | ||
| 3673 | VD_log_d ate := SYS DATE; | |
| 3674 | ADRMGT.J ob_Process _Log_Sp(PC _job_name => SUBSTR( CC_process _name,1,60 ), | |
| 3675 | PD _job_log_d ate => VD_ log_date, | |
| 3676 | PC _job_statu s => SUBST R('INFORMA TION - Job submissio n paramete rs',1,60), | |
| 3677 | PC _job_log_m essage => SUBSTR(' R un on repo rting data bases: ' | | VC_allow _rpt_inst, 1,2000), | |
| 3678 | PD _date1 => VD_rec_gro up_date, | |
| 3679 | PC _text1 => SUBSTR('Da te1 column contains the daily process st art date', 1,255)); | |
| 3680 | ||
| 3681 | VD_log_d ate := SYS DATE; | |
| 3682 | ADRMGT.J ob_Process _Log_Sp(PC _job_name => SUBSTR( CC_process _name,1,60 ), | |
| 3683 | PD _job_log_d ate => VD_ log_date, | |
| 3684 | PC _job_statu s => SUBST R('INFORMA TION - Job submissio n paramete rs',1,60), | |
| 3685 | PC _job_log_m essage => SUBSTR(' R ows to pro cess each loop: ' || NVL(TO_CH AR(PN_rows _to_proces s),'NULL') ,1,2000), | |
| 3686 | PD _date1 => VD_rec_gro up_date, | |
| 3687 | PC _text1 => SUBSTR('Da te1 column contains the daily process st art date', 1,255)); | |
| 3688 | ||
| 3689 | ||
| 3690 | VD_log_d ate := SYS DATE; | |
| 3691 | ADRMGT.J ob_Process _Log_Sp(PC _job_name => SUBSTR( CC_process _name,1,60 ), | |
| 3692 | PD _job_log_d ate => VD_ log_date, | |
| 3693 | PC _job_statu s => SUBST R('INFORMA TION - Job table par ameters',1 ,60), | |
| 3694 | PC _job_log_m essage => SUBSTR(' O LDEST HL7 ERROR TEXT DAYS KEPT : ' || VN_ parm_hl7_e rr_txt_age ,1,2000), | |
| 3695 | PD _date1 => VD_rec_gro up_date, | |
| 3696 | PC _text1 => SUBSTR('Da te1 column contains the daily process st art date', 1,255)); | |
| 3697 | ||
| 3698 | VD_log_d ate := SYS DATE; | |
| 3699 | ADRMGT.J ob_Process _Log_Sp(PC _job_name => SUBSTR( CC_process _name,1,60 ), | |
| 3700 | PD _job_log_d ate => VD_ log_date, | |
| 3701 | PC _job_statu s => SUBST R('INFORMA TION - Job table par ameters',1 ,60), | |
| 3702 | PC _job_log_m essage => SUBSTR(' O LDEST LOG FILE DAYS KEPT: ' || VN_parm_l og_file_ag e,1,2000), | |
| 3703 | PD _date1 => VD_rec_gro up_date, | |
| 3704 | PC _text1 => SUBSTR('Da te1 column contains the daily process st art date', 1,255)); | |
| 3705 | ||
| 3706 | VD_log_d ate := SYS DATE; | |
| 3707 | ADRMGT.J ob_Process _Log_Sp(PC _job_name => SUBSTR( CC_process _name,1,60 ), | |
| 3708 | PD _job_log_d ate => VD_ log_date, | |
| 3709 | PC _job_statu s => SUBST R('INFORMA TION - Job table par ameters',1 ,60), | |
| 3710 | PC _job_log_m essage => SUBSTR(' R OWS TO PRO CESS (in e ach loop): ' || NVL( TO_CHAR(VN _parm_rows _to_proces s),'NULL') ,1,2000), | |
| 3711 | PD _date1 => VD_rec_gro up_date, | |
| 3712 | PC _text1 => SUBSTR('Da te1 column contains the daily process st art date', 1,255)); | |
| 3713 | ||
| 3714 | VD_log_d ate := SYS DATE; | |
| 3715 | ADRMGT.J ob_Process _Log_Sp(PC _job_name => SUBSTR( CC_process _name,1,60 ), | |
| 3716 | PD _job_log_d ate => VD_ log_date, | |
| 3717 | PC _job_statu s => SUBST R('INFORMA TION - Job table par ameters',1 ,60), | |
| 3718 | PC _job_log_m essage => SUBSTR(' L AST PROCES SED LOG ID : ' || NVL (TO_CHAR(V N_parm_las t_log_id), 'NULL'),1, 2000), | |
| 3719 | PD _date1 => VD_rec_gro up_date, | |
| 3720 | PC _text1 => SUBSTR('Da te1 column contains the daily process st art date', 1,255)); | |
| 3721 | ||
| 3722 | -- If ROWS TO PROCES S paramete r is overr idden, wri te out a l og message | |
| 3723 | ||
| 3724 | IF PN_ro ws_to_proc ess IS NOT NULL THEN | |
| 3725 | ||
| 3726 | VN_par m_rows_to_ process := PN_rows_t o_process; | |
| 3727 | ||
| 3728 | VD_log _date := S YSDATE; | |
| 3729 | ADRMGT .Job_Proce ss_Log_Sp( PC_job_nam e => SUBST R(CC_proce ss_name,1, 60), | |
| 3730 | PD_job_log _date => V D_log_date , | |
| 3731 | PC_job_sta tus => SUB STR('WARNI NG - J ob table p arameters' ,1,60), | |
| 3732 | PC_job_log _message = > SUBSTR(' Processin g paramete r ROWS TO PROCESS (i n each loo p) has bee n overridd en.' | |
| 3733 | || ' T he overrid e value is : ' || NVL (TO_CHAR(V N_parm_row s_to_proce ss),'NULL' ),1,2000), | |
| 3734 | PD_date1 = > VD_rec_g roup_date, | |
| 3735 | PC_text1 = > SUBSTR(' Date1 colu mn contain s the dail y process start date ',1,255)); | |
| 3736 | ||
| 3737 | END IF; | |
| 3738 | ||
| 3739 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 3740 | -- * | |
| 3741 | -- * Check to see if process i s running on a repor ting datab ase. | |
| 3742 | -- * - If VB_allow_ rpt_inst i s FALSE, t hen it's n ot allowed . End the job. | |
| 3743 | -- * | |
| 3744 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 3745 | ||
| 3746 | IF NOT V B_allow_rp t_inst THE N | |
| 3747 | ||
| 3748 | BEGIN | |
| 3749 | ||
| 3750 | VD_l og_date := SYSDATE; | |
| 3751 | ADRM GT.Job_Pro cess_Log_S p(PC_job_n ame => SUB STR(CC_pro cess_name, 1,60), | |
| 3752 | PD_job_l og_date => VD_log_da te, | |
| 3753 | PC_job_s tatus => S UBSTR('INF ORMATION - Checking if running on a repo rting data base',1,60 ), | |
| 3754 | PD_date1 => VD_rec _group_dat e, | |
| 3755 | PC_text1 => SUBSTR ('Date1 co lumn conta ins the da ily proces s start da te',1,255) ); | |
| 3756 | ||
| 3757 | SELE CT Inst ance_name | |
| 3758 | INTO VC_i nstance_na me | |
| 3759 | FROM V$in stance; | |
| 3760 | ||
| 3761 | IF U PPER(SUBST R(VC_insta nce_name,1 ,4)) = 'AD RR' THEN | |
| 3762 | ||
| 3763 | VD _log_date := SYSDATE ; | |
| 3764 | AD RMGT.Job_P rocess_Log _Sp(PC_job _name => S UBSTR(CC_p rocess_nam e,1,60), | |
| 3765 | PD_job _log_date => VD_log_ date, | |
| 3766 | PC_job _status => SUBSTR('E RROR - Process ing Failed ',1,60), | |
| 3767 | PC_job _log_messa ge => SUBS TR('Attemp ting to ru n on a rep orting ins tance. Ins tance name : ' | |
| 3768 | || VC_inst ance_name | |
| 3769 | || '. This job has b een termin ated. To r un on a re porting in stance,' | |
| 3770 | || ' set p arameter V B_allow_rp t_inst to TRUE and r esubmit th e job.',1, 2000), | |
| 3771 | PD_dat e1 => VD_r ec_group_d ate, | |
| 3772 | PC_tex t1 => SUBS TR('Date1 column con tains the daily proc ess start date',1,25 5)); | |
| 3773 | ||
| 3774 | RE TURN; | |
| 3775 | ||
| 3776 | END IF; | |
| 3777 | ||
| 3778 | EXCEPT ION | |
| 3779 | ||
| 3780 | WHEN OTHERS TH EN | |
| 3781 | ||
| 3782 | VD _log_date := SYSDATE ; | |
| 3783 | AD RMGT.Job_P rocess_Log _Sp(PC_job _name => S UBSTR(CC_p rocess_nam e,1,60), | |
| 3784 | PD_job _log_date => VD_log_ date, | |
| 3785 | PC_job _status => SUBSTR('E RROR - Unable to retriev e instance name',1,6 0), | |
| 3786 | PC_job _log_messa ge => SUBS TR('Termin ating proc ess. ' || SQLERRM,1, 2000), | |
| 3787 | PD_dat e1 => VD_r ec_group_d ate, | |
| 3788 | PC_tex t1 => SUBS TR('Date1 column con tains the daily proc ess start date',1,25 5)); | |
| 3789 | ||
| 3790 | RE TURN; | |
| 3791 | ||
| 3792 | END; | |
| 3793 | ||
| 3794 | END IF; | |
| 3795 | ||
| 3796 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 3797 | -- * | |
| 3798 | -- * Check to see if the job h as already run today | |
| 3799 | -- * - If running i n stand-al one mode, don't chec k. | |
| 3800 | -- * - Ot herwise, i f job has already ru n today, t hen exit t he job. | |
| 3801 | -- * | |
| 3802 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 3803 | ||
| 3804 | IF NOT P B_run_stan dalone THE N | |
| 3805 | ||
| 3806 | BEGIN | |
| 3807 | ||
| 3808 | VD_l og_date := SYSDATE; | |
| 3809 | ADRM GT.Job_Pro cess_Log_S p(PC_job_n ame => SUB STR(CC_pro cess_name, 1,60), | |
| 3810 | PD_job_l og_date => VD_log_da te, | |
| 3811 | PC_job_s tatus => S UBSTR('INF ORMATION - Checking if process has alrea dy ran tod ay',1,60), | |
| 3812 | PD_date1 => VD_rec _group_dat e, | |
| 3813 | PC_text1 => SUBSTR ('Date1 co lumn conta ins the da ily proces s start da te',1,255) ); | |
| 3814 | ||
| 3815 | SELE CT COUN T(*) | |
| 3816 | INTO VN_r ec_count | |
| 3817 | FROM ADRM GT.Job_Pro cess_Logs | |
| 3818 | WHER E Job_ name = CC_ process_na me | |
| 3819 | AND Date 1 = VD_rec _group_dat e | |
| 3820 | AND Job_ status LIK E 'SUCCESS %-%Process ing Comple ted'; | |
| 3821 | ||
| 3822 | IF V N_rec_coun t > 0 THEN | |
| 3823 | ||
| 3824 | VD _log_date := SYSDATE ; | |
| 3825 | AD RMGT.Job_P rocess_Log _Sp(PC_job _name => S UBSTR(CC_p rocess_nam e,1,60), | |
| 3826 | PD_job _log_date => VD_log_ date, | |
| 3827 | PC_job _status => SUBSTR('W ARNING - This da te has alr eady been processed' ,1,60), | |
| 3828 | PC_job _log_messa ge => SUBS TR('Proces sing has a lready com pleted for this date . Exiting to job que ue.',1,200 0), | |
| 3829 | PD_dat e1 => VD_r ec_group_d ate, | |
| 3830 | PC_tex t1 => SUBS TR('Date1 column con tains the daily proc ess start date',1,25 5)); | |
| 3831 | ||
| 3832 | RE TURN; | |
| 3833 | ||
| 3834 | END IF; | |
| 3835 | ||
| 3836 | EXCEPT ION | |
| 3837 | ||
| 3838 | WHEN OTHERS TH EN | |
| 3839 | ||
| 3840 | VD _log_date := SYSDATE ; | |
| 3841 | AD RMGT.Job_P rocess_Log _Sp(PC_job _name => S UBSTR(CC_p rocess_nam e,1,60), | |
| 3842 | PD_job _log_date => VD_log_ date, | |
| 3843 | PC_job _status => SUBSTR('E RROR - Unable to verify if job has already r un',1,60), | |
| 3844 | PC_job _log_messa ge => SUBS TR('Termin ating proc ess. ' || SQLERRM,1, 2000), | |
| 3845 | PD_dat e1 => VD_r ec_group_d ate, | |
| 3846 | PC_tex t1 => SUBS TR('Date1 column con tains the daily proc ess start date',1,25 5)); | |
| 3847 | ||
| 3848 | RE TURN; | |
| 3849 | ||
| 3850 | END; | |
| 3851 | ||
| 3852 | END IF; | |
| 3853 | ||
| 3854 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 3855 | -- * | |
| 3856 | -- * Check to see if any other jobs of t his proced ure are ru nning. | |
| 3857 | -- * - If yes, then end this job. | |
| 3858 | -- * | |
| 3859 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 3860 | ||
| 3861 | SELECT C OUNT(*) | |
| 3862 | INTO V N_job_coun t | |
| 3863 | FROM S YS.DBA_JOB S_RUNNING R, | |
| 3864 | S YS.DBA_JOB S J | |
| 3865 | WHERE J .JOB = R.J OB | |
| 3866 | AND U PPER(J.WHA T) LIKE '% ' || UPPER (CC_sp_nam e) || '%'; | |
| 3867 | ||
| 3868 | IF VN_jo b_count > 1 THEN | |
| 3869 | ||
| 3870 | VD_log _date := S YSDATE; | |
| 3871 | ADRMGT .Job_Proce ss_Log_Sp( PC_job_nam e => SUBST R(CC_proce ss_name,1, 60), | |
| 3872 | PD_job_log _date => V D_log_date , | |
| 3873 | PC_job_sta tus => SUB STR('WARNI NG - C heck for r unning job s',1,60), | |
| 3874 | PC_job_log _message = > SUBSTR(' There is a nother ' | |
| 3875 | || C C_sp_name | |
| 3876 | || ' job runni ng.' | |
| 3877 | || ' Exiting j ob without running.' ,1,2000), | |
| 3878 | PD_date1 = > VD_rec_g roup_date, | |
| 3879 | PC_text1 = > SUBSTR(' Date1 colu mn contain s the dail y process start date ',1,255)); | |
| 3880 | ||
| 3881 | RETURN ; | |
| 3882 | ||
| 3883 | ELSE | |
| 3884 | ||
| 3885 | IF VB_ run_standa lone THEN | |
| 3886 | ||
| 3887 | VD_l og_date := SYSDATE; | |
| 3888 | ADRM GT.Job_Pro cess_Log_S p(PC_job_n ame => SUB STR(CC_pro cess_name, 1,60), | |
| 3889 | PD_job_l og_date => VD_log_da te, | |
| 3890 | PC_job_s tatus => S UBSTR('INF ORMATION - Starting in STANDAL ONE mode', 1,60), | |
| 3891 | PD_date1 => VD_rec _group_dat e, | |
| 3892 | PC_text1 => SUBSTR ('Date1 co lumn conta ins the da ily proces s start da te',1,255) ); | |
| 3893 | ||
| 3894 | ELSE | |
| 3895 | ||
| 3896 | SELE CT MAX( J.Job) | |
| 3897 | INTO VN_j ob_number | |
| 3898 | FROM SYS. DBA_JOBS_R UNNING R, | |
| 3899 | SYS. DBA_JOBS J | |
| 3900 | WHER E J.JO B = R.JOB | |
| 3901 | AND UPPE R(J.WHAT) LIKE '%' | | UPPER(CC _sp_name) || '%'; | |
| 3902 | ||
| 3903 | VD_l og_date := SYSDATE; | |
| 3904 | ADRM GT.Job_Pro cess_Log_S p(PC_job_n ame => SUB STR(CC_pro cess_name, 1,60), | |
| 3905 | PD_job_l og_date => VD_log_da te, | |
| 3906 | PC_job_s tatus => S UBSTR('INF ORMATION - Starting in DBMS_JO B mode',1, 60), | |
| 3907 | PC_job_l og_message => SUBSTR ('DBMS_JOB Number: ' | |
| 3908 | || VN_job _number,1, 2000), | |
| 3909 | PD_date1 => VD_rec _group_dat e, | |
| 3910 | PC_text1 => SUBSTR ('Date1 co lumn conta ins the da ily proces s start da te',1,255) ); | |
| 3911 | ||
| 3912 | END IF ; | |
| 3913 | ||
| 3914 | END IF; | |
| 3915 | ||
| 3916 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 3917 | -- * | |
| 3918 | -- * Main processing loop | |
| 3919 | -- * | |
| 3920 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 3921 | ||
| 3922 | VN_pass_ count := 0 ; | |
| 3923 | VN_updat e_count := 0; | |
| 3924 | VD_proce ss_start_d ate := SYS DATE; | |
| 3925 | ||
| 3926 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 3927 | -- * Remov e old proc ess log ro ws | |
| 3928 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 3929 | BEGIN | |
| 3930 | ||
| 3931 | VD_log _date := S YSDATE; | |
| 3932 | ADRMGT .Job_Proce ss_Log_Sp( PC_job_nam e => SUBST R(CC_proce ss_name,1, 60), | |
| 3933 | PD_job_log _date => V D_log_date , | |
| 3934 | PC_job_sta tus => SUB STR('INFOR MATION - R emoving ol d process logs',1,60 ), | |
| 3935 | PC_job_log _message = > SUBSTR(' Removing p rocess log s over ' | |
| 3936 | | | VN_parm_ log_file_a ge | |
| 3937 | | | ' days o ld',1,2000 ), | |
| 3938 | PD_date1 = > VD_rec_g roup_date, | |
| 3939 | PC_text1 = > SUBSTR(' Date1 colu mn contain s the dail y process start date ',1,255)); | |
| 3940 | ||
| 3941 | DELETE | |
| 3942 | FROM ADRMGT .Job_Proce ss_Logs | |
| 3943 | WHERE Job_na me = CC_pr ocess_name | |
| 3944 | AND Date1 < TRUNC(SY SDATE) - V N_parm_log _file_age; | |
| 3945 | ||
| 3946 | COMMIT ; | |
| 3947 | ||
| 3948 | VD_log _date := S YSDATE; | |
| 3949 | ADRMGT .Job_Proce ss_Log_Sp( PC_job_nam e => SUBST R(CC_proce ss_name,1, 60), | |
| 3950 | PD_job_log _date => V D_log_date , | |
| 3951 | PC_job_sta tus => SUB STR('INFOR MATION - R emoved old process l ogs',1,60) , | |
| 3952 | PC_job_log _message = > SUBSTR(' Removed pr ocess logs over ' | |
| 3953 | | | VN_parm_ log_file_a ge | |
| 3954 | | | ' days o ld',1,2000 ), | |
| 3955 | PD_date1 = > VD_rec_g roup_date, | |
| 3956 | PC_text1 = > SUBSTR(' Date1 colu mn contain s the dail y process start date ',1,255)); | |
| 3957 | ||
| 3958 | ||
| 3959 | EXCEPTIO N | |
| 3960 | ||
| 3961 | WHEN N O_DATA_FOU ND THEN | |
| 3962 | ||
| 3963 | NULL ; | |
| 3964 | ||
| 3965 | WHEN O THERS THEN | |
| 3966 | ||
| 3967 | VD_l og_date := SYSDATE; | |
| 3968 | ADRM GT.Job_Pro cess_Log_S p(PC_job_n ame => SUB STR(CC_pro cess_name, 1,60), | |
| 3969 | PD_job_l og_date = > VD_log_d ate, | |
| 3970 | PC_job_s tatus => S UBSTR('ERR OR - Unknown e rror remov ing old pr ocess logs .',1,60), | |
| 3971 | PC_job_l og_message => SUBSTR (SQLERRM,1 ,2000), | |
| 3972 | PD_date1 => VD_rec _group_dat e, | |
| 3973 | PC_text1 => SUBSTR ('Date1 co lumn conta ins the da ily proces s start da te',1,255) ); | |
| 3974 | ||
| 3975 | END; | |
| 3976 | ||
| 3977 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 3978 | -- * Remov e old proc ess error rows | |
| 3979 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 3980 | ||
| 3981 | BEGIN | |
| 3982 | ||
| 3983 | VD_log _date := S YSDATE; | |
| 3984 | ADRMGT .Job_Proce ss_Log_Sp( PC_job_nam e => SUBST R(CC_proce ss_name,1, 60), | |
| 3985 | PD_job_log _date => V D_log_date , | |
| 3986 | PC_job_sta tus => SUB STR('INFOR MATION - R emoving ol d process errors',1, 60), | |
| 3987 | PC_job_log _message = > SUBSTR(' Removing p rocess err ors over ' | |
| 3988 | | | VN_parm_ log_file_a ge | |
| 3989 | | | ' days o ld',1,2000 ), | |
| 3990 | PD_date1 = > VD_rec_g roup_date, | |
| 3991 | PC_text1 = > SUBSTR(' Date1 colu mn contain s the dail y process start date ',1,255)); | |
| 3992 | ||
| 3993 | DELETE | |
| 3994 | FROM ADRMGT .Job_Proce ss_Errs | |
| 3995 | WHERE Job_na me = CC_pr ocess_name | |
| 3996 | AND Date1 < TRUNC(SY SDATE) - V N_parm_log _file_age; | |
| 3997 | ||
| 3998 | COMMIT ; | |
| 3999 | ||
| 4000 | VD_log _date := S YSDATE; | |
| 4001 | ADRMGT .Job_Proce ss_Log_Sp( PC_job_nam e => SUBST R(CC_proce ss_name,1, 60), | |
| 4002 | PD_job_log _date => V D_log_date , | |
| 4003 | PC_job_sta tus => SUB STR('INFOR MATION - R emoved old process e rrors',1,6 0), | |
| 4004 | PC_job_log _message = > SUBSTR(' Removed pr ocess erro rs over ' | |
| 4005 | | | VN_parm_ log_file_a ge | |
| 4006 | | | ' days o ld',1,2000 ), | |
| 4007 | PD_date1 = > VD_rec_g roup_date, | |
| 4008 | PC_text1 = > SUBSTR(' Date1 colu mn contain s the dail y process start date ',1,255)); | |
| 4009 | ||
| 4010 | EXCEPTIO N | |
| 4011 | ||
| 4012 | WHEN N O_DATA_FOU ND THEN | |
| 4013 | ||
| 4014 | NULL ; | |
| 4015 | ||
| 4016 | WHEN O THERS THEN | |
| 4017 | ||
| 4018 | VD_l og_date := SYSDATE; | |
| 4019 | ADRM GT.Job_Pro cess_Log_S p(PC_job_n ame => SUB STR(CC_pro cess_name, 1,60), | |
| 4020 | PD_job_l og_date = > VD_log_d ate, | |
| 4021 | PC_job_s tatus => S UBSTR('ERR OR - Unknown e rror remov ing old pr ocess erro rs.',1,60) , | |
| 4022 | PC_job_l og_message => SUBSTR (SQLERRM,1 ,2000), | |
| 4023 | PD_date1 => VD_rec _group_dat e, | |
| 4024 | PC_text1 => SUBSTR ('Date1 co lumn conta ins the da ily proces s start da te',1,255) ); | |
| 4025 | ||
| 4026 | END; | |
| 4027 | ||
| 4028 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 4029 | -- * Main record cur sor logic | |
| 4030 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 4031 | ||
| 4032 | BEGIN | |
| 4033 | ||
| 4034 | VN_max _log_id := 0; | |
| 4035 | VN_pas s_count := 0; | |
| 4036 | VN_upd ate_count := 0; | |
| 4037 | ||
| 4038 | OPEN C _hl7_id; | |
| 4039 | ||
| 4040 | LOOP | |
| 4041 | ||
| 4042 | FETC H C_hl7_id | |
| 4043 | BULK COLLECT I NTO T_hl7_ id | |
| 4044 | LIMI T VN_parm_ rows_to_pr ocess; | |
| 4045 | ||
| 4046 | EXIT WHEN T_hl 7_id.COUNT = 0; | |
| 4047 | ||
| 4048 | FORA LL I_hl7_i d IN T_hl7 _id.FIRST. .T_hl7_id. last | |
| 4049 | UP DATE AD R.Hl7_tran saction_lo g | |
| 4050 | SE T In ternal_err or_text = NULL | |
| 4051 | WH ERE Hl 7_transact ion_log_id = T_hl7_i d(I_hl7_id ); | |
| 4052 | ||
| 4053 | COMM IT; | |
| 4054 | ||
| 4055 | FOR I_hl7_id I N T_hl7_id .FIRST..T_ hl7_id.las t LOOP | |
| 4056 | ||
| 4057 | IF T_hl7_id( I_hl7_id) > VN_max_l og_id THEN | |
| 4058 | ||
| 4059 | VN_max_log _id := T_h l7_id(I_hl 7_id); | |
| 4060 | ||
| 4061 | EN D IF; | |
| 4062 | ||
| 4063 | END LOOP; | |
| 4064 | ||
| 4065 | VN_p ass_count := VN_pass _count + 1 ; | |
| 4066 | ||
| 4067 | VN_u pdate_coun t := VN_up date_count + T_hl7_i d.COUNT; | |
| 4068 | ||
| 4069 | END LO OP; | |
| 4070 | ||
| 4071 | CLOSE C_hl7_id; | |
| 4072 | ||
| 4073 | BEGIN | |
| 4074 | ||
| 4075 | IF N VL(VN_max_ log_id,0) <> 0 THEN | |
| 4076 | ||
| 4077 | UP DATE AD RMGT.Adr_P arameter | |
| 4078 | SE T Va lue = VN_m ax_log_id | |
| 4079 | WH ERE Ap plication_ name = 'HL 7 NULL INT ERNAL_ERRO R_TEXT COL UMN' | |
| 4080 | AN D Pa rameter_na me = 'LAST PROCESSED LOG ID'; | |
| 4081 | ||
| 4082 | CO MMIT; | |
| 4083 | ||
| 4084 | ELSE | |
| 4085 | ||
| 4086 | VN _max_log_i d := VN_pa rm_last_lo g_id; | |
| 4087 | ||
| 4088 | END IF; | |
| 4089 | ||
| 4090 | EXCEPT ION | |
| 4091 | ||
| 4092 | WHEN OTHERS TH EN | |
| 4093 | ||
| 4094 | VD _log_date := SYSDATE ; | |
| 4095 | AD RMGT.Job_P rocess_Log _Sp(PC_job _name => S UBSTR(CC_p rocess_nam e,1,60), | |
| 4096 | PD_job _log_date => VD_log _date, | |
| 4097 | PC_job _status => SUBSTR('E RROR - Unknown error upd ating LAST PROCESSED LOG ID.', 1,60), | |
| 4098 | PC_job _log_messa ge => SUBS TR('Last p rocessed l og id: ' | | VN_max_l og_id | |
| 4099 | || '. ' || SQLERR M,1,2000), | |
| 4100 | PD_dat e1 => VD_r ec_group_d ate, | |
| 4101 | PC_tex t1 => SUBS TR('Date1 column con tains the daily proc ess start date',1,25 5)); | |
| 4102 | ||
| 4103 | RE TURN; | |
| 4104 | ||
| 4105 | END; | |
| 4106 | ||
| 4107 | -- Process completio n informat ion | |
| 4108 | ||
| 4109 | VD_log _date := S YSDATE; | |
| 4110 | ADRMGT .Job_Proce ss_Log_Sp( PC_job_nam e => SUBST R(CC_proce ss_name,1, 60), | |
| 4111 | PD_job_log _date => V D_log_date , | |
| 4112 | PC_job_sta tus => SUB STR('INFOR MATION - P rocess Sta tistics',1 ,60), | |
| 4113 | PD_date1 = > VD_rec_g roup_date, | |
| 4114 | PC_text1 = > SUBSTR(' Date1 colu mn contain s the dail y process start date ',1,255), | |
| 4115 | PN_numeric 2 => VN_pa ss_count, | |
| 4116 | PC_text2 = > SUBSTR(' Cursor Loo p Count',1 ,255)); | |
| 4117 | ||
| 4118 | VD_log _date := S YSDATE; | |
| 4119 | ADRMGT .Job_Proce ss_Log_Sp( PC_job_nam e => SUBST R(CC_proce ss_name,1, 60), | |
| 4120 | PD_job_log _date => V D_log_date , | |
| 4121 | PC_job_sta tus => SUB STR('INFOR MATION - P rocess Sta tistics',1 ,60), | |
| 4122 | PD_date1 = > VD_rec_g roup_date, | |
| 4123 | PC_text1 = > SUBSTR(' Date1 colu mn contain s the dail y process start date ',1,255), | |
| 4124 | PN_numeric 2 => VN_up date_count , | |
| 4125 | PC_text2 = > SUBSTR(' Updated Re cord Count ',1,255)); | |
| 4126 | ||
| 4127 | VD_log _date := S YSDATE; | |
| 4128 | ADRMGT .Job_Proce ss_Log_Sp( PC_job_nam e => SUBST R(CC_proce ss_name,1, 60), | |
| 4129 | PD_job_log _date => V D_log_date , | |
| 4130 | PC_job_sta tus => SUB STR('INFOR MATION - P rocess Sta tistics',1 ,60), | |
| 4131 | PD_date1 = > VD_rec_g roup_date, | |
| 4132 | PC_text1 = > SUBSTR(' Date1 colu mn contain s the dail y process start date ',1,255), | |
| 4133 | PN_numeric 2 => VN_ma x_log_id, | |
| 4134 | PC_text2 = > SUBSTR(' Last proce ssed log i d',1,255)) ; | |
| 4135 | ||
| 4136 | VD_pro cess_end_d ate := SYS DATE; | |
| 4137 | VC_pro cess_durat ion := LTR IM(TO_CHAR (TRUNC((VD _process_e nd_date - VD_process _start_dat e)*24),'00 ')) || ' H rs ' | |
| 4138 | || LTRIM(TO_C HAR(TRUNC( (((VD_proc ess_end_da te - VD_pr ocess_star t_date)*24 )- | |
| 4139 | TRUNC(((VD _process_e nd_date - VD_process _start_dat e)*24))) * 60),'00') ) || ' Min s ' | |
| 4140 | || LTRIM(TO_C HAR(TRUNC( (((VD_proc ess_end_da te - VD_pr ocess_star t_date)*24 *60)- | |
| 4141 | TRUNC(((VD _process_e nd_date - VD_process _start_dat e)*24*60)) ) * 60),'0 0')) || ' Secs'; | |
| 4142 | ||
| 4143 | VD_log _date := S YSDATE; | |
| 4144 | ADRMGT .Job_Proce ss_Log_Sp( PC_job_nam e => SUBST R(CC_proce ss_name,1, 60), | |
| 4145 | PD_job_log _date => V D_log_date , | |
| 4146 | PC_job_sta tus => SUB STR('SUCCE SS - P rocessing Completed' ,1,60), | |
| 4147 | PC_job_log _message = > SUBSTR(' Processing Time: ' | | VC_proce ss_duratio n,1,2000), | |
| 4148 | PD_date1 = > VD_rec_g roup_date, | |
| 4149 | PC_text1 = > SUBSTR(' Date1 colu mn contain s the dail y process start date ',1,255)); | |
| 4150 | ||
| 4151 | EXCEPTIO N | |
| 4152 | ||
| 4153 | WHEN O THERS THEN | |
| 4154 | ||
| 4155 | VD_l og_date := SYSDATE; | |
| 4156 | ADRM GT.Job_Pro cess_Log_S p(PC_job_n ame => SUB STR(CC_pro cess_name, 1,60), | |
| 4157 | PD_job_l og_date = > VD_log_d ate, | |
| 4158 | PC_job_s tatus => S UBSTR('ERR OR - Unknown e rror updat ing Intern al_error_t ext.',1,60 ), | |
| 4159 | PC_job_l og_message => SUBSTR ('Cursor L oop Count: ' || VN_p ass_count | |
| 4160 | || ' Upda ted Record Count: ' || VN_upda te_count | |
| 4161 | || '. ' | | SQLERRM, 1,2000), | |
| 4162 | PD_date1 => VD_rec _group_dat e, | |
| 4163 | PC_text1 => SUBSTR ('Date1 co lumn conta ins the da ily proces s start da te',1,255) ); | |
| 4164 | ||
| 4165 | RETU RN; | |
| 4166 | ||
| 4167 | END; | |
| 4168 | ||
| 4169 | EXCEPTION | |
| 4170 | ||
| 4171 | WHEN OTH ERS THEN | |
| 4172 | ||
| 4173 | ROLLBA CK; | |
| 4174 | ||
| 4175 | VD_log _date := S YSDATE; | |
| 4176 | ADRMGT .Job_Proce ss_Err_Sp( PC_job_nam e => SUBST R(CC_proce ss_name,1, 60), | |
| 4177 | PD_job_err or_date = > VD_log_d ate, | |
| 4178 | PC_job_err or_code => SUBSTR(SQ LCODE,1,60 ), | |
| 4179 | PC_job_err or_message => SUBSTR ('Unknown processing error in procedure Hl7_Txn_Lo g_Null_Err _Col_Sp.' | |
| 4180 | || SQLERRM,1 ,2000), | |
| 4181 | PD_date1 = > VD_rec_g roup_date, | |
| 4182 | PC_text1 = > SUBSTR(' Date1 colu mn contain s the dail y process start date ',1,255)); | |
| 4183 | ||
| 4184 | VD_log _date := S YSDATE; | |
| 4185 | ADRMGT .Job_Proce ss_Log_Sp( PC_job_nam e => SUBST R(CC_proce ss_name,1, 60), | |
| 4186 | PD_job_log _date => V D_log_date , | |
| 4187 | PC_job_sta tus => SUB STR('ERROR - U nknown pro cessing er ror',1,60) , | |
| 4188 | PC_job_log _message = > SUBSTR(' See error log table for detail s.',1,2000 ), | |
| 4189 | PD_date1 = > VD_rec_g roup_date, | |
| 4190 | PC_text1 = > SUBSTR(' Date1 colu mn contain s the dail y process start date ',1,255)); | |
| 4191 | ||
| 4192 | END Hl7_Tx n_Log_Null _Err_Col_S p; | |
| 4193 | / | |
| 4194 | DROP PROCE DURE ADR.L OAD_MISSIN G_RESIDENT _ADDR_SP; | |
| 4195 | ||
| 4196 | CREATE OR REPLACE PR OCEDURE AD R.LOAD_MIS SING_RESID ENT_ADDR_S P( | |
| 4197 | p_bulk _limit NUMBER DEFAULT 1 000) | |
| 4198 | IS | |
| 4199 | ||
| 4200 | -- 5492 34: Create A Job to Insert Res idential A ddresses f or Persons with Perm anent but without R esidential addresses | |
| 4201 | --gc_sc hema_owner _name VARCHAR 2 (10) := 'ADR'; | |
| 4202 | gc_prog ram_name VARCHAR2 (40) := 'L OAD_MISSIN G_RESIDENT _ADDR_SP'; | |
| 4203 | ||
| 4204 | dml_err ors EXCEPTION ; | |
| 4205 | PRAGMA EXCEPTION_ INIT(dml_e rrors, -24 381); | |
| 4206 | ||
| 4207 | time_a INTEGE R; | |
| 4208 | time_b INTEGE R; | |
| 4209 | time_c INTEGE R; | |
| 4210 | time_d INTEGE R; | |
| 4211 | ||
| 4212 | VC_msg_ step VARCHAR2( 200); | |
| 4213 | VC_erro r_msg VA RCHAR2(200 ); | |
| 4214 | VN_tota l_count NUMBER : = 0; | |
| 4215 | ||
| 4216 | VN_elap sed_time NUMBER; | |
| 4217 | ||
| 4218 | VN_rowc nt_fetched NUMBER : = 0; | |
| 4219 | VN_EXCE PTION_CNT PLS_INTEG ER; | |
| 4220 | ||
| 4221 | C_PERM_ ADDRESSTYP E_ID CONST ANT NUMBER := 144901 2; | |
| 4222 | C_RESI_ ADDRESSTYP E_ID CONST ANT NUMBER := 180741 2; | |
| 4223 | ||
| 4224 | ||
| 4225 | TYPE NE W_RESIDENT _ADDRESS_T AB IS TABL E OF ADDRE SS%ROWTYPE INDEX BY BINARY_IN TEGER; | |
| 4226 | L_new_r esident_ad dr_tab NEW_RESIDE NT_ADDRESS _TAB; | |
| 4227 | ||
| 4228 | c_limit CONSTANT PLS_INTEG ER := p_bu lk_limit; | |
| 4229 | gc_inte ration PL S_INTEGER := 0; | |
| 4230 | ||
| 4231 | CURSOR GetPermAdd rInfo_C I S | |
| 4232 | WITH AD D_RES_ADDR AS | |
| 4233 | ( SEL ECT perso n_id | |
| 4234 | FRO M ( | |
| 4235 | SELECT DIS TINCT pers on_id | |
| 4236 | FROM addre ss a | |
| 4237 | WHERE STD_ ADDRESSTYP E_ID = C_P ERM_ADDRES STYPE_ID -- permane nt addr | |
| 4238 | AND person _id IS NOT NULL | |
| 4239 | MI NUS | |
| 4240 | SELECT DIS TINCT pers on_id | |
| 4241 | FROM addre ss a | |
| 4242 | WHERE STD _ADDRESSTY PE_ID = C_ RESI_ADDRE SSTYPE_ID -- reside ntial addr | |
| 4243 | AND person _id IS NOT NULL | |
| 4244 | ) | |
| 4245 | ) | |
| 4246 | SELECT * | |
| 4247 | FROM AD DRESS a | |
| 4248 | WHERE E XISTS (SEL ECT 1 | |
| 4249 | FROM ADD_RES_A DDR d | |
| 4250 | WHER E a.person _id = d.pe rson_id) | |
| 4251 | AND a.S TD_ADDRESS TYPE_ID = C_PERM_ADD RESSTYPE_I D -- perm anent addr | |
| 4252 | AND a.p erson_id I S NOT NULL ; | |
| 4253 | ||
| 4254 | BEGIN | |
| 4255 | ||
| 4256 | -- === ========== ========== ========== ========== ========== === | |
| 4257 | -- | |
| 4258 | -- Beg in Bulk Co llect Fetc h | |
| 4259 | -- | |
| 4260 | -- === ========== ========== ========== ========== ========== === | |
| 4261 | EXECUT E IMMEDIAT E 'ALTER S ESSION SET PARALLEL_ FORCE_LOCA L=TRUE'; | |
| 4262 | ||
| 4263 | DBMS_A PPLICATION _INFO.set_ client_inf o(gc_progr am_name || ': '||p_bu lk_limit|| ' STARTED '||TO_CHAR (SYSDATE,' MM/DD/YY H H24:MI:SS' )); | |
| 4264 | ||
| 4265 | time_a := dbms_u tility.get _time; | |
| 4266 | VN_tot al_count : = 0; | |
| 4267 | ||
| 4268 | VC_msg _step := ' OPEN CURSO R'; | |
| 4269 | ||
| 4270 | ADRMGT. Job_Proces s_Log_Sp(P C_job_name => gc_pro gram_name, | |
| 4271 | PD_job_l og_date => SYSDATE, | |
| 4272 | PC_job_s tatus => ' INFORMATIO N - Proces s Initiati on', | |
| 4273 | PC_job_l og_message => 'Load missing re sident add resses ', | |
| 4274 | pc_text1 => 'BULK LIMIT: '|| c_limit, | |
| 4275 | PD_date1 => SYSDAT E | |
| 4276 | ); | |
| 4277 | ||
| 4278 | OPEN G etPermAddr Info_C ; | |
| 4279 | LOOP | |
| 4280 | g c_interati on := gc_i nteration + 1; | |
| 4281 | ||
| 4282 | F ETCH GetPe rmAddrInfo _C BULK CO LLECT INTO L_new_res ident_addr _tab LIMIT c_limit; | |
| 4283 | ||
| 4284 | V N_rowcnt_f etched := VN_rowcnt_ fetched + L_new_resi dent_addr_ tab.COUNT; | |
| 4285 | ||
| 4286 | V C_msg_step := 'BULK LOAD BEGIN S'; | |
| 4287 | ||
| 4288 | t ime_b := d bms_utilit y.get_time ; | |
| 4289 | ||
| 4290 | F ORALL indx IN L_new_ resident_a ddr_tab.FI RST.. L_ne w_resident _addr_tab. LAST SAVE EXCEPTIONS | |
| 4291 | ||
| 4292 | INSERT / *+ APPEND */ INTO AD DRESS ( | |
| 4293 | ADDRESS_ID , | |
| 4294 | PERSON_ID, | |
| 4295 | INSURANCE_ ID, | |
| 4296 | STD_ADDRES STYPE_ID, | |
| 4297 | ADDRESS_CH ANGE_SRC_T YPE_ID, | |
| 4298 | STD_INSTIT UTION_ID, | |
| 4299 | ADDRESS_IN VALID_TYPE _ID, | |
| 4300 | NCOA_STATU S_TYPE_ID, | |
| 4301 | NCOA_DELIV ERY_TYPE_I D, | |
| 4302 | NCOA_ZIP_M ATCH_TYPE_ ID, | |
| 4303 | NCOA_ZIP_N O_MATCH_TY PE_ID, | |
| 4304 | ADDRESS_LI NE1, | |
| 4305 | ADDRESS_LI NE2, | |
| 4306 | ADDRESS_LI NE3, | |
| 4307 | CITY, | |
| 4308 | STATE_CODE , | |
| 4309 | COUNTY_COD E, | |
| 4310 | PROVINCE_C ODE, | |
| 4311 | ZIP_CODE, | |
| 4312 | ZIP_PLUS_4 , | |
| 4313 | POSTAL_COD E, | |
| 4314 | COUNTRY_CO DE, | |
| 4315 | ADDRESS_CH ANGE_EFFEC TIVE_DATE, | |
| 4316 | ADDRESS_IN VALIDATED_ DATE, | |
| 4317 | NCOA_ADDRE SS_CHECK_D ATE, | |
| 4318 | ADDRESS_ST ART_DATE_T XT, | |
| 4319 | ADDRESS_EN D_DATE_TXT , | |
| 4320 | ADDRESS_PH ONE_NUMBER , | |
| 4321 | RECORD_CRE ATED_BY, | |
| 4322 | RECORD_CRE ATED_DATE, | |
| 4323 | RECORD_MOD IFIED_BY, | |
| 4324 | RECORD_MOD IFIED_DATE , | |
| 4325 | RECORD_MOD IFIED_COUN T, | |
| 4326 | RECORD_MOD IFIED_SRC_ NAME, | |
| 4327 | PERSON_REL ATION_ID, | |
| 4328 | CASSCERTIF IEDTYPE_ID , | |
| 4329 | CASS_CERTI FIED_DATE, | |
| 4330 | PURPOSE_OF _USE_TYPE_ ID) | |
| 4331 | VALU ES( | |
| 4332 | TRANSACTIO N_S.NEXTVA L , | |
| 4333 | L_new_resi dent_addr_ tab(indx). PERSON_ID, | |
| 4334 | L_new_resi dent_addr_ tab(indx). INSURANCE_ ID, | |
| 4335 | 1807412, | |
| 4336 | L_new_resi dent_addr_ tab(indx). ADDRESS_CH ANGE_SRC_T YPE_ID, | |
| 4337 | L_new_resi dent_addr_ tab(indx). STD_INSTIT UTION_ID, | |
| 4338 | L_new_resi dent_addr_ tab(indx). ADDRESS_IN VALID_TYPE _ID, | |
| 4339 | L_new_resi dent_addr_ tab(indx). NCOA_STATU S_TYPE_ID, | |
| 4340 | L_new_resi dent_addr_ tab(indx). NCOA_DELIV ERY_TYPE_I D, | |
| 4341 | L_new_resi dent_addr_ tab(indx). NCOA_ZIP_M ATCH_TYPE_ ID, | |
| 4342 | L_new_resi dent_addr_ tab(indx). NCOA_ZIP_N O_MATCH_TY PE_ID, | |
| 4343 | L_new_resi dent_addr_ tab(indx). ADDRESS_LI NE1, | |
| 4344 | L_new_resi dent_addr_ tab(indx). ADDRESS_LI NE2, | |
| 4345 | L_new_resi dent_addr_ tab(indx). ADDRESS_LI NE3, | |
| 4346 | L_new_resi dent_addr_ tab(indx). CITY, | |
| 4347 | L_new_resi dent_addr_ tab(indx). STATE_CODE , | |
| 4348 | L_new_resi dent_addr_ tab(indx). COUNTY_COD E, | |
| 4349 | L_new_resi dent_addr_ tab(indx). PROVINCE_C ODE, | |
| 4350 | L_new_resi dent_addr_ tab(indx). ZIP_CODE, | |
| 4351 | L_new_resi dent_addr_ tab(indx). ZIP_PLUS_4 , | |
| 4352 | L_new_resi dent_addr_ tab(indx). POSTAL_COD E, | |
| 4353 | L_new_resi dent_addr_ tab(indx). COUNTRY_CO DE, | |
| 4354 | L_new_resi dent_addr_ tab(indx). ADDRESS_CH ANGE_EFFEC TIVE_DATE, | |
| 4355 | L_new_resi dent_addr_ tab(indx). ADDRESS_IN VALIDATED_ DATE, | |
| 4356 | L_new_resi dent_addr_ tab(indx). NCOA_ADDRE SS_CHECK_D ATE, | |
| 4357 | L_new_resi dent_addr_ tab(indx). ADDRESS_ST ART_DATE_T XT, | |
| 4358 | L_new_resi dent_addr_ tab(indx). ADDRESS_EN D_DATE_TXT , | |
| 4359 | L_new_resi dent_addr_ tab(indx). ADDRESS_PH ONE_NUMBER , | |
| 4360 | '549234', | |
| 4361 | SYSDATE, | |
| 4362 | '549234', | |
| 4363 | SYSDATE, | |
| 4364 | 0, | |
| 4365 | L_new_resi dent_addr_ tab(indx). RECORD_MOD IFIED_SRC_ NAME, | |
| 4366 | L_new_resi dent_addr_ tab(indx). PERSON_REL ATION_ID, | |
| 4367 | L_new_resi dent_addr_ tab(indx). CASSCERTIF IEDTYPE_ID , | |
| 4368 | L_new_resi dent_addr_ tab(indx). CASS_CERTI FIED_DATE, | |
| 4369 | L_new_resi dent_addr_ tab(indx). PURPOSE_OF _USE_TYPE_ ID) ; | |
| 4370 | ||
| 4371 | c ommit; | |
| 4372 | ||
| 4373 | V C_msg_step := 'Displ aying row count'; | |
| 4374 | ||
| 4375 | - - Rows cou nt added | |
| 4376 | F OR I IN 1. .L_new_res ident_addr _tab.COUNT LOOP | |
| 4377 | VN_tot al_count : = VN_total _count + S QL%BULK_RO WCOUNT(I); | |
| 4378 | E ND LOOP; | |
| 4379 | ||
| 4380 | t ime_c := d bms_utilit y.get_time ; | |
| 4381 | V N_elapsed_ time := RO UND((time_ c - time_b )/100/60,2 ); | |
| 4382 | ||
| 4383 | D BMS_APPLIC ATION_INFO .set_clien t_info('It eration# ' || gc_inte ration||' - Rows: '| |VN_total_ count ||' - '||VN_el apsed_time ||' min'); | |
| 4384 | ||
| 4385 | A DRMGT.Job_ Process_Lo g_Sp(PC_jo b_name => gc_program _name, | |
| 4386 | PD_job_lo g_date => SYSDATE, | |
| 4387 | PC_job_st atus => 'I NFORMATION - Iterati on: '|| gc _interatio n, | |
| 4388 | PC_job_lo g_message => 'Rows A dded: '||V N_total_co unt||' - E lap(min): '||VN_elap sed_time, | |
| 4389 | PD_date1 => SYSDATE | |
| 4390 | ); | |
| 4391 | ||
| 4392 | E XIT WHEN L _new_resid ent_addr_t ab.COUNT = 0; | |
| 4393 | ||
| 4394 | ||
| 4395 | END LO OP; | |
| 4396 | ||
| 4397 | CLOSE GetPermAdd rInfo_C; | |
| 4398 | ||
| 4399 | DBMS_A PPLICATION _INFO.set_ client_inf o('Total I terations '|| gc_int eration||' - Row Add ed" '||VN _total_cou nt ||' - E lapsed: '| |TO_CHAR(S YSDATE,'MM /DD/YY HH2 4:MI:SS')) ; | |
| 4400 | ||
| 4401 | time_d := dbms_u tility.get _time; | |
| 4402 | ||
| 4403 | VN_ela psed_time := ROUND(( time_d - t ime_a)/100 /60,2); | |
| 4404 | ||
| 4405 | ||
| 4406 | ADRMGT .Job_Proce ss_Log_Sp( PC_job_nam e => gc_pr ogram_name , | |
| 4407 | PD_job_lo g_date => SYSDATE, | |
| 4408 | PC_job_st atus => 'I NFORMATION - Process Ended - E lap(min): '||VN_elap sed_time, | |
| 4409 | PC_job_lo g_message => 'Total Rows Added /Rows Proc essed: '|| VN_total_c ount||'/'| |VN_rowcnt _fetched, | |
| 4410 | PD_date1 => SYSDATE | |
| 4411 | ); | |
| 4412 | ||
| 4413 | ||
| 4414 | EXCEPTIO N | |
| 4415 | ||
| 4416 | WHEN d ml_errors THEN | |
| 4417 | ||
| 4418 | VN_E XCEPTION_C NT := SQL% BULK_EXCEP TIONS.COUN T; | |
| 4419 | ||
| 4420 | FOR I IN 1 .. VN_EXCEPTI ON_CNT LOO P | |
| 4421 | VC_error_m sg := | |
| 4422 | 'ERROR BULK EXCE PTION: ' | | VC_msg_s tep||CHR(1 0) || SQL% BULK_EXCEP TIONS(I).E RROR_INDEX || | |
| 4423 | ' Pers on ID: ' | | L_new_re sident_add r_tab(I).p erson_id | | | |
| 4424 | ' Erro r Msg: ' | | SQLERRM( -SQL%BULK_ EXCEPTIONS (i).ERROR_ CODE); | |
| 4425 | ||
| 4426 | ADRMGT .Job_Proce ss_Log_Sp( PC_job_nam e => gc_pr ogram_name , | |
| 4427 | PD_job_lo g_date => SYSDATE, | |
| 4428 | PC_job_st atus => 'E RROR BULK EXCEPTION - Row# '|| SQL%BULK_E XCEPTIONS( I).ERROR_I NDEX, | |
| 4429 | PC_job_lo g_message => 'Total Rows Added /Rows Proc essed: '|| VN_total_c ount||'/'| |VN_rowcnt _fetched|| ' Elapsed: '||VN_ela psed_time, | |
| 4430 | PC_text1 => SUBSTR( VC_error_m sg,1,200), | |
| 4431 | PD_date1 => SYSDATE | |
| 4432 | ); | |
| 4433 | ||
| 4434 | DBMS_OUTP UT.put_lin e(VC_error _msg); | |
| 4435 | ||
| 4436 | END LOOP; | |
| 4437 | ||
| 4438 | WHEN OT HERS THEN | |
| 4439 | ||
| 4440 | VC_e rror_msg : ='ERROR EX CEPTION - '||VC_msg_ step||CHR( 10)|| SUBS TR('Unkown Error: '| |SQLERRM,1 ,200); | |
| 4441 | ||
| 4442 | ADRM GT.Job_Pro cess_Log_S p(PC_job_n ame => gc_ program_na me, | |
| 4443 | P D_job_log_ date => SY SDATE, | |
| 4444 | P C_job_stat us => 'ERR OR EXCEPTI ON', | |
| 4445 | P C_job_log_ message => 'Total Ro ws Added/R ows Proces sed: '||VN _total_cou nt||'/'||V N_rowcnt_f etched||' Elap(min): '||VN_ela psed_time, | |
| 4446 | P C_text1 => SUBSTR(VC _error_msg ,1,200), | |
| 4447 | P D_date1 => SYSDATE | |
| 4448 | ); | |
| 4449 | ||
| 4450 | DBM S_OUTPUT.P UT_LINE(VC _error_msg ); | |
| 4451 | ||
| 4452 | ||
| 4453 | END LOAD_M ISSING_RES IDENT_ADDR _SP; | |
| 4454 | / | |
| 4455 | ||
| 4456 | ||
| 4457 | CREATE OR REPLACE PU BLIC SYNON YM LOAD_MI SSING_RESI DENT_ADDR_ SP FOR ADR .LOAD_MISS ING_RESIDE NT_ADDR_SP ; | |
| 4458 | DROP PROCE DURE ADR.P ERSON_CHG_ LOG_CLEANU P_SP; | |
| 4459 | ||
| 4460 | CREATE OR REPLACE PR OCEDURE AD R.Person_C hg_Log_Cle anup_Sp | |
| 4461 | (PB_run_ standalone | |
| 4462 | IN BOOLEAN DEFAULT FA LSE, | |
| 4463 | PB_allo w_rpt_inst | |
| 4464 | IN BOOLEAN DEFAULT FA LSE, | |
| 4465 | PN_rows _to_proces s | |
| 4466 | IN NUMBER D EFAULT NUL L | |
| 4467 | ) | |
| 4468 | IS | |
| 4469 | ||
| 4470 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 4471 | -- * Proce dure: ADR. Person_Chg _Log_Clean up_Sp | |
| 4472 | -- * | |
| 4473 | -- * Upd ate the AD R.Person_C hange_Log table to r emove rows where the | |
| 4474 | -- * sub mission da te is olde r than the days defi ned in the | |
| 4475 | -- * ADR MGT.Adr_Pa rameter ta ble. Initi ally this was set to 31 days. | |
| 4476 | -- * | |
| 4477 | -- * Param eters: | |
| 4478 | -- * | |
| 4479 | -- * PB_r un_standal one Igno re DBMS_JO B logic fo r checking running j obs. | |
| 4480 | -- * Def ault: FALS E | |
| 4481 | -- * | |
| 4482 | -- * PB_a llow_rpt_i nst Allo w stored p rocedure t o be submi tted in th e | |
| 4483 | -- * DBMS _JOB queue on the AD R reportin g database s | |
| 4484 | -- * Def ault: FALS E | |
| 4485 | -- * | |
| 4486 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 4487 | -- | |
| 4488 | -- ======= ========== ========== ========== ========== ========== ========== ======== | |
| 4489 | -- Date Autho r Descrip tion | |
| 4490 | -- ======= ========== ========== ========== ========== ========== ========== ======== | |
| 4491 | -- 06/23/2 010 Craig Wood Created for CCR 1 175. | |
| 4492 | -- 10/13/2 014 Craig Wood CCR 215 2 - Fix ex ception ha ndler rout ine in | |
| 4493 | -- main p rocessing loop to cl ose the | |
| 4494 | -- cursor and write to error table | |
| 4495 | -- instea d of log t able. Also , exit | |
| 4496 | -- job if too many errors occ ur. | |
| 4497 | -- ======= ========== ========== ========== ========== ========== ========== ======== | |
| 4498 | ||
| 4499 | -- CONSTAN TS | |
| 4500 | ||
| 4501 | CC_no V ARCHAR2(1) := 'N'; | |
| 4502 | CC_parm_ applicatio n_name CONSTANT V ARCHAR2(80 ) := 'PERS ON_CHG_LOG _CLEANUP_S P'; | |
| 4503 | CC_parm_ log_file_a ge CONSTANT V ARCHAR2(50 ) := 'OLDE ST LOG FIL E DAYS KEP T'; | |
| 4504 | CC_parm_ rows_to_pr ocess CONSTANT V ARCHAR2(50 ) := 'ROWS TO PROCES S'; | |
| 4505 | CC_parm_ submitted_ age CONSTANT V ARCHAR2(50 ) := 'OLDE ST SUBMITT ED DATE KE PT'; | |
| 4506 | CC_proce ss_name CONSTANT V ARCHAR2(60 ) := 'Pers on_Change_ Log Cleanu p'; | |
| 4507 | CC_sp_na me CONSTANT V ARCHAR2(35 ) := 'Pers on_Chg_Log _Cleanup_S p'; | |
| 4508 | CC_yes CONSTANT V ARCHAR2(1) := 'Y'; | |
| 4509 | ||
| 4510 | CN_max_e rror_count CONSTANT N UMBER := 5 00; -- CCR 2152 | |
| 4511 | ||
| 4512 | -- VARIABL ES | |
| 4513 | ||
| 4514 | VB_allow _rpt_inst B OOLEAN := FALSE; | |
| 4515 | VB_run_s tandalone B OOLEAN := FALSE; | |
| 4516 | ||
| 4517 | VC_allow _rpt_inst V ARCHAR2(5) := NULL; | |
| 4518 | VC_insta nce_name V ARCHAR2(16 ); | |
| 4519 | VC_proce ss_duratio n V ARCHAR2(25 ); | |
| 4520 | VC_run_s tandalone V ARCHAR2(5) := NULL; | |
| 4521 | VC_sql_s tatement V ARCHAR2(20 00); | |
| 4522 | ||
| 4523 | VD_log_d ate D ATE; | |
| 4524 | VD_proce ss_end_dat e D ATE; | |
| 4525 | VD_proce ss_start_d ate D ATE; | |
| 4526 | VD_rec_g roup_date D ATE; | |
| 4527 | ||
| 4528 | VN_error _count N UMBER := 0 ; -- CCR 2 152 | |
| 4529 | VN_job_c ount N UMBER := 0 ; | |
| 4530 | VN_job_n umber N UMBER; | |
| 4531 | VN_parm_ log_file_a ge N UMBER; | |
| 4532 | VN_parm_ rows_to_pr ocess N UMBER; | |
| 4533 | VN_parm_ submitted_ age N UMBER; | |
| 4534 | VN_pass_ count N UMBER := 0 ; | |
| 4535 | VN_rec_c ount N UMBER := 0 ; | |
| 4536 | VN_updat e_count N UMBER := 0 ; | |
| 4537 | ||
| 4538 | -- CURSORS | |
| 4539 | ||
| 4540 | CURSOR C _prsn_chg_ rec IS | |
| 4541 | SELECT Person _change_lo g_id | |
| 4542 | FROM ADR.Pe rson_Chang e_Log | |
| 4543 | WHERE Submit ted_date < SYSDATE - VN_parm_s ubmitted_a ge | |
| 4544 | AND ROWNUM <= VN_par m_rows_to_ process; | |
| 4545 | ||
| 4546 | -- TYPES | |
| 4547 | ||
| 4548 | TYPE TT_ prsn_chg_i d IS | |
| 4549 | TABLE OF ADR.Per son_Change _Log.Perso n_change_l og_id%TYPE ; | |
| 4550 | ||
| 4551 | -- MEMORY TABLES | |
| 4552 | ||
| 4553 | T_prsn_c hg_id T T_prsn_chg _id; | |
| 4554 | ||
| 4555 | -- ******* ********** ********** ********** ********** ********** ********** ******* | |
| 4556 | -- * | |
| 4557 | -- * MAIN PROCEDURE : | |
| 4558 | -- * | |
| 4559 | -- ******* ********** ********** ********** ********** ********** ********** ******* | |
| 4560 | ||
| 4561 | BEGIN | |
| 4562 | ||
| 4563 | VC_sql_s tatement:= 'ALTER SES SION SET D B_FILE_MUL TIBLOCK_RE AD_COUNT = 128'; | |
| 4564 | EXECUTE IMMEDIATE VC_sql_sta tement; | |
| 4565 | ||
| 4566 | VC_sql_s tatement:= 'ALTER SES SION SET O PTIMIZER_D YNAMIC_SAM PLING = 6' ; | |
| 4567 | EXECUTE IMMEDIATE VC_sql_sta tement; | |
| 4568 | ||
| 4569 | VC_sql_s tatement:= 'ALTER SES SION SET O PTIMIZER_M ODE = ALL_ ROWS'; | |
| 4570 | EXECUTE IMMEDIATE VC_sql_sta tement; | |
| 4571 | ||
| 4572 | VC_sql_s tatement:= 'ALTER SES SION SET S ORT_AREA_S IZE = 8192 000'; | |
| 4573 | EXECUTE IMMEDIATE VC_sql_sta tement; | |
| 4574 | ||
| 4575 | VD_rec_g roup_date := TRUNC(S YSDATE); | |
| 4576 | ||
| 4577 | VD_log_d ate := SYS DATE; | |
| 4578 | ADRMGT.J ob_Process _Log_Sp(PC _job_name => SUBSTR( CC_process _name,1,60 ), | |
| 4579 | PD _job_log_d ate => VD_ log_date, | |
| 4580 | PC _job_statu s => SUBST R('Process Initiatio n',1,60), | |
| 4581 | PD _date1 => VD_rec_gro up_date, | |
| 4582 | PC _text1 => SUBSTR('Da te1 column contains the daily process st art date', 1,255)); | |
| 4583 | ||
| 4584 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 4585 | -- * | |
| 4586 | -- * Valid ate input parameters | |
| 4587 | -- * | |
| 4588 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 4589 | ||
| 4590 | -- * Check run stand alone flag | |
| 4591 | ||
| 4592 | IF PB_ru n_standalo ne IS NULL | |
| 4593 | OR NOT PB_run_sta ndalone TH EN | |
| 4594 | ||
| 4595 | VB_run _standalon e := FALSE ; | |
| 4596 | VC_run _standalon e := 'FALS E'; -- use d for log message, b oolean can 't be disp layed | |
| 4597 | ||
| 4598 | ELSE | |
| 4599 | ||
| 4600 | VB_run _standalon e := TRUE; | |
| 4601 | VC_run _standalon e := 'TRUE '; -- used for log m essage, bo olean can' t be displ ayed | |
| 4602 | ||
| 4603 | END IF; | |
| 4604 | ||
| 4605 | -- * Check run on re port insta nce flag | |
| 4606 | ||
| 4607 | IF PB_al low_rpt_in st IS NULL | |
| 4608 | OR NOT PB_allow_r pt_inst TH EN | |
| 4609 | ||
| 4610 | VB_all ow_rpt_ins t := FALSE ; | |
| 4611 | VC_all ow_rpt_ins t := 'FALS E'; -- use d for log message, b oolean can 't be disp layed | |
| 4612 | ||
| 4613 | ELSE | |
| 4614 | ||
| 4615 | VB_all ow_rpt_ins t := TRUE; | |
| 4616 | VC_all ow_rpt_ins t := 'TRUE '; -- used for log m essage, bo olean can' t be displ ayed | |
| 4617 | ||
| 4618 | END IF; | |
| 4619 | ||
| 4620 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 4621 | -- * | |
| 4622 | -- * Retri eve proces sing param eters | |
| 4623 | -- * | |
| 4624 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 4625 | ||
| 4626 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 4627 | -- * Proce ss Paramet er for OLD EST LOG FI LE DAYS KE PT | |
| 4628 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 4629 | ||
| 4630 | BEGIN | |
| 4631 | ||
| 4632 | SELECT Value | |
| 4633 | INTO VN_par m_log_file _age | |
| 4634 | FROM ADRMGT .Adr_Param eter | |
| 4635 | WHERE Applic ation_name = CC_parm _applicati on_name | |
| 4636 | AND Parame ter_name = CC_parm_l og_file_ag e; | |
| 4637 | ||
| 4638 | IF VN_ parm_log_f ile_age IS NULL THEN | |
| 4639 | ||
| 4640 | VD_l og_date := SYSDATE; | |
| 4641 | ADRM GT.Job_Pro cess_Log_S p(PC_job_n ame => SUB STR(CC_pro cess_name, 1,60), | |
| 4642 | PD_job_l og_date => VD_log_da te, | |
| 4643 | PC_job_s tatus => S UBSTR('ERR OR - Job p arameter', 1,60), | |
| 4644 | PC_job_l og_message => SUBSTR ('Paramete r ' | |
| 4645 | || CC_par m_log_file _age | |
| 4646 | || 'is NU LL. Termin ating proc ess.',1,20 00), | |
| 4647 | PD_date1 => VD_rec _group_dat e, | |
| 4648 | PC_text1 => SUBSTR ('Date1 co lumn conta ins the da ily proces s start da te',1,255) ); | |
| 4649 | ||
| 4650 | RETU RN; | |
| 4651 | ||
| 4652 | END IF ; | |
| 4653 | ||
| 4654 | EXCEPTIO N | |
| 4655 | ||
| 4656 | WHEN N O_DATA_FOU ND THEN | |
| 4657 | ||
| 4658 | VD_l og_date := SYSDATE; | |
| 4659 | ADRM GT.Job_Pro cess_Log_S p(PC_job_n ame => SUB STR(CC_pro cess_name, 1,60), | |
| 4660 | PD_job_l og_date => VD_log_da te, | |
| 4661 | PC_job_s tatus => S UBSTR('ERR OR - Job p arameter', 1,60), | |
| 4662 | PC_job_l og_message => 'Param eter for ' | |
| 4663 | || CC_ parm_log_f ile_age | |
| 4664 | || ' w as not fou nd. Termin ating proc ess.', | |
| 4665 | PD_date1 => VD_rec _group_dat e, | |
| 4666 | PC_text1 => SUBSTR ('Date1 co lumn conta ins the da ily proces s start da te',1,255) ); | |
| 4667 | ||
| 4668 | RETU RN; | |
| 4669 | ||
| 4670 | WHEN O THERS THEN | |
| 4671 | ||
| 4672 | VD_l og_date := SYSDATE; | |
| 4673 | ADRM GT.Job_Pro cess_Log_S p(PC_job_n ame => SUB STR(CC_pro cess_name, 1,60), | |
| 4674 | PD_job_l og_date => VD_log_da te, | |
| 4675 | PC_job_s tatus => S UBSTR('ERR OR - Job p arameter', 1,60), | |
| 4676 | PC_job_l og_message => SUBSTR ('Unknown error retr ieving par ameter for ' | |
| 4677 | || CC_par m_log_file _age | |
| 4678 | || '. Ter minating p rocess. ' | |
| 4679 | || SQLERR M,1,2000), | |
| 4680 | PD_date1 => VD_rec _group_dat e, | |
| 4681 | PC_text1 => SUBSTR ('Date1 co lumn conta ins the da ily proces s start da te',1,255) ); | |
| 4682 | ||
| 4683 | RETU RN; | |
| 4684 | ||
| 4685 | END; | |
| 4686 | ||
| 4687 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 4688 | -- * Proce ss Paramet er for OLD EST SUBMIT TED DATE K EPT | |
| 4689 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 4690 | ||
| 4691 | BEGIN | |
| 4692 | ||
| 4693 | SELECT Value | |
| 4694 | INTO VN_par m_submitte d_age | |
| 4695 | FROM ADRMGT .Adr_Param eter | |
| 4696 | WHERE Applic ation_name = CC_parm _applicati on_name | |
| 4697 | AND Parame ter_name = CC_parm_s ubmitted_a ge; | |
| 4698 | ||
| 4699 | IF VN_ parm_submi tted_age I S NULL THE N | |
| 4700 | ||
| 4701 | VD_l og_date := SYSDATE; | |
| 4702 | ADRM GT.Job_Pro cess_Log_S p(PC_job_n ame => SUB STR(CC_pro cess_name, 1,60), | |
| 4703 | PD_job_l og_date => VD_log_da te, | |
| 4704 | PC_job_s tatus => S UBSTR('ERR OR - Job p arameter', 1,60), | |
| 4705 | PC_job_l og_message => SUBSTR ('Paramete r ' | |
| 4706 | || CC_par m_submitte d_age | |
| 4707 | || 'is NU LL. Termin ating proc ess.',1,20 00), | |
| 4708 | PD_date1 => VD_rec _group_dat e, | |
| 4709 | PC_text1 => SUBSTR ('Date1 co lumn conta ins the da ily proces s start da te',1,255) ); | |
| 4710 | ||
| 4711 | RETU RN; | |
| 4712 | ||
| 4713 | END IF ; | |
| 4714 | ||
| 4715 | EXCEPTIO N | |
| 4716 | ||
| 4717 | WHEN N O_DATA_FOU ND THEN | |
| 4718 | ||
| 4719 | VD_l og_date := SYSDATE; | |
| 4720 | ADRM GT.Job_Pro cess_Log_S p(PC_job_n ame => SUB STR(CC_pro cess_name, 1,60), | |
| 4721 | PD_job_l og_date => VD_log_da te, | |
| 4722 | PC_job_s tatus => S UBSTR('ERR OR - Job p arameter', 1,60), | |
| 4723 | PC_job_l og_message => 'Param eter for ' | |
| 4724 | || CC_ parm_submi tted_age | |
| 4725 | || ' w as not fou nd. Termin ating proc ess.', | |
| 4726 | PD_date1 => VD_rec _group_dat e, | |
| 4727 | PC_text1 => SUBSTR ('Date1 co lumn conta ins the da ily proces s start da te',1,255) ); | |
| 4728 | ||
| 4729 | RETU RN; | |
| 4730 | ||
| 4731 | WHEN O THERS THEN | |
| 4732 | ||
| 4733 | VD_l og_date := SYSDATE; | |
| 4734 | ADRM GT.Job_Pro cess_Log_S p(PC_job_n ame => SUB STR(CC_pro cess_name, 1,60), | |
| 4735 | PD_job_l og_date => VD_log_da te, | |
| 4736 | PC_job_s tatus => S UBSTR('ERR OR - Job p arameter', 1,60), | |
| 4737 | PC_job_l og_message => SUBSTR ('Unknown error retr ieving par ameter for ' | |
| 4738 | || CC_par m_submitte d_age | |
| 4739 | || '. Ter minating p rocess. ' | |
| 4740 | || SQLERR M,1,2000), | |
| 4741 | PD_date1 => VD_rec _group_dat e, | |
| 4742 | PC_text1 => SUBSTR ('Date1 co lumn conta ins the da ily proces s start da te',1,255) ); | |
| 4743 | ||
| 4744 | RETU RN; | |
| 4745 | ||
| 4746 | END; | |
| 4747 | ||
| 4748 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 4749 | -- * Proce ss Paramet er ROWS TO PROCESS | |
| 4750 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 4751 | ||
| 4752 | BEGIN | |
| 4753 | ||
| 4754 | SELECT Value | |
| 4755 | INTO VN_par m_rows_to_ process | |
| 4756 | FROM ADRMGT .Adr_Param eter | |
| 4757 | WHERE Applic ation_name = CC_parm _applicati on_name | |
| 4758 | AND Parame ter_name = CC_parm_r ows_to_pro cess; | |
| 4759 | ||
| 4760 | IF VN_ parm_rows_ to_process IS NULL T HEN | |
| 4761 | ||
| 4762 | VD_l og_date := SYSDATE; | |
| 4763 | ADRM GT.Job_Pro cess_Log_S p(PC_job_n ame => SUB STR(CC_pro cess_name, 1,60), | |
| 4764 | PD_job_l og_date => VD_log_da te, | |
| 4765 | PC_job_s tatus => S UBSTR('ERR OR - Job p arameter', 1,60), | |
| 4766 | PC_job_l og_message => SUBSTR ('Paramete r ' | |
| 4767 | || CC_par m_rows_to_ process | |
| 4768 | || 'is NU LL. Termin ating proc ess.',1,20 00), | |
| 4769 | PD_date1 => VD_rec _group_dat e, | |
| 4770 | PC_text1 => SUBSTR ('Date1 co lumn conta ins the da ily proces s start da te',1,255) ); | |
| 4771 | ||
| 4772 | RETU RN; | |
| 4773 | ||
| 4774 | END IF ; | |
| 4775 | ||
| 4776 | EXCEPTIO N | |
| 4777 | ||
| 4778 | WHEN N O_DATA_FOU ND THEN | |
| 4779 | ||
| 4780 | VD_l og_date := SYSDATE; | |
| 4781 | ADRM GT.Job_Pro cess_Log_S p(PC_job_n ame => SUB STR(CC_pro cess_name, 1,60), | |
| 4782 | PD_job_l og_date => VD_log_da te, | |
| 4783 | PC_job_s tatus => S UBSTR('ERR OR - Job p arameter', 1,60), | |
| 4784 | PC_job_l og_message => 'Param eter for ' | |
| 4785 | || CC_ parm_rows_ to_process | |
| 4786 | || ' w as not fou nd. Termin ating proc ess.', | |
| 4787 | PD_date1 => VD_rec _group_dat e, | |
| 4788 | PC_text1 => SUBSTR ('Date1 co lumn conta ins the da ily proces s start da te',1,255) ); | |
| 4789 | ||
| 4790 | RETU RN; | |
| 4791 | ||
| 4792 | WHEN O THERS THEN | |
| 4793 | ||
| 4794 | VD_l og_date := SYSDATE; | |
| 4795 | ADRM GT.Job_Pro cess_Log_S p(PC_job_n ame => SUB STR(CC_pro cess_name, 1,60), | |
| 4796 | PD_job_l og_date => VD_log_da te, | |
| 4797 | PC_job_s tatus => S UBSTR('ERR OR - Job p arameter', 1,60), | |
| 4798 | PC_job_l og_message => SUBSTR ('Unknown error retr ieving par ameter for ' | |
| 4799 | || CC_par m_rows_to_ process | |
| 4800 | || '. Ter minating p rocess. ' | |
| 4801 | || SQLERR M,1,2000), | |
| 4802 | PD_date1 => VD_rec _group_dat e, | |
| 4803 | PC_text1 => SUBSTR ('Date1 co lumn conta ins the da ily proces s start da te',1,255) ); | |
| 4804 | ||
| 4805 | RETU RN; | |
| 4806 | ||
| 4807 | END; | |
| 4808 | ||
| 4809 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 4810 | -- * | |
| 4811 | -- * Write out Param eter log m essages fo r submitte d job | |
| 4812 | -- * | |
| 4813 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 4814 | ||
| 4815 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 4816 | -- * Job Submission Parameter s | |
| 4817 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 4818 | ||
| 4819 | VD_log_d ate := SYS DATE; | |
| 4820 | ADRMGT.J ob_Process _Log_Sp(PC _job_name => SUBSTR( CC_process _name,1,60 ), | |
| 4821 | PD _job_log_d ate => VD_ log_date, | |
| 4822 | PC _job_statu s => SUBST R('INFORMA TION - Job submissio n paramete rs',1,60), | |
| 4823 | PC _job_log_m essage => SUBSTR(' R un standal one: ' || VC_run_sta ndalone,1, 2000), | |
| 4824 | PD _date1 => VD_rec_gro up_date, | |
| 4825 | PC _text1 => SUBSTR('Da te1 column contains the daily process st art date', 1,255)); | |
| 4826 | ||
| 4827 | VD_log_d ate := SYS DATE; | |
| 4828 | ADRMGT.J ob_Process _Log_Sp(PC _job_name => SUBSTR( CC_process _name,1,60 ), | |
| 4829 | PD _job_log_d ate => VD_ log_date, | |
| 4830 | PC _job_statu s => SUBST R('INFORMA TION - Job submissio n paramete rs',1,60), | |
| 4831 | PC _job_log_m essage => SUBSTR(' R un on repo rting data bases: ' | | VC_allow _rpt_inst, 1,2000), | |
| 4832 | PD _date1 => VD_rec_gro up_date, | |
| 4833 | PC _text1 => SUBSTR('Da te1 column contains the daily process st art date', 1,255)); | |
| 4834 | ||
| 4835 | VD_log_d ate := SYS DATE; | |
| 4836 | ADRMGT.J ob_Process _Log_Sp(PC _job_name => SUBSTR( CC_process _name,1,60 ), | |
| 4837 | PD _job_log_d ate => VD_ log_date, | |
| 4838 | PC _job_statu s => SUBST R('INFORMA TION - Job submissio n paramete rs',1,60), | |
| 4839 | PC _job_log_m essage => SUBSTR(' R ows to pro cess each loop: ' || NVL(TO_CH AR(PN_rows _to_proces s),'NULL') ,1,2000), | |
| 4840 | PD _date1 => VD_rec_gro up_date, | |
| 4841 | PC _text1 => SUBSTR('Da te1 column contains the daily process st art date', 1,255)); | |
| 4842 | ||
| 4843 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 4844 | -- * Job Table Para meters | |
| 4845 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 4846 | ||
| 4847 | VD_log_d ate := SYS DATE; | |
| 4848 | ADRMGT.J ob_Process _Log_Sp(PC _job_name => SUBSTR( CC_process _name,1,60 ), | |
| 4849 | PD _job_log_d ate => VD_ log_date, | |
| 4850 | PC _job_statu s => SUBST R('INFORMA TION - Job table par ameters',1 ,60), | |
| 4851 | PC _job_log_m essage => SUBSTR(' ' || CC_par m_log_file _age || ': ' || VN_p arm_log_fi le_age,1,2 000), | |
| 4852 | PD _date1 => VD_rec_gro up_date, | |
| 4853 | PC _text1 => SUBSTR('Da te1 column contains the daily process st art date', 1,255)); | |
| 4854 | ||
| 4855 | VD_log_d ate := SYS DATE; | |
| 4856 | ADRMGT.J ob_Process _Log_Sp(PC _job_name => SUBSTR( CC_process _name,1,60 ), | |
| 4857 | PD _job_log_d ate => VD_ log_date, | |
| 4858 | PC _job_statu s => SUBST R('INFORMA TION - Job table par ameters',1 ,60), | |
| 4859 | PC _job_log_m essage => SUBSTR(' ' || CC_par m_submitte d_age || ' : ' || VN_ parm_submi tted_age,1 ,2000), | |
| 4860 | PD _date1 => VD_rec_gro up_date, | |
| 4861 | PC _text1 => SUBSTR('Da te1 column contains the daily process st art date', 1,255)); | |
| 4862 | ||
| 4863 | VD_log_d ate := SYS DATE; | |
| 4864 | ADRMGT.J ob_Process _Log_Sp(PC _job_name => SUBSTR( CC_process _name,1,60 ), | |
| 4865 | PD _job_log_d ate => VD_ log_date, | |
| 4866 | PC _job_statu s => SUBST R('INFORMA TION - Job table par ameters',1 ,60), | |
| 4867 | PC _job_log_m essage => SUBSTR(' ' | |
| 4868 | || CC_parm_ro ws_to_proc ess | |
| 4869 | || ' (in each loop): ' | |
| 4870 | || TO_CHAR(VN _parm_rows _to_proces s),1,2000) , | |
| 4871 | PD _date1 => VD_rec_gro up_date, | |
| 4872 | PC _text1 => SUBSTR('Da te1 column contains the daily process st art date', 1,255)); | |
| 4873 | ||
| 4874 | -- If ROWS TO PROCES S paramete r is overr idden, wri te out a l og message | |
| 4875 | ||
| 4876 | IF PN_ro ws_to_proc ess IS NOT NULL THEN | |
| 4877 | ||
| 4878 | VN_par m_rows_to_ process := PN_rows_t o_process; | |
| 4879 | ||
| 4880 | VD_log _date := S YSDATE; | |
| 4881 | ADRMGT .Job_Proce ss_Log_Sp( PC_job_nam e => SUBST R(CC_proce ss_name,1, 60), | |
| 4882 | PD_job_log _date => V D_log_date , | |
| 4883 | PC_job_sta tus => SUB STR('WARNI NG - Job t able param eters',1,6 0), | |
| 4884 | PC_job_log _message = > SUBSTR(' Processin g paramete r ' | |
| 4885 | | | CC_parm_ rows_to_pr ocess | |
| 4886 | | | ' (in ea ch loop) h as been ov erridden.' | |
| 4887 | | | ' The ov erride val ue is: ' | |
| 4888 | | | TO_CHAR( VN_parm_ro ws_to_proc ess),1,200 0), | |
| 4889 | PD_date1 = > VD_rec_g roup_date, | |
| 4890 | PC_text1 = > SUBSTR(' Date1 colu mn contain s the dail y process start date ',1,255)); | |
| 4891 | ||
| 4892 | END IF; | |
| 4893 | ||
| 4894 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 4895 | -- * | |
| 4896 | -- * Check to see if process i s running on a repor ting datab ase. | |
| 4897 | -- * - If VB_allow_ rpt_inst i s FALSE, t hen it's n ot allowed . End the job. | |
| 4898 | -- * | |
| 4899 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 4900 | ||
| 4901 | IF NOT V B_allow_rp t_inst THE N | |
| 4902 | ||
| 4903 | BEGIN | |
| 4904 | ||
| 4905 | VD_l og_date := SYSDATE; | |
| 4906 | ADRM GT.Job_Pro cess_Log_S p(PC_job_n ame => SUB STR(CC_pro cess_name, 1,60), | |
| 4907 | PD_job_l og_date => VD_log_da te, | |
| 4908 | PC_job_s tatus => S UBSTR('INF ORMATION - Checking if running on a repo rting data base',1,60 ), | |
| 4909 | PD_date1 => VD_rec _group_dat e, | |
| 4910 | PC_text1 => SUBSTR ('Date1 co lumn conta ins the da ily proces s start da te',1,255) ); | |
| 4911 | ||
| 4912 | SELE CT Inst ance_name | |
| 4913 | INTO VC_i nstance_na me | |
| 4914 | FROM V$in stance; | |
| 4915 | ||
| 4916 | IF U PPER(SUBST R(VC_insta nce_name,1 ,4)) = 'AD RR' THEN | |
| 4917 | ||
| 4918 | VD _log_date := SYSDATE ; | |
| 4919 | AD RMGT.Job_P rocess_Log _Sp(PC_job _name => S UBSTR(CC_p rocess_nam e,1,60), | |
| 4920 | PD_job _log_date => VD_log_ date, | |
| 4921 | PC_job _status => SUBSTR('E RROR - Pro cessing Fa iled',1,60 ), | |
| 4922 | PC_job _log_messa ge => SUBS TR('Attemp ting to ru n on a rep orting ins tance. Ins tance name : ' | |
| 4923 | || VC_inst ance_name | |
| 4924 | || '. This job has b een termin ated. To r un on a re porting in stance,' | |
| 4925 | || ' set p arameter V B_allow_rp t_inst to TRUE and r esubmit th e job.',1, 2000), | |
| 4926 | PD_dat e1 => VD_r ec_group_d ate, | |
| 4927 | PC_tex t1 => SUBS TR('Date1 column con tains the daily proc ess start date',1,25 5)); | |
| 4928 | ||
| 4929 | RE TURN; | |
| 4930 | ||
| 4931 | END IF; | |
| 4932 | ||
| 4933 | EXCEPT ION | |
| 4934 | ||
| 4935 | WHEN OTHERS TH EN | |
| 4936 | ||
| 4937 | VD _log_date := SYSDATE ; | |
| 4938 | AD RMGT.Job_P rocess_Log _Sp(PC_job _name => S UBSTR(CC_p rocess_nam e,1,60), | |
| 4939 | PD_job _log_date => VD_log_ date, | |
| 4940 | PC_job _status => SUBSTR('E RROR - Una ble to ret rieve inst ance name' ,1,60), | |
| 4941 | PC_job _log_messa ge => SUBS TR('Termin ating proc ess. ' || SQLERRM,1, 2000), | |
| 4942 | PD_dat e1 => VD_r ec_group_d ate, | |
| 4943 | PC_tex t1 => SUBS TR('Date1 column con tains the daily proc ess start date',1,25 5)); | |
| 4944 | ||
| 4945 | RE TURN; | |
| 4946 | ||
| 4947 | END; | |
| 4948 | ||
| 4949 | END IF; | |
| 4950 | ||
| 4951 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 4952 | -- * | |
| 4953 | -- * Check to see if the job h as already run today | |
| 4954 | -- * - If running i n stand-al one mode, don't chec k. | |
| 4955 | -- * - Ot herwise, i f job has already ru n today, t hen exit t he job. | |
| 4956 | -- * | |
| 4957 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 4958 | ||
| 4959 | IF NOT P B_run_stan dalone THE N | |
| 4960 | ||
| 4961 | BEGIN | |
| 4962 | ||
| 4963 | VD_l og_date := SYSDATE; | |
| 4964 | ADRM GT.Job_Pro cess_Log_S p(PC_job_n ame => SUB STR(CC_pro cess_name, 1,60), | |
| 4965 | PD_job_l og_date => VD_log_da te, | |
| 4966 | PC_job_s tatus => S UBSTR('INF ORMATION - Checking if process has alrea dy ran tod ay',1,60), | |
| 4967 | PD_date1 => VD_rec _group_dat e, | |
| 4968 | PC_text1 => SUBSTR ('Date1 co lumn conta ins the da ily proces s start da te',1,255) ); | |
| 4969 | ||
| 4970 | SELE CT COUN T(*) | |
| 4971 | INTO VN_r ec_count | |
| 4972 | FROM ADRM GT.Job_Pro cess_Logs | |
| 4973 | WHER E Job_ name = CC_ process_na me | |
| 4974 | AND Date 1 = VD_rec _group_dat e | |
| 4975 | AND Job_ status LIK E 'SUCCESS %-%Process ing Comple ted'; | |
| 4976 | ||
| 4977 | IF V N_rec_coun t > 0 THEN | |
| 4978 | ||
| 4979 | VD _log_date := SYSDATE ; | |
| 4980 | AD RMGT.Job_P rocess_Log _Sp(PC_job _name => S UBSTR(CC_p rocess_nam e,1,60), | |
| 4981 | PD_job _log_date => VD_log_ date, | |
| 4982 | PC_job _status => SUBSTR('W ARNING - T his date h as already been proc essed',1,6 0), | |
| 4983 | PC_job _log_messa ge => SUBS TR('Proces sing has a lready com pleted for this date . Exiting to job que ue.',1,200 0), | |
| 4984 | PD_dat e1 => VD_r ec_group_d ate, | |
| 4985 | PC_tex t1 => SUBS TR('Date1 column con tains the daily proc ess start date',1,25 5)); | |
| 4986 | ||
| 4987 | RE TURN; | |
| 4988 | ||
| 4989 | END IF; | |
| 4990 | ||
| 4991 | EXCEPT ION | |
| 4992 | ||
| 4993 | WHEN OTHERS TH EN | |
| 4994 | ||
| 4995 | VD _log_date := SYSDATE ; | |
| 4996 | AD RMGT.Job_P rocess_Log _Sp(PC_job _name => S UBSTR(CC_p rocess_nam e,1,60), | |
| 4997 | PD_job _log_date => VD_log_ date, | |
| 4998 | PC_job _status => SUBSTR('E RROR - Una ble to ver ify if job has alrea dy run',1, 60), | |
| 4999 | PC_job _log_messa ge => SUBS TR('Termin ating proc ess. ' || SQLERRM,1, 2000), | |
| 5000 | PD_dat e1 => VD_r ec_group_d ate, | |
| 5001 | PC_tex t1 => SUBS TR('Date1 column con tains the daily proc ess start date',1,25 5)); | |
| 5002 | ||
| 5003 | RE TURN; | |
| 5004 | ||
| 5005 | END; | |
| 5006 | ||
| 5007 | END IF; | |
| 5008 | ||
| 5009 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 5010 | -- * | |
| 5011 | -- * Check to see if any other jobs of t his proced ure are ru nning. | |
| 5012 | -- * - If yes, then end this job. | |
| 5013 | -- * | |
| 5014 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 5015 | ||
| 5016 | SELECT C OUNT(*) | |
| 5017 | INTO V N_job_coun t | |
| 5018 | FROM S YS.DBA_JOB S_RUNNING R, | |
| 5019 | S YS.DBA_JOB S J | |
| 5020 | WHERE J .JOB = R.J OB | |
| 5021 | AND U PPER(J.WHA T) LIKE '% ' || UPPER (CC_sp_nam e) || '%'; | |
| 5022 | ||
| 5023 | IF VN_jo b_count > 1 THEN | |
| 5024 | ||
| 5025 | VD_log _date := S YSDATE; | |
| 5026 | ADRMGT .Job_Proce ss_Log_Sp( PC_job_nam e => SUBST R(CC_proce ss_name,1, 60), | |
| 5027 | PD_job_log _date => V D_log_date , | |
| 5028 | PC_job_sta tus => SUB STR('WARNI NG - Check for runni ng jobs',1 ,60), | |
| 5029 | PC_job_log _message = > SUBSTR(' There is a nother ' | |
| 5030 | || C C_sp_name | |
| 5031 | || ' job runni ng.' | |
| 5032 | || ' Exiting j ob without running.' ,1,2000), | |
| 5033 | PD_date1 = > VD_rec_g roup_date, | |
| 5034 | PC_text1 = > SUBSTR(' Date1 colu mn contain s the dail y process start date ',1,255)); | |
| 5035 | ||
| 5036 | RETURN ; | |
| 5037 | ||
| 5038 | ELSE | |
| 5039 | ||
| 5040 | IF VB_ run_standa lone THEN | |
| 5041 | ||
| 5042 | VD_l og_date := SYSDATE; | |
| 5043 | ADRM GT.Job_Pro cess_Log_S p(PC_job_n ame => SUB STR(CC_pro cess_name, 1,60), | |
| 5044 | PD_job_l og_date => VD_log_da te, | |
| 5045 | PC_job_s tatus => S UBSTR('INF ORMATION - Starting in STANDAL ONE mode', 1,60), | |
| 5046 | PD_date1 => VD_rec _group_dat e, | |
| 5047 | PC_text1 => SUBSTR ('Date1 co lumn conta ins the da ily proces s start da te',1,255) ); | |
| 5048 | ||
| 5049 | ELSE | |
| 5050 | ||
| 5051 | SELE CT MAX( J.Job) | |
| 5052 | INTO VN_j ob_number | |
| 5053 | FROM SYS. DBA_JOBS_R UNNING R, | |
| 5054 | SYS. DBA_JOBS J | |
| 5055 | WHER E J.JO B = R.JOB | |
| 5056 | AND UPPE R(J.WHAT) LIKE '%' | | UPPER(CC _sp_name) || '%'; | |
| 5057 | ||
| 5058 | VD_l og_date := SYSDATE; | |
| 5059 | ADRM GT.Job_Pro cess_Log_S p(PC_job_n ame => SUB STR(CC_pro cess_name, 1,60), | |
| 5060 | PD_job_l og_date => VD_log_da te, | |
| 5061 | PC_job_s tatus => S UBSTR('INF ORMATION - Starting in DBMS_JO B mode',1, 60), | |
| 5062 | PC_job_l og_message => SUBSTR ('DBMS_JOB Number: ' | |
| 5063 | || VN_job _number,1, 2000), | |
| 5064 | PD_date1 => VD_rec _group_dat e, | |
| 5065 | PC_text1 => SUBSTR ('Date1 co lumn conta ins the da ily proces s start da te',1,255) ); | |
| 5066 | ||
| 5067 | END IF ; | |
| 5068 | ||
| 5069 | END IF; | |
| 5070 | ||
| 5071 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 5072 | -- * | |
| 5073 | -- * Main processing loop | |
| 5074 | -- * | |
| 5075 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 5076 | ||
| 5077 | VN_pass_ count := 0 ; | |
| 5078 | VN_updat e_count := 0; | |
| 5079 | VD_proce ss_start_d ate := SYS DATE; | |
| 5080 | ||
| 5081 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 5082 | -- * Remov e old proc ess log ro ws | |
| 5083 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 5084 | BEGIN | |
| 5085 | ||
| 5086 | VD_log _date := S YSDATE; | |
| 5087 | ADRMGT .Job_Proce ss_Log_Sp( PC_job_nam e => SUBST R(CC_proce ss_name,1, 60), | |
| 5088 | PD_job_log _date => V D_log_date , | |
| 5089 | PC_job_sta tus => SUB STR('INFOR MATION - R emoving ol d process logs',1,60 ), | |
| 5090 | PC_job_log _message = > SUBSTR(' Removing p rocess log s over ' | |
| 5091 | | | VN_parm_ log_file_a ge | |
| 5092 | | | ' days o ld',1,2000 ), | |
| 5093 | PD_date1 = > VD_rec_g roup_date, | |
| 5094 | PC_text1 = > SUBSTR(' Date1 colu mn contain s the dail y process start date ',1,255)); | |
| 5095 | ||
| 5096 | DELETE | |
| 5097 | FROM ADRMGT .Job_Proce ss_Logs | |
| 5098 | WHERE Job_na me = CC_pr ocess_name | |
| 5099 | AND Date1 < TRUNC(SY SDATE) - V N_parm_log _file_age; | |
| 5100 | ||
| 5101 | COMMIT ; | |
| 5102 | ||
| 5103 | VD_log _date := S YSDATE; | |
| 5104 | ADRMGT .Job_Proce ss_Log_Sp( PC_job_nam e => SUBST R(CC_proce ss_name,1, 60), | |
| 5105 | PD_job_log _date => V D_log_date , | |
| 5106 | PC_job_sta tus => SUB STR('INFOR MATION - R emoved old process l ogs',1,60) , | |
| 5107 | PC_job_log _message = > SUBSTR(' Removed pr ocess logs over ' | |
| 5108 | | | VN_parm_ log_file_a ge | |
| 5109 | | | ' days o ld',1,2000 ), | |
| 5110 | PD_date1 = > VD_rec_g roup_date, | |
| 5111 | PC_text1 = > SUBSTR(' Date1 colu mn contain s the dail y process start date ',1,255)); | |
| 5112 | ||
| 5113 | ||
| 5114 | EXCEPTIO N | |
| 5115 | ||
| 5116 | WHEN N O_DATA_FOU ND THEN | |
| 5117 | ||
| 5118 | NULL ; | |
| 5119 | ||
| 5120 | WHEN O THERS THEN | |
| 5121 | ||
| 5122 | VD_l og_date := SYSDATE; | |
| 5123 | ADRM GT.Job_Pro cess_Log_S p(PC_job_n ame => SUB STR(CC_pro cess_name, 1,60), | |
| 5124 | PD_job_l og_date = > VD_log_d ate, | |
| 5125 | PC_job_s tatus => S UBSTR('ERR OR - Unkno wn error r emoving ol d process logs.',1,6 0), | |
| 5126 | PC_job_l og_message => SUBSTR (SQLERRM,1 ,2000), | |
| 5127 | PD_date1 => VD_rec _group_dat e, | |
| 5128 | PC_text1 => SUBSTR ('Date1 co lumn conta ins the da ily proces s start da te',1,255) ); | |
| 5129 | ||
| 5130 | END; | |
| 5131 | ||
| 5132 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 5133 | -- * Remov e old proc ess error rows | |
| 5134 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 5135 | ||
| 5136 | BEGIN | |
| 5137 | ||
| 5138 | VD_log _date := S YSDATE; | |
| 5139 | ADRMGT .Job_Proce ss_Log_Sp( PC_job_nam e => SUBST R(CC_proce ss_name,1, 60), | |
| 5140 | PD_job_log _date => V D_log_date , | |
| 5141 | PC_job_sta tus => SUB STR('INFOR MATION - R emoving ol d process errors',1, 60), | |
| 5142 | PC_job_log _message = > SUBSTR(' Removing p rocess err ors over ' | |
| 5143 | | | VN_parm_ log_file_a ge | |
| 5144 | | | ' days o ld',1,2000 ), | |
| 5145 | PD_date1 = > VD_rec_g roup_date, | |
| 5146 | PC_text1 = > SUBSTR(' Date1 colu mn contain s the dail y process start date ',1,255)); | |
| 5147 | ||
| 5148 | DELETE | |
| 5149 | FROM ADRMGT .Job_Proce ss_Errs | |
| 5150 | WHERE Job_na me = CC_pr ocess_name | |
| 5151 | AND Date1 < TRUNC(SY SDATE) - V N_parm_log _file_age; | |
| 5152 | ||
| 5153 | COMMIT ; | |
| 5154 | ||
| 5155 | VD_log _date := S YSDATE; | |
| 5156 | ADRMGT .Job_Proce ss_Log_Sp( PC_job_nam e => SUBST R(CC_proce ss_name,1, 60), | |
| 5157 | PD_job_log _date => V D_log_date , | |
| 5158 | PC_job_sta tus => SUB STR('INFOR MATION - R emoved old process e rrors',1,6 0), | |
| 5159 | PC_job_log _message = > SUBSTR(' Removed pr ocess erro rs over ' | |
| 5160 | | | VN_parm_ log_file_a ge | |
| 5161 | | | ' days o ld',1,2000 ), | |
| 5162 | PD_date1 = > VD_rec_g roup_date, | |
| 5163 | PC_text1 = > SUBSTR(' Date1 colu mn contain s the dail y process start date ',1,255)); | |
| 5164 | ||
| 5165 | EXCEPTIO N | |
| 5166 | ||
| 5167 | WHEN N O_DATA_FOU ND THEN | |
| 5168 | ||
| 5169 | NULL ; | |
| 5170 | ||
| 5171 | WHEN O THERS THEN | |
| 5172 | ||
| 5173 | VD_l og_date := SYSDATE; | |
| 5174 | ADRM GT.Job_Pro cess_Log_S p(PC_job_n ame => SUB STR(CC_pro cess_name, 1,60), | |
| 5175 | PD_job_l og_date = > VD_log_d ate, | |
| 5176 | PC_job_s tatus => S UBSTR('ERR OR - Unkno wn error r emoving ol d process errors.',1 ,60), | |
| 5177 | PC_job_l og_message => SUBSTR (SQLERRM,1 ,2000), | |
| 5178 | PD_date1 => VD_rec _group_dat e, | |
| 5179 | PC_text1 => SUBSTR ('Date1 co lumn conta ins the da ily proces s start da te',1,255) ); | |
| 5180 | ||
| 5181 | END; | |
| 5182 | ||
| 5183 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 5184 | -- * Main record cur sor logic | |
| 5185 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 5186 | ||
| 5187 | VN_pass_ count := 0 ; | |
| 5188 | VN_updat e_count := 0; | |
| 5189 | ||
| 5190 | LOOP | |
| 5191 | ||
| 5192 | BEGIN | |
| 5193 | ||
| 5194 | OPEN C_prsn_ch g_rec; | |
| 5195 | ||
| 5196 | FETC H C_prsn_c hg_rec | |
| 5197 | BULK COLLECT I NTO T_prsn _chg_id | |
| 5198 | LIMI T VN_parm_ rows_to_pr ocess; | |
| 5199 | ||
| 5200 | EXIT WHEN T_pr sn_chg_id. COUNT = 0; | |
| 5201 | ||
| 5202 | FORA LL I_prsn_ chg_id IN T_prsn_chg _id.FIRST. .T_prsn_ch g_id.last | |
| 5203 | DE LETE | |
| 5204 | FR OM AD R.Person_C hange_Log | |
| 5205 | WH ERE Pe rson_chang e_log_id = T_prsn_ch g_id(I_prs n_chg_id); | |
| 5206 | ||
| 5207 | COMM IT; | |
| 5208 | ||
| 5209 | VN_p ass_count := VN_pass _count + 1 ; | |
| 5210 | ||
| 5211 | VN_u pdate_coun t := VN_up date_count + T_prsn_ chg_id.COU NT; | |
| 5212 | ||
| 5213 | CLOS E C_prsn_c hg_rec; | |
| 5214 | ||
| 5215 | EXCEPT ION | |
| 5216 | ||
| 5217 | WHEN OTHERS TH EN | |
| 5218 | ||
| 5219 | VN _error_cou nt := VN_e rror_count + 1; -- CCR 2152 | |
| 5220 | ||
| 5221 | IF VN_error_ count >= C N_max_erro r_count TH EN -- CCR 2152 | |
| 5222 | ||
| 5223 | RETURN; - - CCR 2152 | |
| 5224 | ||
| 5225 | EL SE -- CCR 2152 | |
| 5226 | ||
| 5227 | IF C_prsn_ chg_rec%IS OPEN THEN -- CCR 21 52 | |
| 5228 | ||
| 5229 | CLOSE C_ prsn_chg_r ec; -- CC R 2152 | |
| 5230 | ||
| 5231 | END IF; - - CCR 2152 | |
| 5232 | ||
| 5233 | VD_log_dat e := SYSDA TE; | |
| 5234 | ||
| 5235 | ADRMGT.Job _Process_E rr_Sp(PC_j ob_name => SUBSTR(CC _process_n ame,1,60), | |
| 5236 | PD_j ob_error_d ate => VD _log_date, | |
| 5237 | PC_j ob_error_c ode => SUB STR(SQLCOD E,1,60), | |
| 5238 | PC_j ob_error_m essage => SUBSTR('Un known erro r removing person ch ange logs - ' | |
| 5239 | || SQL ERRM,1,200 0), | |
| 5240 | PD_d ate1 => VD _rec_group _date, | |
| 5241 | PC_t ext1 => SU BSTR('Date 1 column c ontains th e daily pr ocess star t date',1, 255)); -- CCR 2152 | |
| 5242 | ||
| 5243 | EN D IF; -- CCR 2152 | |
| 5244 | ||
| 5245 | END; | |
| 5246 | ||
| 5247 | END LOOP ; | |
| 5248 | ||
| 5249 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 5250 | -- * Proce ss complet ion inform ation | |
| 5251 | -- ******* ********** ********** ********** ********** ********** ********** ******** | |
| 5252 | ||
| 5253 | BEGIN | |
| 5254 | ||
| 5255 | VD_log _date := S YSDATE; | |
| 5256 | ADRMGT .Job_Proce ss_Log_Sp( PC_job_nam e => SUBST R(CC_proce ss_name,1, 60), | |
| 5257 | PD_job_log _date => V D_log_date , | |
| 5258 | PC_job_sta tus => SUB STR('INFOR MATION - P rocess Sta tistics',1 ,60), | |
| 5259 | PD_date1 = > VD_rec_g roup_date, | |
| 5260 | PC_text1 = > SUBSTR(' Date1 colu mn contain s the dail y process start date ',1,255), | |
| 5261 | PN_numeric 2 => VN_pa ss_count, | |
| 5262 | PC_text2 = > SUBSTR(' Cursor Loo p Count',1 ,255)); | |
| 5263 | ||
| 5264 | VD_log _date := S YSDATE; | |
| 5265 | ADRMGT .Job_Proce ss_Log_Sp( PC_job_nam e => SUBST R(CC_proce ss_name,1, 60), | |
| 5266 | PD_job_log _date => V D_log_date , | |
| 5267 | PC_job_sta tus => SUB STR('INFOR MATION - P rocess Sta tistics',1 ,60), | |
| 5268 | PD_date1 = > VD_rec_g roup_date, | |
| 5269 | PC_text1 = > SUBSTR(' Date1 colu mn contain s the dail y process start date ',1,255), | |
| 5270 | PN_numeric 2 => VN_up date_count , | |
| 5271 | PC_text2 = > SUBSTR(' Deleted Re cords Coun t',1,255)) ; | |
| 5272 | ||
| 5273 | VD_pro cess_end_d ate := SYS DATE; | |
| 5274 | VC_pro cess_durat ion := LTR IM(TO_CHAR (TRUNC((VD _process_e nd_date - VD_process _start_dat e)*24),'00 ')) || ' H rs ' | |
| 5275 | || LTRIM(TO_C HAR(TRUNC( (((VD_proc ess_end_da te - VD_pr ocess_star t_date)*24 )- | |
| 5276 | TRUNC(((VD _process_e nd_date - VD_process _start_dat e)*24))) * 60),'00') ) || ' Min s ' | |
| 5277 | || LTRIM(TO_C HAR(TRUNC( (((VD_proc ess_end_da te - VD_pr ocess_star t_date)*24 *60)- | |
| 5278 | TRUNC(((VD _process_e nd_date - VD_process _start_dat e)*24*60)) ) * 60),'0 0')) || ' Secs'; | |
| 5279 | ||
| 5280 | VD_log _date := S YSDATE; | |
| 5281 | ADRMGT .Job_Proce ss_Log_Sp( PC_job_nam e => SUBST R(CC_proce ss_name,1, 60), | |
| 5282 | PD_job_log _date => V D_log_date , | |
| 5283 | PC_job_sta tus => SUB STR('SUCCE SS - Proce ssing Comp leted',1,6 0), | |
| 5284 | PC_job_log _message = > SUBSTR(' Processing Time: ' | | VC_proce ss_duratio n,1,2000), | |
| 5285 | PD_date1 = > VD_rec_g roup_date, | |
| 5286 | PC_text1 = > SUBSTR(' Date1 colu mn contain s the dail y process start date ',1,255)); | |
| 5287 | ||
| 5288 | EXCEPTIO N | |
| 5289 | ||
| 5290 | WHEN O THERS THEN | |
| 5291 | ||
| 5292 | VD_l og_date := SYSDATE; | |
| 5293 | ADRM GT.Job_Pro cess_Log_S p(PC_job_n ame => SUB STR(CC_pro cess_name, 1,60), | |
| 5294 | PD_job_l og_date = > VD_log_d ate, | |
| 5295 | PC_job_s tatus => S UBSTR('ERR OR - Unkno wn error w riting com pletion in formation. ',1,60), | |
| 5296 | PC_job_l og_message => SUBSTR (SQLERRM,1 ,2000), | |
| 5297 | PD_date1 => VD_rec _group_dat e, | |
| 5298 | PC_text1 => SUBSTR ('Date1 co lumn conta ins the da ily proces s start da te',1,255) ); | |
| 5299 | ||
| 5300 | RETU RN; | |
| 5301 | ||
| 5302 | END; | |
| 5303 | ||
| 5304 | EXCEPTION | |
| 5305 | ||
| 5306 | WHEN OTH ERS THEN | |
| 5307 | ||
| 5308 | ROLLBA CK; | |
| 5309 | ||
| 5310 | VD_log _date := S YSDATE; | |
| 5311 | ADRMGT .Job_Proce ss_Err_Sp( PC_job_nam e => SUBST R(CC_proce ss_name,1, 60), | |
| 5312 | PD_job_err or_date = > VD_log_d ate, | |
| 5313 | PC_job_err or_code => SUBSTR(SQ LCODE,1,60 ), | |
| 5314 | PC_job_err or_message => SUBSTR ('Unknown processing error in procedure Person_Chg _Log_Clean up_Sp.' | |
| 5315 | || SQLERRM,1 ,2000), | |
| 5316 | PD_date1 = > VD_rec_g roup_date, | |
| 5317 | PC_text1 = > SUBSTR(' Date1 colu mn contain s the dail y process start date ',1,255)); | |
| 5318 | ||
| 5319 | VD_log _date := S YSDATE; | |
| 5320 | ADRMGT .Job_Proce ss_Log_Sp( PC_job_nam e => SUBST R(CC_proce ss_name,1, 60), | |
| 5321 | PD_job_log _date => V D_log_date , | |
| 5322 | PC_job_sta tus => SUB STR('ERROR - Unknown processin g error',1 ,60), | |
| 5323 | PC_job_log _message = > SUBSTR(' See error log table for detail s.',1,2000 ), | |
| 5324 | PD_date1 = > VD_rec_g roup_date, | |
| 5325 | PC_text1 = > SUBSTR(' Date1 colu mn contain s the dail y process start date ',1,255)); | |
| 5326 | ||
| 5327 | END Person _Chg_Log_C leanup_Sp; | |
| 5328 | / | |
| 5329 | DROP PROCE DURE ADR.R EBLD_ADR_C OM_MAIL_SE Q_SP; | |
| 5330 | ||
| 5331 | CREATE OR REPLACE PR OCEDURE AD R.REBLD_AD R_COM_MAIL _SEQ_SP | |
| 5332 | IS | |
| 5333 | BEGIN | |
| 5334 | DECLARE | |
| 5335 | ||
| 5336 | sq l_stmt varchar2 (200); | |
| 5337 | er ror_code varchar2 (25); | |
| 5338 | er ror_msg_te xt varchar2 (200); | |
| 5339 | er ror_descr varchar2 (200); | |
| 5340 | ||
| 5341 | BEGIN -- P rocedure B ody Begin | |
| 5342 | sq l_stmt := 'DROP SEQU ENCE COM_M AILING_BAR CODE_S'; | |
| 5343 | DB MS_OUTPUT. PUT_LINE ( sql_stmt); | |
| 5344 | EX ECUTE IMME DIATE sql_ stmt; | |
| 5345 | sq l_stmt := 'CREATE SE QUENCE COM _MAILING_B ARCODE_S'; | |
| 5346 | sq l_stmt := sql_stmt | |' START W ITH 1 '; | |
| 5347 | sq l_stmt := sql_stmt | |' NOMAXVA LUE '; | |
| 5348 | sq l_stmt := sql_stmt | |' MINVALU E 1 '; | |
| 5349 | sq l_stmt := sql_stmt | |' NOCYCLE '; | |
| 5350 | sq l_stmt := sql_stmt | |' CACHE 2 5 '; | |
| 5351 | sq l_stmt := sql_stmt | |' ORDER ' ; | |
| 5352 | DB MS_OUTPUT. PUT_LINE ( sql_stmt); | |
| 5353 | EX ECUTE IMME DIATE sql_ stmt; | |
| 5354 | sq l_stmt := 'GRANT SEL ECT ON CO M_MAILING_ BARCODE_S TO ADR_SEQ _R'; | |
| 5355 | DB MS_OUTPUT. PUT_LINE ( sql_stmt); | |
| 5356 | EX ECUTE IMME DIATE sql_ stmt; | |
| 5357 | ||
| 5358 | ||
| 5359 | EXCEPTIO N -- Beg in Person Trait Exce ption | |
| 5360 | WHEN N OT_LOGGED_ ON THEN | |
| 5361 | BE GIN | |
| 5362 | error_code := SQLCO DE ; | |
| 5363 | error_msg_ text := subst r(SQLERRM, 1,64); | |
| 5364 | error_desc r := 'Not logged in, operation has faile d: '; | |
| 5365 | DBMS_OUTPU T.PUT_LINE (error_de scr); | |
| 5366 | DBMS_OUTPU T.PUT_LINE (error_co de); | |
| 5367 | DBMS_OUTPU T.PUT_LINE (error_ms g_text); | |
| 5368 | EN D; | |
| 5369 | ||
| 5370 | WHEN T IMEOUT_ON_ RESOURCE T HEN | |
| 5371 | BE GIN | |
| 5372 | error_code := SQLCO DE ; | |
| 5373 | error_msg_ text := subst r(SQLERRM, 1,64); | |
| 5374 | error_desc r := 'Reso urce unava ilable, op eration ha s failed: '; | |
| 5375 | DBMS_OUTPU T.PUT_LINE (error_de scr); | |
| 5376 | DBMS_OUTPU T.PUT_LINE (error_co de); | |
| 5377 | DBMS_OUTPU T.PUT_LINE (error_ms g_text); | |
| 5378 | EN D; | |
| 5379 | ||
| 5380 | WHEN O THERS THEN | |
| 5381 | BE GIN | |
| 5382 | error_code := SQLCO DE ; | |
| 5383 | error_msg_ text := subst r(SQLERRM, 1,64); | |
| 5384 | error_desc r := 'Erro r has occu rred, oper ation has failed: '; | |
| 5385 | DBMS_OUTPU T.PUT_LINE (error_de scr); | |
| 5386 | DBMS_OUTPU T.PUT_LINE (error_co de); | |
| 5387 | DBMS_OUTPU T.PUT_LINE (error_ms g_text); | |
| 5388 | EN D; | |
| 5389 | ||
| 5390 | END; -- E nd Person Trait PL/S QL Block | |
| 5391 | ||
| 5392 | ||
| 5393 | END REBLD_ ADR_COM_MA IL_SEQ_SP; | |
| 5394 | / | |
| 5395 | DROP PROCE DURE ADR.U PD_QRTZTRG _CLOCK_ST_ TIME_SP; | |
| 5396 | ||
| 5397 | CREATE OR REPLACE PR OCEDURE AD R.UPD_QRTZ TRG_CLOCK_ ST_TIME_SP ( | |
| 5398 | p_in_nu m_days IN NUMBER, | |
| 5399 | p_in_nu m_hours IN NUMBER, | |
| 5400 | p_in_vp id IN VARCHAR 2, | |
| 5401 | p_in_tr igger_nm IN VARCHAR 2, | |
| 5402 | p_out_n um_updated OUT NUM BER, | |
| 5403 | p_out_e rr_msg OUT V ARCHAR2) | |
| 5404 | IS | |
| 5405 | ||
| 5406 | -- **** ********** ********** ********** ********** ********** ********** ********** ********** ***** | |
| 5407 | -- * Pr ocedure: U PD_QRTZTRG _CLOCK_ST_ TIME_SP | |
| 5408 | -- * | |
| 5409 | -- * | |
| 5410 | -- * D escription : - This p rocedure w ill be use to update the start time of a ny clock t rigger | |
| 5411 | -- * in QRT Z_TRIGGER table to m ature the clock. Thi s procedur e will inv oke by | |
| 5412 | -- * clockTr iggerBatch Process fo r non prod uciton DBs . | |
| 5413 | -- * Pa rameters: | |
| 5414 | -- * | |
| 5415 | -- * p i_in_num_d ays Day whe n trigger is going t o expire. | |
| 5416 | -- * p i_in_num_h ours Hours wh en trigger is going to fire. I t counts h ours from midnight. | |
| 5417 | -- * p i_in_vpid VPID_VALUE - for whi ch trigger time will change. | |
| 5418 | -- * p i_in_Trigg er_nm Name o f the trig ger. | |
| 5419 | -- * p _out_num_u pdated N umber of r ows update d | |
| 5420 | -- * p _out_err_m sg Error message/I nfo messag e | |
| 5421 | -- * | |
| 5422 | -- Crea ted Date C reated By | |
| 5423 | -- ==== ========== ========== ========== ========== ========== ========== ========== = | |
| 5424 | -- 04/2 5/2017 Mita Panda | |
| 5425 | -- | |
| 5426 | --***** ********** ********** ********** ********** ********** ********** ********** ********** *** | |
| 5427 | --- loc al variabl es | |
| 5428 | v_vpid PERSON.VPI D_VALUE%TY PE; | |
| 5429 | v_start _time NUMB ER; | |
| 5430 | v_perso n_id NUMBE R; | |
| 5431 | v_trigg er_name QRTZ_TRI GGERS.TRIG GER_NAME%T YPE; | |
| 5432 | v_new_s tart_time NUMBER; | |
| 5433 | v_new_d ate VARCH AR2 (60); | |
| 5434 | e_no_da ta_found EXCEPTIO N; | |
| 5435 | BEGIN | |
| 5436 | BEGIN | |
| 5437 | SELE CT person_ id | |
| 5438 | IN TO v_perso n_id | |
| 5439 | FR OM person | |
| 5440 | WHE RE vpid_va lue = p_in _vpid; | |
| 5441 | ||
| 5442 | EXCEPTI ON | |
| 5443 | WHEN NO_DATA_F OUND | |
| 5444 | THEN | |
| 5445 | ||
| 5446 | - -DBMS_OUTP UT.PUT_LIN E('This VP ID does no t exists i n Person t able' ); | |
| 5447 | R AISE e_no_ data_found ; | |
| 5448 | END; | |
| 5449 | ||
| 5450 | ||
| 5451 | --- Set the trigg er name | |
| 5452 | ||
| 5453 | v_trigg er_name := v_person_ id || p_in _trigger_n m; | |
| 5454 | ||
| 5455 | --Set t he trigger start tim e | |
| 5456 | v_start _time := | |
| 5457 | ( TRUNC (SY SDATE + p_ in_num_day s) | |
| 5458 | + p_in_num_ hours / 24 | |
| 5459 | - TO_DATE ( '01011970' , 'DDMMYYY Y')) | |
| 5460 | * 60 | |
| 5461 | * 60 | |
| 5462 | * 24 | |
| 5463 | * 1000; | |
| 5464 | ||
| 5465 | UPDATE qrtz_trigg ers | |
| 5466 | SET START_TIME = v_start _time, NEX T_FIRE_TIM E = v_star t_time | |
| 5467 | WHERE trigger_na me = v_tri gger_name; | |
| 5468 | ||
| 5469 | p_out_n um_updated := SQL%RO WCOUNT; | |
| 5470 | ||
| 5471 | ||
| 5472 | SELECT start_time , | |
| 5473 | TO_CHAR ( | |
| 5474 | TO_DA TE ('1970- 01-01', 'y yyy-mm-dd hh:mi:ss') | |
| 5475 | + (star t_TIME / 8 6400000), | |
| 5476 | 'yyyy-m m-dd hh24: mi:ss am') | |
| 5477 | INTO v_new_star t_time, v_ new_date | |
| 5478 | FROM QRTZ_TRIGG ERS | |
| 5479 | WHERE trigger_na me = v_tri gger_name; | |
| 5480 | ||
| 5481 | --DBMS_ OUTPUT.PUT _LINE(' TR IGGER NEW_ DATE_TIME: - '||v_new _date||', NEW_START_ TIME:-'||v _new_start _time); | |
| 5482 | ||
| 5483 | p_out_e rr_msg := | |
| 5484 | ' No errors, For VPID: - ' | |
| 5485 | || p _in_vpid | |
| 5486 | || ' , For Trig ger:-' | |
| 5487 | || v _trigger_n ame | |
| 5488 | || ' the NEW_D ATE_TIME:- ' | |
| 5489 | || v _new_date; | |
| 5490 | COMMIT; | |
| 5491 | ||
| 5492 | EXCEPTION | |
| 5493 | ||
| 5494 | WHEN e_ no_data_fo und | |
| 5495 | THEN | |
| 5496 | p_ou t_err_msg := 'This V PID does n ot exists in Person table'; | |
| 5497 | p_ou t_num_upda ted := 0; | |
| 5498 | WHEN NO _DATA_FOUN D | |
| 5499 | ||
| 5500 | THEN | |
| 5501 | ---D BMS_OUTPUT .PUT_LINE( 'No trigge r found fo r this VPI D '||v_vpi d||', Chec k may be t he trigger already f ired.'); | |
| 5502 | p_ou t_num_upda ted := 0; | |
| 5503 | p_ou t_err_msg := | |
| 5504 | ' No trigger found for this VPID in QRTZ_T RIGGERS ta ble.'; | |
| 5505 | WHEN OT HERS | |
| 5506 | THEN | |
| 5507 | -- DBMS_OUTPU T.PUT_LINE (sqlcode|| substr(sql errm,1,100 )); | |
| 5508 | ||
| 5509 | p_ou t_num_upda ted := 0; | |
| 5510 | p_ou t_err_msg := SQLCODE || SUBSTR (SQLERRM, 1, 100); | |
| 5511 | END UPD_QR TZTRG_CLOC K_ST_TIME_ SP; | |
| 5512 | / | |
| 5513 | ||
| 5514 | ||
| 5515 | CREATE OR REPLACE PU BLIC SYNON YM UPD_QRT ZTRG_CLOCK _ST_TIME_S P FOR ADR. UPD_QRTZTR G_CLOCK_ST _TIME_SP; | |
| 5516 | ||
| 5517 | ||
| 5518 | GRANT EXEC UTE ON ADR .UPD_QRTZT RG_CLOCK_S T_TIME_SP TO EEUSR; | |
| 5519 | DROP PROCE DURE ADR.W KF_CASE_H_ DELETE_SP; | |
| 5520 | ||
| 5521 | CREATE OR REPLACE PR OCEDURE AD R.WKF_CASE _H_DELETE_ SP | |
| 5522 | IS | |
| 5523 | ||
| 5524 | ||
| 5525 | ||
| 5526 | CURSOR c _wkf IS S ELECT WKF_ CASE_H.wkf _case_id | |
| 5527 | fro m ADR.wkf_ case_H | |
| 5528 | wher e WKF_CASE _H.transac tion_type_ code = 'D' | |
| 5529 | AND WK F_CASE_H.W KF_CASE_TY PE_ID = 16 16295; | |
| 5530 | ||
| 5531 | sql_stmt string(51 2); | |
| 5532 | v_cnt_wk f number(2 0); | |
| 5533 | VD_log_d ate D ATE; | |
| 5534 | VD_rec_g roup_date D ATE; | |
| 5535 | VC_proce ss_name V ARCHAR2(60 ) := 'ADR WKF_CASE_H DELETE'; | |
| 5536 | VN_error _recs_coun t N UMBER := 0 ; | |
| 5537 | BEGIN | |
| 5538 | se lect coun t(wkf_case _id) | |
| 5539 | in to v_cnt_w kf | |
| 5540 | fr om wkf_cas e_H | |
| 5541 | wh ere transa ction_type _code = 'D ' | |
| 5542 | AN D WKF_CASE _TYPE_ID = 1616295; | |
| 5543 | if v_cnt_wkf > 0 THEN | |
| 5544 | FOR this _sql in c _wkf LOOP | |
| 5545 | sql_ stmt := ' DELETE FRO M ADR.WKF_ CASE_ASSIG NMENT_H W HERE WKF_C ASE_ID = ' ||this_sq l.WKF_CASE _ID; | |
| 5546 | EXEC UTE IMMEDI ATE sql_st mt; | |
| 5547 | sql_ stmt := ' DELETE FRO M ADR.WKF_ CASE_COMME NTS_H WHE RE WKF_CAS E_ID = ' | |this_sql. WKF_CASE_I D; | |
| 5548 | EXEC UTE IMMEDI ATE sql_st mt; | |
| 5549 | sql_ stmt := ' DELETE FRO M ADR.WKF_ CASE_STATU S_DETAIL_H WHERE W KF_CASE_ID = ' ||thi s_sql.WKF_ CASE_ID; | |
| 5550 | EXEC UTE IMMEDI ATE sql_st mt; | |
| 5551 | sql_ stmt := ' DELETE FRO M ADR.WKF_ MESSAGING_ CASE_H W HERE WKF_C ASE_ID = ' ||this_sq l.WKF_CASE _ID; | |
| 5552 | EXEC UTE IMMEDI ATE sql_st mt; | |
| 5553 | sql_ stmt := ' DELETE FRO M ADR.WKF_ CASE_H W HERE WKF_C ASE_ID = ' ||this_sq l.WKF_CASE _ID; | |
| 5554 | EXEC UTE IMMEDI ATE sql_st mt; | |
| 5555 | commi t; | |
| 5556 | END LOOP; | |
| 5557 | END IF; | |
| 5558 | EXCE PTION | |
| 5559 | WH EN NO_DATA _FOUND THE N | |
| 5560 | NULL; | |
| 5561 | WH EN OTHERS THEN | |
| 5562 | VN_error_r ecs_count := VN_erro r_recs_cou nt + 1; | |
| 5563 | ROLLBACK; | |
| 5564 | VD_log_dat e := SYSDA TE; | |
| 5565 | ADRMGT.Job _Process_E rr_Sp(PC_j ob_name => SUBSTR(VC _process_n ame,1,60), | |
| 5566 | PD_j ob_error_d ate => VD _log_date, | |
| 5567 | PC_j ob_error_c ode => SUB STR(SQLCOD E,1,60), | |
| 5568 | PC_j ob_error_m essage => SUBSTR('Un known erro r while de leting fro m ADR.Addr ess row.' | |
| 5569 | || SQL ERRM,1,200 0), | |
| 5570 | PD_d ate1 => VD _rec_group _date, | |
| 5571 | PC_t ext1 => SU BSTR('Date 1 column c ontains th e daily pr ocess star t date',1, 255) | |
| 5572 | ); | |
| 5573 | END WKF_CA SE_H_DELET E_SP; | |
| 5574 | / |
Araxis Merge (but not the data content of this report) is Copyright © 1993-2016 Araxis Ltd (www.araxis.com). All rights reserved.