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