07_PKB_P133_F13301_STA_log

You might also like

Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 26

SQL> --------------------------------------------------------

SQL> -- File created - 2019-09-16


SQL> -- Created by: INDRA
SQL> --------------------------------------------------------
SQL>
SQL> SET TIMI ON
SQL> SET ECHO ON
SQL> SET FEEDB ON
SQL> DEFINE var1 = "TDMI_STA.";
SQL> SPOOL 07_PKB_P133_F13301_STA_LOG.log;
SQL>
SQL> --------------------------------------------------------
SQL> -- DDL for Package Body PKG_P133_13301_RENGAS_WS
SQL> --------------------------------------------------------
SQL> create or replace PACKAGE BODY &var1."PKG_P133_13301_RENGAS_WS" AS
2
3 /* ------------------------------
4 Global Variables Declaration
5 ------------------------------ */
6 vgID_PROCESS_EXEC_LOG NUMBER;
7 vgID_user NUMBER;
8 vgID_PROC NUMBER;
9 vgORIGEM VARCHAR(1334):= 'PKG_P133_13301_RENGAS_WS';
10 vgID_SOURCE NUMBER;
11 vgDATE_CONTEXT DATE;
12
13 vgID_SOURCE_EXEC_LOG NUMBER;
14 vgROWS_COLLECTED NUMBER;
15 vgROWS_PROCESSED NUMBER;
16 vgDATE_TIME_SS_MASK VARCHAR2(50) := 'YYYY-MM-DD"T"HH24:MI:SS';
17 vgID_TEMPLATE_EXEC_LOG NUMBER;
18
19 vgDATE_MASK VARCHAR2(10) := 'DD/MM/YYYY';
20 vgDATE_MASK1 VARCHAR2(10) := 'YYYY-MM-DD';
21 vgDATE_TIME_MASK0 VARCHAR2(32) := 'DD/MM/YYYY HH24:MI';
22 vgDATE_TIME_MASK1 VARCHAR2(32) := 'YYYY-MM-DD HH24:MI:SS';
23 vgDATE_TIME_MASK VARCHAR(30) := 'YYYY-MM-DD"T"HH24:MI.ff3"Z"';
24 --vgDATE_TIME_MASK2 VARCHAR(35) := 'YYYY-MM-DD"T"HH24:MI:SS.ff3"Z"';
25 vgNUMBER_MASK VARCHAR2(50) :=
'999999999999999.99999999999999999999999999999';
26 vgNUMBER_MASK_SCI VARCHAR(50) := '9.99999999999999999999EEEE';
27
28 vgDATE_MASK6 VARCHAR2(50) := 'YYYY-MON-DD"T"HH24:MI:SSTZH:TZM';
29 vgDATE_MASK5 VARCHAR2(50) := 'YYYY-MM-DD"T"HH24:MI:SSTZH:TZM';
30 vgDATE_MASK2 VARCHAR2(20) := 'YYYYMMDDHH24TZH:TZM';
31 vgDATE_MASK3 VARCHAR2(10) := 'YYYYMMDD';
32 vgDATE_MASK4 VARCHAR2(10) := 'YYYY-MM-DD';
33
34 -- -----------------------------------------------------------------
35 -- Autor : INDRA
36 -- Date : 20181119
37 -- Description: Load Global Parameters
38 -- ----------------------------------------------------------------
39
40 PROCEDURE LOAD_GLOBAL_VALUES(iLOG_PROC IN NUMBER, iPROC IN NUMBER, iuser IN
NUMBER, iSOURCE IN NUMBER, iDATA IN DATE, oRESULT_OUT OUT NUMBER) AS
41 BEGIN
42
43 vgID_PROCESS_EXEC_LOG := iLOG_PROC;
44 vgID_SOURCE:= iSOURCE;
45 vgID_user := iuser;
46 vgID_PROC :=iPROC;
47 vgDATE_CONTEXT := iDATA;
48 oRESULT_OUT := 0;
49
50 EXCEPTION
51 WHEN OTHERS THEN
52
53 PKG_LOG.INSERT_DETAIL_EXEC_LOG( iLOG_PROC, vgID_TEMPLATE_EXEC_LOG,
vgID_SOURCE_EXEC_LOG, vgORIGEM || '.LOAD_GLOBAL_VALUES', 'ERROR - Not expected',
'ERROR', iuser, null,SQLCODE, SUBSTR(SQLERRM, 1, 4000), CONCAT(CONCAT('ERROR_STACK:
',DBMS_UTILITY.FORMAT_ERROR_STACK), CONCAT('. ERROR_BACKTRACE: ',
DBMS_UTILITY.FORMAT_ERROR_BACKTRACE)));
54 oRESULT_OUT := 1;
55
56 END LOAD_GLOBAL_VALUES;
57
58 -- -----------------------------------------------------------------
59 -- Autor : INDRA
60 -- Date : 20181119
61 -- Description: Master Process
62 -- ----------------------------------------------------------------
63 PROCEDURE MASTER_PROCESS(iINPUT TP_TAB_P133_13301_RENGAS_WS, iID_PROCESS_EXEC
IN NUMBER, iID_SOURCE_EXEC IN NUMBER, iPROC IN NUMBER, iuser IN NUMBER, iSOURCE IN
NUMBER, iDATA IN DATE, iCOLLECTED_DATA_FROM IN DATE, iCOLLECTED_DATA_TO IN DATE,
oRESULT_OUT OUT NUMBER) AS
64 vRESULT_OUT NUMBER;
65 vINPUT_DATA VARCHAR2(2048) := 'ID_PROCESS_EXEC: ' || iID_PROCESS_EXEC
|| ', ID PROC: ' || iPROC || ', user: ' || iuser || ', ID_SOURCE: ' || iSOURCE ||
', COLLECTED_DATA_FROM: ' || iCOLLECTED_DATA_FROM || ', To: ' ||
iCOLLECTED_DATA_TO;
66 vORIGEM VARCHAR(200) := vgORIGEM || '.MASTER_PROCESS';
67 vCHECK_CONTEXT NUMBER;
68 vCONTEXT_RESULT_CODE NUMBER;
69 BEGIN
70 IF iID_SOURCE_EXEC IS NULL THEN
71 --Insert log into LOG_SOURCE table
72 PKG_LOG.INSERT_SOURCE_LOG(iID_PROCESS_EXEC,
iSOURCE ,iuser,iCOLLECTED_DATA_FROM, iCOLLECTED_DATA_TO, null,
vgID_SOURCE_EXEC_LOG);
73 ELSE
74 vgID_SOURCE_EXEC_LOG := iID_SOURCE_EXEC;
75 END IF;
76
77 vRESULT_OUT := 1;
78 vCHECK_CONTEXT := 1;
79 vCONTEXT_RESULT_CODE := 0;
80
81 SELECT NVL(ID_TEMPLATE_EXEC_LOG, 1) INTO vgID_TEMPLATE_EXEC_LOG FROM
TDMI_STA.LOG_PROCESS_EXEC WHERE ID = iID_PROCESS_EXEC;
82
83 --Insert a INFO log into LOG_DETAIL_EXEC table
84 PKG_LOG.INSERT_DETAIL_EXEC_LOG (iID_PROCESS_EXEC,
vgID_TEMPLATE_EXEC_LOG, vgID_SOURCE_EXEC_LOG, vORIGEM, 'Start Source Process',
'INFO', iuser, vINPUT_DATA, null ,null,null);
85
86 -- load global parameters
87 LOAD_GLOBAL_VALUES(iID_PROCESS_EXEC, iPROC, iuser, iSOURCE, iDATA,
vRESULT_OUT);
88
89 IF vRESULT_OUT = 0 THEN
90 -- STG Process
91 STG_INSERT_DATA (iINPUT, vRESULT_OUT);
92
93 IF vRESULT_OUT = 0 THEN
94 ODS_PROCESS (vRESULT_OUT);
95 END IF;
96 END IF;
97
98 oRESULT_OUT := vRESULT_OUT;
99
100 IF oRESULT_OUT = 1 THEN
101 --remove from context
102 --TDMI_STA.PKG_P133_CTX.REMOVE_CTX(iID_PROCESS_EXEC,
vgID_TEMPLATE_EXEC_LOG, vgID_SOURCE_EXEC_LOG, iuser, iSOURCE, vgDATE_CONTEXT, NULL,
vCONTEXT_RESULT_CODE);
103
104 -- Insert error msg
105 PKG_LOG.UPDATE_SOURCE_LOG (vgID_SOURCE_EXEC_LOG,
vgROWS_COLLECTED, vgROWS_PROCESSED, iuser, null,0);
106 PKG_LOG.INSERT_DETAIL_EXEC_LOG( iID_PROCESS_EXEC,
vgID_TEMPLATE_EXEC_LOG, vgID_SOURCE_EXEC_LOG, vORIGEM, 'ERROR - End source process
with error', 'ERROR', iuser, vINPUT_DATA,null, null, null);
107 ELSIF (oRESULT_OUT = 0) THEN
108 --Update log into LOG_SOURCE table
109 PKG_LOG.UPDATE_SOURCE_LOG (vgID_SOURCE_EXEC_LOG,
vgROWS_COLLECTED, vgROWS_PROCESSED, iuser, null,1);
110
111 --Insert a INFO log into LOG_DETAIL_EXEC table
112 PKG_LOG.INSERT_DETAIL_EXEC_LOG (iID_PROCESS_EXEC,
vgID_TEMPLATE_EXEC_LOG, vgID_SOURCE_EXEC_LOG, vORIGEM, 'End Source Process',
'INFO', iuser, vINPUT_DATA, null ,null, null);
113 END IF;
114
115 EXCEPTION
116 WHEN OTHERS THEN
117 PKG_LOG.INSERT_DETAIL_EXEC_LOG( iID_PROCESS_EXEC,
vgID_TEMPLATE_EXEC_LOG, vgID_SOURCE_EXEC_LOG, vORIGEM, 'ERROR - Not expected',
'ERROR', iuser, vINPUT_DATA,SQLCODE, SUBSTR(SQLERRM, 1, 4000),
CONCAT(CONCAT('ERROR_STACK: ',DBMS_UTILITY.FORMAT_ERROR_STACK), CONCAT('.
ERROR_BACKTRACE: ', DBMS_UTILITY.FORMAT_ERROR_BACKTRACE)));
118 --PKG_LOG.UPDATE_SOURCE_LOG (vgID_SOURCE_EXEC_LOG,
vgROWS_COLLECTED, vgROWS_PROCESSED, iuser, null,0);
119 oRESULT_OUT := 1;
120 ROLLBACK;
121
122 END MASTER_PROCESS;
123
124 -- -----------------------------------------------------------------
125 -- Autor : INDRA
126 -- Date : 20181119
127 -- Description: Insert Data to STG
128 -- ----------------------------------------------------------------
129 PROCEDURE STG_INSERT_DATA(iINPUT TP_TAB_P133_13301_RENGAS_WS, oRESULT_OUT OUT
NUMBER) AS
130
131 PRAGMA AUTONOMOUS_TRANSACTION;
132 vORIGEM VARCHAR(200) := vgORIGEM || '.STG_INSERT_DATA';
133 bulk_errors EXCEPTION;
134 PRAGMA EXCEPTION_INIT(bulk_errors, -24381);
135
136
137 BEGIN
138
139 vgROWS_COLLECTED := 0;
140
141 IF iINPUT.FIRST IS NULL THEN
142 --Insert a INFO log into LOG_DETAIL_EXEC table
143 PKG_LOG.INSERT_DETAIL_EXEC_LOG (vgID_PROCESS_EXEC_LOG,
vgID_TEMPLATE_EXEC_LOG, vgID_SOURCE_EXEC_LOG, vORIGEM, 'End STG Process - No data
found to Process', 'ALERT', vgID_user, null, null ,null,null);
144 ELSE
145 BEGIN
146 --Insert a INFO log into LOG_DETAIL_EXEC table
147
148 PKG_LOG.INSERT_DETAIL_EXEC_LOG (vgID_PROCESS_EXEC_LOG,
vgID_TEMPLATE_EXEC_LOG, vgID_SOURCE_EXEC_LOG, vORIGEM, 'STG Processing', 'INFO',
vgID_user, null, null ,null,null);
149
150 -- INSERT ALL DATA INTO STG TABLE
151 FORALL i IN iINPUT.first .. iINPUT.last
152 INSERT INTO TDMI_STA.DT_STG_P133_13301_RENGAS_WS
153 (
154 "ID_EXEC",
155 "ID_EXEC_SOURCE",
156 IDENTIFICATION,
157 VERSION,
158 TYPE,
159 CREATION_DATETIME,
160 CONTRACT_REF,
161 ISSUER_ID,
162 ISSUER_MARKET_CODE,
163 RECIPIENT_ID,
164 RECIPIENT_MARKET_CODE,
165 APPLICATION_CTX,
166 METER_ID,
167 MEASURE_UNIT_CODE,
168 TIME_INTERVAL,
169 DATE_UTC,
170 DIRECTION_CODE,
171 STATUS_CODE,
172 QUANTITY_AMOUNT,
173 "STG_LOAD_INDICATOR",
174 "ODS_LOAD_INDICATOR",
175 "HIST_LOAD_INDICATOR",
176 "MFK",
177 "CREATED_BY",
178 "CREATED_ON",
179 "CREATED_PROCESS",
180 "UPDATED_BY",
181 "UPDATED_ON",
182 "UPDATED_PROCESS"
183 )
184 VALUES
185 (
186 vgID_PROCESS_EXEC_LOG,
187 vgID_SOURCE_EXEC_LOG,
188 iINPUT(i).IDENTIFICATION,
189 iINPUT(i)."VERSION",
190 iINPUT(i)."TYPE",
191 iINPUT(i).CREATION_DATETIME,
192 iINPUT(i).CONTRACT_REF,
193 iINPUT(i).ISSUER_ID,
194 iINPUT(i).ISSUER_MARKET_CODE,
195 iINPUT(i).RECIPIENT_ID,
196 iINPUT(i).RECIPIENT_MARKET_CODE,
197 iINPUT(i).APPLICATION_CTX,
198 iINPUT(i).METER_ID,
199 iINPUT(i).MEASURE_UNIT_CODE,
200 iINPUT(i).TIME_INTERVAL,
201 iINPUT(i).DATE_UTC,
202 iINPUT(i).DIRECTION_CODE,
203 iINPUT(i).STATUS_CODE,
204 iINPUT(i).QUANTITY_AMOUNT,
205 1,
206 0,
207 0,
208 0,
209 vgID_user,
210 SYSTIMESTAMP,
211 vgID_PROC,
212 vgID_user,
213 SYSTIMESTAMP,
214 vgID_PROC
215 );
216 COMMIT;
217 END;
218
219 END IF;
220 oRESULT_OUT := 0;
221
222 vgROWS_COLLECTED := iINPUT.COUNT;
223
224 -- IF SOMETHING FAILS, ALL IS CANCELED AND RETURN 1
225 EXCEPTION
226 WHEN bulk_errors THEN
227 oRESULT_OUT := 1;
228 PKG_LOG.INSERT_DETAIL_EXEC_LOG( vgID_PROCESS_EXEC_LOG,
vgID_TEMPLATE_EXEC_LOG,vgID_SOURCE_EXEC_LOG, vORIGEM , 'ERROR - STG Process error
- Bulk Error', 'ERROR', vgID_user, null,SQLCODE, SUBSTR(SQLERRM, 1, 4000),
CONCAT(CONCAT('ERROR_STACK: ',DBMS_UTILITY.FORMAT_ERROR_STACK), CONCAT('.
ERROR_BACKTRACE: ', DBMS_UTILITY.FORMAT_ERROR_BACKTRACE)));
229 WHEN OTHERS THEN
230 oRESULT_OUT := 1;
231 PKG_LOG.INSERT_DETAIL_EXEC_LOG( vgID_PROCESS_EXEC_LOG,
vgID_TEMPLATE_EXEC_LOG,vgID_SOURCE_EXEC_LOG, vORIGEM , 'ERROR - STG Process
error', 'ERROR', vgID_user, null,SQLCODE, SUBSTR(SQLERRM, 1, 4000),
CONCAT(CONCAT('ERROR_STACK: ',DBMS_UTILITY.FORMAT_ERROR_STACK), CONCAT('.
ERROR_BACKTRACE: ', DBMS_UTILITY.FORMAT_ERROR_BACKTRACE)));
232 ROLLBACK;
233 END STG_INSERT_DATA;
234
235 -- -----------------------------------------------------------------
236 -- Autor : INDRA
237 -- Date : 20181119
238 -- Description: ODS_PROCESS
239 -- ----------------------------------------------------------------
240 PROCEDURE ODS_PROCESS(oRESULT_OUT OUT NUMBER) AS
241 PRAGMA AUTONOMOUS_TRANSACTION;
242
243 CURSOR CCHAVE_PROCESSAMENTO IS
244 SELECT DISTINCT ID_EXEC,
245 ID_EXEC_SOURCE,
246 DATE_UTC
247 FROM DT_STG_P133_13301_RENGAS_WS -- base de dados STA
248 WHERE STG_LOAD_INDICATOR = 1
249 AND ODS_LOAD_INDICATOR = 0
250 AND MFK = 0;
251
252 iID_EXEC NUMBER;
253 iID_EXEC_SOURCE NUMBER;
254 vData VARCHAR2(125);
255 vINPUT_DATA VARCHAR2(1334) := 'Source: ' || vgID_SOURCE;
256 vORIGEM VARCHAR(200) := vgORIGEM || '.ODS_PROCESS';
257 vAUX_RESULT_OUT NUMBER;
258 vAUX_ROWS_PROCESSED NUMBER;
259 -- vOra NUMBER;
260
261 BEGIN
262 oRESULT_OUT := 0;
263 vAUX_RESULT_OUT := 0;
264 vAUX_ROWS_PROCESSED := 0;
265 --Start ODS Process
266 --Insert a INFO log into LOG_DETAIL_EXEC table
267 PKG_LOG.INSERT_DETAIL_EXEC_LOG (vgID_PROCESS_EXEC_LOG,
vgID_TEMPLATE_EXEC_LOG, vgID_SOURCE_EXEC_LOG, vORIGEM, 'ODS Processing', 'INFO',
vgID_user, vINPUT_DATA, null ,null,null);
268
269
270 OPEN cCHAVE_PROCESSAMENTO;
271 LOOP
272 FETCH cCHAVE_PROCESSAMENTO INTO iID_EXEC, iID_EXEC_SOURCE, vData;
273
274 EXIT WHEN cCHAVE_PROCESSAMENTO%NOTFOUND;
275
276 ODS_INSERT_DATA (iID_EXEC, iID_EXEC_SOURCE, vgID_SOURCE, vData,
oRESULT_OUT);
277
278 vAUX_ROWS_PROCESSED := vAUX_ROWS_PROCESSED + vgROWS_PROCESSED;

279
280
281 IF vAUX_RESULT_OUT = 1 THEN
282 oRESULT_OUT := 1;
283 ELSE vAUX_RESULT_OUT := oRESULT_OUT;
284
285 END IF;
286
287 END LOOP;
288 CLOSE cCHAVE_PROCESSAMENTO;
289
290 vgROWS_PROCESSED := vAUX_ROWS_PROCESSED;
291 --Insert a INFO log into LOG_DETAIL_EXEC table
292 PKG_LOG.INSERT_DETAIL_EXEC_LOG (vgID_PROCESS_EXEC_LOG,
vgID_TEMPLATE_EXEC_LOG, vgID_SOURCE_EXEC_LOG, vORIGEM, 'End ODS process', 'INFO',
vgID_user, vINPUT_DATA, null ,null,null);
293
294
295 EXCEPTION
296 WHEN OTHERS THEN
297 PKG_LOG.INSERT_DETAIL_EXEC_LOG( vgID_PROCESS_EXEC_LOG,
vgID_TEMPLATE_EXEC_LOG, vgID_SOURCE_EXEC_LOG, vORIGEM, 'ERROR - ODS process
error.', 'ERROR', vgID_user, vINPUT_DATA , SQLCODE, SUBSTR(SQLERRM, 1, 4000),
CONCAT(CONCAT('ERROR_STACK: ',DBMS_UTILITY.FORMAT_ERROR_STACK), CONCAT('.
ERROR_BACKTRACE: ', DBMS_UTILITY.FORMAT_ERROR_BACKTRACE)));
298 oRESULT_OUT := 1;
299 ROLLBACK;
300 END ODS_PROCESS;
301
302 -- -----------------------------------------------------------------
303 -- Autor : INDRA
304 -- Date : 20181119
305 -- Description: LOAD DATA TO ODS
306 -- ----------------------------------------------------------------
307 PROCEDURE ODS_INSERT_DATA(iID_EXEC IN NUMBER, iID_EXEC_SOURCE IN NUMBER,
iID_SOURCE IN NUMBER, iData IN VARCHAR2, oRESULT_OUT OUT NUMBER) -- iOra IN
NUMBER,
308 AS PRAGMA AUTONOMOUS_TRANSACTION;
309
310 vINPUT_DATA VARCHAR2(2048) := 'TEST Execution ID: ' || iID_EXEC || ' -
Execution Source ID: ' || iID_EXEC_SOURCE || ' - Source: ' || iID_SOURCE || ' -
Date: ' || iData; -- || ' - Hora: ' || iOra;
311
312 VEXIT_NOW exception;
313 vORIGEM VARCHAR(200) := vgORIGEM || '.ODS_INSERT_DATA';
314 vDATE DATE;
315
316 oRESULT_CODE NUMBER;
317 oRESULT_MSG VARCHAR2(1000);
318
319 BEGIN
320
321 oRESULT_OUT := 0;
322
323 vDATE := TO_DATE(iData,vgDATE_MASK1);
324
325 -- Delete existing data for same parameters
326 DELETE FROM TDMI_ODS.DT_P133_13301_RENGAS_WS
327 WHERE DATE_UTC = vDATE;
328
329 COMMIT;
330
331 -- Bulk insert data
332 INSERT INTO TDMI_ODS.DT_P133_13301_RENGAS_WS
333 SELECT
334 TDMI_ODS.SEQ_P133_13301_RENGAS_WS.NEXTVAL,
335 IDENTIFICATION,
336 "VERSION",
337 "TYPE",
338 TO_TIMESTAMP(CREATION_DATETIME,'YYYY-MM-DD"T"HH24:MI:SS"Z"'),
339 CONTRACT_REF,
340 ISSUER_ID,
341 ISSUER_MARKET_CODE,
342 RECIPIENT_ID,
343 RECIPIENT_MARKET_CODE,
344 APPLICATION_CTX,
345 METER_ID,
346 (SELECT IDENTIFICATION FROM TDMI_ODS.LOV_REN_GAS_CUI WHERE CUI =
METER_ID),
--LOV_GAS_CUI_ID
347 MEASURE_UNIT_CODE,
348 (SELECT "DEFINITION" FROM TDMI_ODS.LOV_REN_GAS_EDIGAS_CODES WHERE
CODE = MEASURE_UNIT_CODE),
--LOV_EDIGAS_CODES_DEF
349 TIME_INTERVAL,
350 vDATE,
--DATE_UTC
351 (SELECT SUBSTR(TIME_INTERVAL, 12,2) FROM DUAL),
--HOUR_UTC
352 (SELECT GAS_DAY FROM TDMI_ODS.DIM_DATETIME WHERE
TRUNC(DATETIME_UTC,'DD')=vDATE AND HOUR_UTC=(SELECT SUBSTR(TIME_INTERVAL, 12,2)
FROM DUAL)), --GAS_DAY
353 DIRECTION_CODE,
354 (SELECT "DEFINITION" FROM TDMI_ODS.LOV_REN_GAS_EDIGAS_CODES WHERE
CODE = DIRECTION_CODE AND STANDACCDIRTYPELIST='StandardGasDirectionTypeList'),
--DIRECTION
355 STATUS_CODE,
356 (SELECT "DEFINITION" FROM TDMI_ODS.LOV_REN_GAS_EDIGAS_CODES WHERE
CODE = STATUS_CODE AND STANDACCDIRTYPELIST='StandardStatusTypeList'),
--STATUS
357 QUANTITY_AMOUNT,
358 vgID_user, -- created by
359 CURRENT_TIMESTAMP, -- created on
360 vgID_PROC, -- created process
361 vgID_user, -- updated by
362 CURRENT_TIMESTAMP, -- updated on
363 vgID_PROC -- updated process
364 FROM
365 TDMI_STA.DT_STG_P133_13301_RENGAS_WS
366 WHERE ID_EXEC = iID_EXEC
367 AND ID_EXEC_SOURCE = iID_EXEC_SOURCE
368 AND DATE_UTC = iData
369 AND stg_load_indicator = 1
370 AND ods_load_indicator = 0
371 AND MFK = 0;
372
373 vgROWS_PROCESSED := SQL%ROWCOUNT;
374
375 UPDATE TDMI_STA.DT_STG_P133_13301_RENGAS_WS A
376 SET A.ods_load_indicator = 1
377 WHERE A.ID_EXEC = iID_EXEC
378 AND A.ID_EXEC_SOURCE = iID_EXEC_SOURCE
379 AND DATE_UTC = iData;
380
381
382 PKG_LOG.INSERT_DETAIL_EXEC_LOG( vgID_PROCESS_EXEC_LOG,
vgID_TEMPLATE_EXEC_LOG, vgID_SOURCE_EXEC_LOG, vORIGEM, 'vgROWS_PROCESSED - ' ||
vgROWS_PROCESSED, 'DEBUG', vgID_user, vINPUT_DATA, NULL, NULL, NULL);
383
384 --PKG_P133_CTX.INSERT_CTX(iID_SOURCE, oRESULT_CODE, oRESULT_MSG);
385
386 COMMIT;
387 oRESULT_OUT := 0;
388
389 EXCEPTION
390 WHEN OTHERS THEN
391 PKG_LOG.INSERT_DETAIL_EXEC_LOG( vgID_PROCESS_EXEC_LOG,
vgID_TEMPLATE_EXEC_LOG, vgID_SOURCE_EXEC_LOG, vORIGEM, 'ERROR - ODS Processing -
End Insert with Error', 'ERROR', vgID_user, vINPUT_DATA ,SQLCODE, SUBSTR(SQLERRM,
1, 4000), CONCAT(CONCAT('ERROR_STACK: ',DBMS_UTILITY.FORMAT_ERROR_STACK), CONCAT('.
ERROR_BACKTRACE: ', DBMS_UTILITY.FORMAT_ERROR_BACKTRACE)));
392 oRESULT_OUT := 1;
393 ROLLBACK;
394
395 UPDATE TDMI_STA.DT_STG_P133_13301_RENGAS_WS A
396 SET A.MFK = 1
397 WHERE A.ID_EXEC = iID_EXEC
398 AND A.ID_EXEC_SOURCE = iID_EXEC_SOURCE
399 AND DATE_UTC = iData;
400 COMMIT;
401 END ODS_INSERT_DATA;
402
403
404 END PKG_P133_13301_RENGAS_WS;
405
406 /
old:create or replace PACKAGE BODY &var1."PKG_P133_13301_RENGAS_WS" AS

/* ------------------------------
Global Variables Declaration
------------------------------ */
vgID_PROCESS_EXEC_LOG NUMBER;
vgID_user NUMBER;
vgID_PROC NUMBER;
vgORIGEM VARCHAR(1334):= 'PKG_P133_13301_RENGAS_WS';
vgID_SOURCE NUMBER;
vgDATE_CONTEXT DATE;

vgID_SOURCE_EXEC_LOG NUMBER;
vgROWS_COLLECTED NUMBER;
vgROWS_PROCESSED NUMBER;
vgDATE_TIME_SS_MASK VARCHAR2(50) := 'YYYY-MM-DD"T"HH24:MI:SS';
vgID_TEMPLATE_EXEC_LOG NUMBER;

vgDATE_MASK VARCHAR2(10) := 'DD/MM/YYYY';


vgDATE_MASK1 VARCHAR2(10) := 'YYYY-MM-DD';
vgDATE_TIME_MASK0 VARCHAR2(32) := 'DD/MM/YYYY HH24:MI';
vgDATE_TIME_MASK1 VARCHAR2(32) := 'YYYY-MM-DD HH24:MI:SS';
vgDATE_TIME_MASK VARCHAR(30) := 'YYYY-MM-DD"T"HH24:MI.ff3"Z"';
--vgDATE_TIME_MASK2 VARCHAR(35) := 'YYYY-MM-DD"T"HH24:MI:SS.ff3"Z"';
vgNUMBER_MASK VARCHAR2(50) :=
'999999999999999.99999999999999999999999999999';
vgNUMBER_MASK_SCI VARCHAR(50) := '9.99999999999999999999EEEE';

vgDATE_MASK6 VARCHAR2(50) := 'YYYY-MON-DD"T"HH24:MI:SSTZH:TZM';


vgDATE_MASK5 VARCHAR2(50) := 'YYYY-MM-DD"T"HH24:MI:SSTZH:TZM';
vgDATE_MASK2 VARCHAR2(20) := 'YYYYMMDDHH24TZH:TZM';
vgDATE_MASK3 VARCHAR2(10) := 'YYYYMMDD';
vgDATE_MASK4 VARCHAR2(10) := 'YYYY-MM-DD';

-- -----------------------------------------------------------------
-- Autor : INDRA
-- Date : 20181119
-- Description: Load Global Parameters
-- ----------------------------------------------------------------

PROCEDURE LOAD_GLOBAL_VALUES(iLOG_PROC IN NUMBER, iPROC IN NUMBER, iuser IN


NUMBER, iSOURCE IN NUMBER, iDATA IN DATE, oRESULT_OUT OUT NUMBER) AS
BEGIN

vgID_PROCESS_EXEC_LOG := iLOG_PROC;
vgID_SOURCE:= iSOURCE;
vgID_user := iuser;
vgID_PROC :=iPROC;
vgDATE_CONTEXT := iDATA;
oRESULT_OUT := 0;

EXCEPTION
WHEN OTHERS THEN

PKG_LOG.INSERT_DETAIL_EXEC_LOG( iLOG_PROC, vgID_TEMPLATE_EXEC_LOG,


vgID_SOURCE_EXEC_LOG, vgORIGEM || '.LOAD_GLOBAL_VALUES', 'ERROR - Not expected',
'ERROR', iuser, null,SQLCODE, SUBSTR(SQLERRM, 1, 4000), CONCAT(CONCAT('ERROR_STACK:
',DBMS_UTILITY.FORMAT_ERROR_STACK), CONCAT('. ERROR_BACKTRACE: ',
DBMS_UTILITY.FORMAT_ERROR_BACKTRACE)));
oRESULT_OUT := 1;

END LOAD_GLOBAL_VALUES;

-- -----------------------------------------------------------------
-- Autor : INDRA
-- Date : 20181119
-- Description: Master Process
-- ----------------------------------------------------------------
PROCEDURE MASTER_PROCESS(iINPUT TP_TAB_P133_13301_RENGAS_WS, iID_PROCESS_EXEC
IN NUMBER, iID_SOURCE_EXEC IN NUMBER, iPROC IN NUMBER, iuser IN NUMBER, iSOURCE IN
NUMBER, iDATA IN DATE, iCOLLECTED_DATA_FROM IN DATE, iCOLLECTED_DATA_TO IN DATE,
oRESULT_OUT OUT NUMBER) AS
vRESULT_OUT NUMBER;
vINPUT_DATA VARCHAR2(2048) := 'ID_PROCESS_EXEC: ' || iID_PROCESS_EXEC
|| ', ID PROC: ' || iPROC || ', user: ' || iuser || ', ID_SOURCE: ' || iSOURCE ||
', COLLECTED_DATA_FROM: ' || iCOLLECTED_DATA_FROM || ', To: ' ||
iCOLLECTED_DATA_TO;
vORIGEM VARCHAR(200) := vgORIGEM || '.MASTER_PROCESS';
vCHECK_CONTEXT NUMBER;
vCONTEXT_RESULT_CODE NUMBER;
BEGIN
IF iID_SOURCE_EXEC IS NULL THEN
--Insert log into LOG_SOURCE table
PKG_LOG.INSERT_SOURCE_LOG(iID_PROCESS_EXEC,
iSOURCE ,iuser,iCOLLECTED_DATA_FROM, iCOLLECTED_DATA_TO, null,
vgID_SOURCE_EXEC_LOG);
ELSE
vgID_SOURCE_EXEC_LOG := iID_SOURCE_EXEC;
END IF;

vRESULT_OUT := 1;
vCHECK_CONTEXT := 1;
vCONTEXT_RESULT_CODE := 0;
SELECT NVL(ID_TEMPLATE_EXEC_LOG, 1) INTO vgID_TEMPLATE_EXEC_LOG FROM
TDMI_STA.LOG_PROCESS_EXEC WHERE ID = iID_PROCESS_EXEC;

--Insert a INFO log into LOG_DETAIL_EXEC table


PKG_LOG.INSERT_DETAIL_EXEC_LOG (iID_PROCESS_EXEC,
vgID_TEMPLATE_EXEC_LOG, vgID_SOURCE_EXEC_LOG, vORIGEM, 'Start Source Process',
'INFO', iuser, vINPUT_DATA, null ,null,null);

-- load global parameters


LOAD_GLOBAL_VALUES(iID_PROCESS_EXEC, iPROC, iuser, iSOURCE, iDATA,
vRESULT_OUT);

IF vRESULT_OUT = 0 THEN
-- STG Process
STG_INSERT_DATA (iINPUT, vRESULT_OUT);

IF vRESULT_OUT = 0 THEN
ODS_PROCESS (vRESULT_OUT);
END IF;
END IF;

oRESULT_OUT := vRESULT_OUT;

IF oRESULT_OUT = 1 THEN
--remove from context
--TDMI_STA.PKG_P133_CTX.REMOVE_CTX(iID_PROCESS_EXEC,
vgID_TEMPLATE_EXEC_LOG, vgID_SOURCE_EXEC_LOG, iuser, iSOURCE, vgDATE_CONTEXT, NULL,
vCONTEXT_RESULT_CODE);

-- Insert error msg


PKG_LOG.UPDATE_SOURCE_LOG (vgID_SOURCE_EXEC_LOG,
vgROWS_COLLECTED, vgROWS_PROCESSED, iuser, null,0);
PKG_LOG.INSERT_DETAIL_EXEC_LOG( iID_PROCESS_EXEC,
vgID_TEMPLATE_EXEC_LOG, vgID_SOURCE_EXEC_LOG, vORIGEM, 'ERROR - End source process
with error', 'ERROR', iuser, vINPUT_DATA,null, null, null);
ELSIF (oRESULT_OUT = 0) THEN
--Update log into LOG_SOURCE table
PKG_LOG.UPDATE_SOURCE_LOG (vgID_SOURCE_EXEC_LOG,
vgROWS_COLLECTED, vgROWS_PROCESSED, iuser, null,1);

--Insert a INFO log into LOG_DETAIL_EXEC table


PKG_LOG.INSERT_DETAIL_EXEC_LOG (iID_PROCESS_EXEC,
vgID_TEMPLATE_EXEC_LOG, vgID_SOURCE_EXEC_LOG, vORIGEM, 'End Source Process',
'INFO', iuser, vINPUT_DATA, null ,null, null);
END IF;

EXCEPTION
WHEN OTHERS THEN
PKG_LOG.INSERT_DETAIL_EXEC_LOG( iID_PROCESS_EXEC,
vgID_TEMPLATE_EXEC_LOG, vgID_SOURCE_EXEC_LOG, vORIGEM, 'ERROR - Not expected',
'ERROR', iuser, vINPUT_DATA,SQLCODE, SUBSTR(SQLERRM, 1, 4000),
CONCAT(CONCAT('ERROR_STACK: ',DBMS_UTILITY.FORMAT_ERROR_STACK), CONCAT('.
ERROR_BACKTRACE: ', DBMS_UTILITY.FORMAT_ERROR_BACKTRACE)));
--PKG_LOG.UPDATE_SOURCE_LOG (vgID_SOURCE_EXEC_LOG,
vgROWS_COLLECTED, vgROWS_PROCESSED, iuser, null,0);
oRESULT_OUT := 1;
ROLLBACK;

END MASTER_PROCESS;
-- -----------------------------------------------------------------
-- Autor : INDRA
-- Date : 20181119
-- Description: Insert Data to STG
-- ----------------------------------------------------------------
PROCEDURE STG_INSERT_DATA(iINPUT TP_TAB_P133_13301_RENGAS_WS, oRESULT_OUT OUT
NUMBER) AS

PRAGMA AUTONOMOUS_TRANSACTION;
vORIGEM VARCHAR(200) := vgORIGEM || '.STG_INSERT_DATA';
bulk_errors EXCEPTION;
PRAGMA EXCEPTION_INIT(bulk_errors, -24381);

BEGIN

vgROWS_COLLECTED := 0;

IF iINPUT.FIRST IS NULL THEN


--Insert a INFO log into LOG_DETAIL_EXEC table
PKG_LOG.INSERT_DETAIL_EXEC_LOG (vgID_PROCESS_EXEC_LOG,
vgID_TEMPLATE_EXEC_LOG, vgID_SOURCE_EXEC_LOG, vORIGEM, 'End STG Process - No data
found to Process', 'ALERT', vgID_user, null, null ,null,null);
ELSE
BEGIN
--Insert a INFO log into LOG_DETAIL_EXEC table

PKG_LOG.INSERT_DETAIL_EXEC_LOG (vgID_PROCESS_EXEC_LOG,
vgID_TEMPLATE_EXEC_LOG, vgID_SOURCE_EXEC_LOG, vORIGEM, 'STG Processing', 'INFO',
vgID_user, null, null ,null,null);

-- INSERT ALL DATA INTO STG TABLE


FORALL i IN iINPUT.first .. iINPUT.last
INSERT INTO TDMI_STA.DT_STG_P133_13301_RENGAS_WS
(
"ID_EXEC",
"ID_EXEC_SOURCE",
IDENTIFICATION,
VERSION,
TYPE,
CREATION_DATETIME,
CONTRACT_REF,
ISSUER_ID,
ISSUER_MARKET_CODE,
RECIPIENT_ID,
RECIPIENT_MARKET_CODE,
APPLICATION_CTX,
METER_ID,
MEASURE_UNIT_CODE,
TIME_INTERVAL,
DATE_UTC,
DIRECTION_CODE,
STATUS_CODE,
QUANTITY_AMOUNT,
"STG_LOAD_INDICATOR",
"ODS_LOAD_INDICATOR",
"HIST_LOAD_INDICATOR",
"MFK",
"CREATED_BY",
"CREATED_ON",
"CREATED_PROCESS",
"UPDATED_BY",
"UPDATED_ON",
"UPDATED_PROCESS"
)
VALUES
(
vgID_PROCESS_EXEC_LOG,
vgID_SOURCE_EXEC_LOG,
iINPUT(i).IDENTIFICATION,
iINPUT(i)."VERSION",
iINPUT(i)."TYPE",
iINPUT(i).CREATION_DATETIME,
iINPUT(i).CONTRACT_REF,
iINPUT(i).ISSUER_ID,
iINPUT(i).ISSUER_MARKET_CODE,
iINPUT(i).RECIPIENT_ID,
iINPUT(i).RECIPIENT_MARKET_CODE,
iINPUT(i).APPLICATION_CTX,
iINPUT(i).METER_ID,
iINPUT(i).MEASURE_UNIT_CODE,
iINPUT(i).TIME_INTERVAL,
iINPUT(i).DATE_UTC,
iINPUT(i).DIRECTION_CODE,
iINPUT(i).STATUS_CODE,
iINPUT(i).QUANTITY_AMOUNT,
1,
0,
0,
0,
vgID_user,
SYSTIMESTAMP,
vgID_PROC,
vgID_user,
SYSTIMESTAMP,
vgID_PROC
);
COMMIT;
END;

END IF;
oRESULT_OUT := 0;

vgROWS_COLLECTED := iINPUT.COUNT;

-- IF SOMETHING FAILS, ALL IS CANCELED AND RETURN 1


EXCEPTION
WHEN bulk_errors THEN
oRESULT_OUT := 1;
PKG_LOG.INSERT_DETAIL_EXEC_LOG( vgID_PROCESS_EXEC_LOG,
vgID_TEMPLATE_EXEC_LOG,vgID_SOURCE_EXEC_LOG, vORIGEM , 'ERROR - STG Process error
- Bulk Error', 'ERROR', vgID_user, null,SQLCODE, SUBSTR(SQLERRM, 1, 4000),
CONCAT(CONCAT('ERROR_STACK: ',DBMS_UTILITY.FORMAT_ERROR_STACK), CONCAT('.
ERROR_BACKTRACE: ', DBMS_UTILITY.FORMAT_ERROR_BACKTRACE)));
WHEN OTHERS THEN
oRESULT_OUT := 1;
PKG_LOG.INSERT_DETAIL_EXEC_LOG( vgID_PROCESS_EXEC_LOG,
vgID_TEMPLATE_EXEC_LOG,vgID_SOURCE_EXEC_LOG, vORIGEM , 'ERROR - STG Process
error', 'ERROR', vgID_user, null,SQLCODE, SUBSTR(SQLERRM, 1, 4000),
CONCAT(CONCAT('ERROR_STACK: ',DBMS_UTILITY.FORMAT_ERROR_STACK), CONCAT('.
ERROR_BACKTRACE: ', DBMS_UTILITY.FORMAT_ERROR_BACKTRACE)));
ROLLBACK;
END STG_INSERT_DATA;

-- -----------------------------------------------------------------
-- Autor : INDRA
-- Date : 20181119
-- Description: ODS_PROCESS
-- ----------------------------------------------------------------
PROCEDURE ODS_PROCESS(oRESULT_OUT OUT NUMBER) AS
PRAGMA AUTONOMOUS_TRANSACTION;

CURSOR CCHAVE_PROCESSAMENTO IS
SELECT DISTINCT ID_EXEC,
ID_EXEC_SOURCE,
DATE_UTC
FROM DT_STG_P133_13301_RENGAS_WS -- base de dados STA
WHERE STG_LOAD_INDICATOR = 1
AND ODS_LOAD_INDICATOR = 0
AND MFK = 0;

iID_EXEC NUMBER;
iID_EXEC_SOURCE NUMBER;
vData VARCHAR2(125);
vINPUT_DATA VARCHAR2(1334) := 'Source: ' || vgID_SOURCE;
vORIGEM VARCHAR(200) := vgORIGEM || '.ODS_PROCESS';
vAUX_RESULT_OUT NUMBER;
vAUX_ROWS_PROCESSED NUMBER;
-- vOra NUMBER;

BEGIN
oRESULT_OUT := 0;
vAUX_RESULT_OUT := 0;
vAUX_ROWS_PROCESSED := 0;
--Start ODS Process
--Insert a INFO log into LOG_DETAIL_EXEC table
PKG_LOG.INSERT_DETAIL_EXEC_LOG (vgID_PROCESS_EXEC_LOG,
vgID_TEMPLATE_EXEC_LOG, vgID_SOURCE_EXEC_LOG, vORIGEM, 'ODS Processing', 'INFO',
vgID_user, vINPUT_DATA, null ,null,null);

OPEN cCHAVE_PROCESSAMENTO;
LOOP
FETCH cCHAVE_PROCESSAMENTO INTO iID_EXEC, iID_EXEC_SOURCE, vData;

EXIT WHEN cCHAVE_PROCESSAMENTO%NOTFOUND;

ODS_INSERT_DATA (iID_EXEC, iID_EXEC_SOURCE, vgID_SOURCE, vData,


oRESULT_OUT);

vAUX_ROWS_PROCESSED := vAUX_ROWS_PROCESSED + vgROWS_PROCESSED;

IF vAUX_RESULT_OUT = 1 THEN
oRESULT_OUT := 1;
ELSE vAUX_RESULT_OUT := oRESULT_OUT;

END IF;

END LOOP;
CLOSE cCHAVE_PROCESSAMENTO;

vgROWS_PROCESSED := vAUX_ROWS_PROCESSED;
--Insert a INFO log into LOG_DETAIL_EXEC table
PKG_LOG.INSERT_DETAIL_EXEC_LOG (vgID_PROCESS_EXEC_LOG,
vgID_TEMPLATE_EXEC_LOG, vgID_SOURCE_EXEC_LOG, vORIGEM, 'End ODS process', 'INFO',
vgID_user, vINPUT_DATA, null ,null,null);

EXCEPTION
WHEN OTHERS THEN
PKG_LOG.INSERT_DETAIL_EXEC_LOG( vgID_PROCESS_EXEC_LOG,
vgID_TEMPLATE_EXEC_LOG, vgID_SOURCE_EXEC_LOG, vORIGEM, 'ERROR - ODS process
error.', 'ERROR', vgID_user, vINPUT_DATA , SQLCODE, SUBSTR(SQLERRM, 1, 4000),
CONCAT(CONCAT('ERROR_STACK: ',DBMS_UTILITY.FORMAT_ERROR_STACK), CONCAT('.
ERROR_BACKTRACE: ', DBMS_UTILITY.FORMAT_ERROR_BACKTRACE)));
oRESULT_OUT := 1;
ROLLBACK;
END ODS_PROCESS;

-- -----------------------------------------------------------------
-- Autor : INDRA
-- Date : 20181119
-- Description: LOAD DATA TO ODS
-- ----------------------------------------------------------------
PROCEDURE ODS_INSERT_DATA(iID_EXEC IN NUMBER, iID_EXEC_SOURCE IN NUMBER,
iID_SOURCE IN NUMBER, iData IN VARCHAR2, oRESULT_OUT OUT NUMBER) -- iOra IN
NUMBER,
AS PRAGMA AUTONOMOUS_TRANSACTION;

vINPUT_DATA VARCHAR2(2048) := 'TEST Execution ID: ' || iID_EXEC || ' -


Execution Source ID: ' || iID_EXEC_SOURCE || ' - Source: ' || iID_SOURCE || ' -
Date: ' || iData; -- || ' - Hora: ' || iOra;

VEXIT_NOW exception;
vORIGEM VARCHAR(200) := vgORIGEM || '.ODS_INSERT_DATA';
vDATE DATE;

oRESULT_CODE NUMBER;
oRESULT_MSG VARCHAR2(1000);

BEGIN

oRESULT_OUT := 0;

vDATE := TO_DATE(iData,vgDATE_MASK1);

-- Delete existing data for same parameters


DELETE FROM TDMI_ODS.DT_P133_13301_RENGAS_WS
WHERE DATE_UTC = vDATE;

COMMIT;

-- Bulk insert data


INSERT INTO TDMI_ODS.DT_P133_13301_RENGAS_WS
SELECT
TDMI_ODS.SEQ_P133_13301_RENGAS_WS.NEXTVAL,
IDENTIFICATION,
"VERSION",
"TYPE",
TO_TIMESTAMP(CREATION_DATETIME,'YYYY-MM-DD"T"HH24:MI:SS"Z"'),
CONTRACT_REF,
ISSUER_ID,
ISSUER_MARKET_CODE,
RECIPIENT_ID,
RECIPIENT_MARKET_CODE,
APPLICATION_CTX,
METER_ID,
(SELECT IDENTIFICATION FROM TDMI_ODS.LOV_REN_GAS_CUI WHERE CUI =
METER_ID),
--LOV_GAS_CUI_ID
MEASURE_UNIT_CODE,
(SELECT "DEFINITION" FROM TDMI_ODS.LOV_REN_GAS_EDIGAS_CODES WHERE CODE
= MEASURE_UNIT_CODE),
--LOV_EDIGAS_CODES_DEF
TIME_INTERVAL,
vDATE,
--DATE_UTC
(SELECT SUBSTR(TIME_INTERVAL, 12,2) FROM DUAL),
--HOUR_UTC
(SELECT GAS_DAY FROM TDMI_ODS.DIM_DATETIME WHERE
TRUNC(DATETIME_UTC,'DD')=vDATE AND HOUR_UTC=(SELECT SUBSTR(TIME_INTERVAL, 12,2)
FROM DUAL)), --GAS_DAY
DIRECTION_CODE,
(SELECT "DEFINITION" FROM TDMI_ODS.LOV_REN_GAS_EDIGAS_CODES WHERE CODE
= DIRECTION_CODE AND STANDACCDIRTYPELIST='StandardGasDirectionTypeList'),
--DIRECTION
STATUS_CODE,
(SELECT "DEFINITION" FROM TDMI_ODS.LOV_REN_GAS_EDIGAS_CODES WHERE CODE
= STATUS_CODE AND STANDACCDIRTYPELIST='StandardStatusTypeList'),
--STATUS
QUANTITY_AMOUNT,
vgID_user, -- created by
CURRENT_TIMESTAMP, -- created on
vgID_PROC, -- created process
vgID_user, -- updated by
CURRENT_TIMESTAMP, -- updated on
vgID_PROC -- updated process
FROM
TDMI_STA.DT_STG_P133_13301_RENGAS_WS
WHERE ID_EXEC = iID_EXEC
AND ID_EXEC_SOURCE = iID_EXEC_SOURCE
AND DATE_UTC = iData
AND stg_load_indicator = 1
AND ods_load_indicator = 0
AND MFK = 0;

vgROWS_PROCESSED := SQL%ROWCOUNT;

UPDATE TDMI_STA.DT_STG_P133_13301_RENGAS_WS A
SET A.ods_load_indicator = 1
WHERE A.ID_EXEC = iID_EXEC
AND A.ID_EXEC_SOURCE = iID_EXEC_SOURCE
AND DATE_UTC = iData;

PKG_LOG.INSERT_DETAIL_EXEC_LOG( vgID_PROCESS_EXEC_LOG,
vgID_TEMPLATE_EXEC_LOG, vgID_SOURCE_EXEC_LOG, vORIGEM, 'vgROWS_PROCESSED - ' ||
vgROWS_PROCESSED, 'DEBUG', vgID_user, vINPUT_DATA, NULL, NULL, NULL);

--PKG_P133_CTX.INSERT_CTX(iID_SOURCE, oRESULT_CODE, oRESULT_MSG);

COMMIT;
oRESULT_OUT := 0;

EXCEPTION
WHEN OTHERS THEN
PKG_LOG.INSERT_DETAIL_EXEC_LOG( vgID_PROCESS_EXEC_LOG,
vgID_TEMPLATE_EXEC_LOG, vgID_SOURCE_EXEC_LOG, vORIGEM, 'ERROR - ODS Processing -
End Insert with Error', 'ERROR', vgID_user, vINPUT_DATA ,SQLCODE, SUBSTR(SQLERRM,
1, 4000), CONCAT(CONCAT('ERROR_STACK: ',DBMS_UTILITY.FORMAT_ERROR_STACK), CONCAT('.
ERROR_BACKTRACE: ', DBMS_UTILITY.FORMAT_ERROR_BACKTRACE)));
oRESULT_OUT := 1;
ROLLBACK;

UPDATE TDMI_STA.DT_STG_P133_13301_RENGAS_WS A
SET A.MFK = 1
WHERE A.ID_EXEC = iID_EXEC
AND A.ID_EXEC_SOURCE = iID_EXEC_SOURCE
AND DATE_UTC = iData;
COMMIT;
END ODS_INSERT_DATA;

END PKG_P133_13301_RENGAS_WS;

new:create or replace PACKAGE BODY TDMI_STA."PKG_P133_13301_RENGAS_WS" AS

/* ------------------------------
Global Variables Declaration
------------------------------ */
vgID_PROCESS_EXEC_LOG NUMBER;
vgID_user NUMBER;
vgID_PROC NUMBER;
vgORIGEM VARCHAR(1334):= 'PKG_P133_13301_RENGAS_WS';
vgID_SOURCE NUMBER;
vgDATE_CONTEXT DATE;

vgID_SOURCE_EXEC_LOG NUMBER;
vgROWS_COLLECTED NUMBER;
vgROWS_PROCESSED NUMBER;
vgDATE_TIME_SS_MASK VARCHAR2(50) := 'YYYY-MM-DD"T"HH24:MI:SS';
vgID_TEMPLATE_EXEC_LOG NUMBER;

vgDATE_MASK VARCHAR2(10) := 'DD/MM/YYYY';


vgDATE_MASK1 VARCHAR2(10) := 'YYYY-MM-DD';
vgDATE_TIME_MASK0 VARCHAR2(32) := 'DD/MM/YYYY HH24:MI';
vgDATE_TIME_MASK1 VARCHAR2(32) := 'YYYY-MM-DD HH24:MI:SS';
vgDATE_TIME_MASK VARCHAR(30) := 'YYYY-MM-DD"T"HH24:MI.ff3"Z"';
--vgDATE_TIME_MASK2 VARCHAR(35) := 'YYYY-MM-DD"T"HH24:MI:SS.ff3"Z"';
vgNUMBER_MASK VARCHAR2(50) :=
'999999999999999.99999999999999999999999999999';
vgNUMBER_MASK_SCI VARCHAR(50) := '9.99999999999999999999EEEE';

vgDATE_MASK6 VARCHAR2(50) := 'YYYY-MON-DD"T"HH24:MI:SSTZH:TZM';


vgDATE_MASK5 VARCHAR2(50) := 'YYYY-MM-DD"T"HH24:MI:SSTZH:TZM';
vgDATE_MASK2 VARCHAR2(20) := 'YYYYMMDDHH24TZH:TZM';
vgDATE_MASK3 VARCHAR2(10) := 'YYYYMMDD';
vgDATE_MASK4 VARCHAR2(10) := 'YYYY-MM-DD';

-- -----------------------------------------------------------------
-- Autor : INDRA
-- Date : 20181119
-- Description: Load Global Parameters
-- ----------------------------------------------------------------

PROCEDURE LOAD_GLOBAL_VALUES(iLOG_PROC IN NUMBER, iPROC IN NUMBER, iuser IN


NUMBER, iSOURCE IN NUMBER, iDATA IN DATE, oRESULT_OUT OUT NUMBER) AS
BEGIN

vgID_PROCESS_EXEC_LOG := iLOG_PROC;
vgID_SOURCE:= iSOURCE;
vgID_user := iuser;
vgID_PROC :=iPROC;
vgDATE_CONTEXT := iDATA;
oRESULT_OUT := 0;

EXCEPTION
WHEN OTHERS THEN

PKG_LOG.INSERT_DETAIL_EXEC_LOG( iLOG_PROC, vgID_TEMPLATE_EXEC_LOG,


vgID_SOURCE_EXEC_LOG, vgORIGEM || '.LOAD_GLOBAL_VALUES', 'ERROR - Not expected',
'ERROR', iuser, null,SQLCODE, SUBSTR(SQLERRM, 1, 4000), CONCAT(CONCAT('ERROR_STACK:
',DBMS_UTILITY.FORMAT_ERROR_STACK), CONCAT('. ERROR_BACKTRACE: ',
DBMS_UTILITY.FORMAT_ERROR_BACKTRACE)));
oRESULT_OUT := 1;

END LOAD_GLOBAL_VALUES;

-- -----------------------------------------------------------------
-- Autor : INDRA
-- Date : 20181119
-- Description: Master Process
-- ----------------------------------------------------------------
PROCEDURE MASTER_PROCESS(iINPUT TP_TAB_P133_13301_RENGAS_WS, iID_PROCESS_EXEC
IN NUMBER, iID_SOURCE_EXEC IN NUMBER, iPROC IN NUMBER, iuser IN NUMBER, iSOURCE IN
NUMBER, iDATA IN DATE, iCOLLECTED_DATA_FROM IN DATE, iCOLLECTED_DATA_TO IN DATE,
oRESULT_OUT OUT NUMBER) AS
vRESULT_OUT NUMBER;
vINPUT_DATA VARCHAR2(2048) := 'ID_PROCESS_EXEC: ' || iID_PROCESS_EXEC
|| ', ID PROC: ' || iPROC || ', user: ' || iuser || ', ID_SOURCE: ' || iSOURCE ||
', COLLECTED_DATA_FROM: ' || iCOLLECTED_DATA_FROM || ', To: ' ||
iCOLLECTED_DATA_TO;
vORIGEM VARCHAR(200) := vgORIGEM || '.MASTER_PROCESS';
vCHECK_CONTEXT NUMBER;
vCONTEXT_RESULT_CODE NUMBER;
BEGIN
IF iID_SOURCE_EXEC IS NULL THEN
--Insert log into LOG_SOURCE table
PKG_LOG.INSERT_SOURCE_LOG(iID_PROCESS_EXEC,
iSOURCE ,iuser,iCOLLECTED_DATA_FROM, iCOLLECTED_DATA_TO, null,
vgID_SOURCE_EXEC_LOG);
ELSE
vgID_SOURCE_EXEC_LOG := iID_SOURCE_EXEC;
END IF;

vRESULT_OUT := 1;
vCHECK_CONTEXT := 1;
vCONTEXT_RESULT_CODE := 0;

SELECT NVL(ID_TEMPLATE_EXEC_LOG, 1) INTO vgID_TEMPLATE_EXEC_LOG FROM


TDMI_STA.LOG_PROCESS_EXEC WHERE ID = iID_PROCESS_EXEC;

--Insert a INFO log into LOG_DETAIL_EXEC table


PKG_LOG.INSERT_DETAIL_EXEC_LOG (iID_PROCESS_EXEC,
vgID_TEMPLATE_EXEC_LOG, vgID_SOURCE_EXEC_LOG, vORIGEM, 'Start Source Process',
'INFO', iuser, vINPUT_DATA, null ,null,null);

-- load global parameters


LOAD_GLOBAL_VALUES(iID_PROCESS_EXEC, iPROC, iuser, iSOURCE, iDATA,
vRESULT_OUT);

IF vRESULT_OUT = 0 THEN
-- STG Process
STG_INSERT_DATA (iINPUT, vRESULT_OUT);

IF vRESULT_OUT = 0 THEN
ODS_PROCESS (vRESULT_OUT);
END IF;
END IF;

oRESULT_OUT := vRESULT_OUT;

IF oRESULT_OUT = 1 THEN
--remove from context
--TDMI_STA.PKG_P133_CTX.REMOVE_CTX(iID_PROCESS_EXEC,
vgID_TEMPLATE_EXEC_LOG, vgID_SOURCE_EXEC_LOG, iuser, iSOURCE, vgDATE_CONTEXT, NULL,
vCONTEXT_RESULT_CODE);

-- Insert error msg


PKG_LOG.UPDATE_SOURCE_LOG (vgID_SOURCE_EXEC_LOG,
vgROWS_COLLECTED, vgROWS_PROCESSED, iuser, null,0);
PKG_LOG.INSERT_DETAIL_EXEC_LOG( iID_PROCESS_EXEC,
vgID_TEMPLATE_EXEC_LOG, vgID_SOURCE_EXEC_LOG, vORIGEM, 'ERROR - End source process
with error', 'ERROR', iuser, vINPUT_DATA,null, null, null);
ELSIF (oRESULT_OUT = 0) THEN
--Update log into LOG_SOURCE table
PKG_LOG.UPDATE_SOURCE_LOG (vgID_SOURCE_EXEC_LOG,
vgROWS_COLLECTED, vgROWS_PROCESSED, iuser, null,1);

--Insert a INFO log into LOG_DETAIL_EXEC table


PKG_LOG.INSERT_DETAIL_EXEC_LOG (iID_PROCESS_EXEC,
vgID_TEMPLATE_EXEC_LOG, vgID_SOURCE_EXEC_LOG, vORIGEM, 'End Source Process',
'INFO', iuser, vINPUT_DATA, null ,null, null);
END IF;

EXCEPTION
WHEN OTHERS THEN
PKG_LOG.INSERT_DETAIL_EXEC_LOG( iID_PROCESS_EXEC,
vgID_TEMPLATE_EXEC_LOG, vgID_SOURCE_EXEC_LOG, vORIGEM, 'ERROR - Not expected',
'ERROR', iuser, vINPUT_DATA,SQLCODE, SUBSTR(SQLERRM, 1, 4000),
CONCAT(CONCAT('ERROR_STACK: ',DBMS_UTILITY.FORMAT_ERROR_STACK), CONCAT('.
ERROR_BACKTRACE: ', DBMS_UTILITY.FORMAT_ERROR_BACKTRACE)));
--PKG_LOG.UPDATE_SOURCE_LOG (vgID_SOURCE_EXEC_LOG,
vgROWS_COLLECTED, vgROWS_PROCESSED, iuser, null,0);
oRESULT_OUT := 1;
ROLLBACK;

END MASTER_PROCESS;

-- -----------------------------------------------------------------
-- Autor : INDRA
-- Date : 20181119
-- Description: Insert Data to STG
-- ----------------------------------------------------------------
PROCEDURE STG_INSERT_DATA(iINPUT TP_TAB_P133_13301_RENGAS_WS, oRESULT_OUT OUT
NUMBER) AS

PRAGMA AUTONOMOUS_TRANSACTION;
vORIGEM VARCHAR(200) := vgORIGEM || '.STG_INSERT_DATA';
bulk_errors EXCEPTION;
PRAGMA EXCEPTION_INIT(bulk_errors, -24381);

BEGIN

vgROWS_COLLECTED := 0;

IF iINPUT.FIRST IS NULL THEN


--Insert a INFO log into LOG_DETAIL_EXEC table
PKG_LOG.INSERT_DETAIL_EXEC_LOG (vgID_PROCESS_EXEC_LOG,
vgID_TEMPLATE_EXEC_LOG, vgID_SOURCE_EXEC_LOG, vORIGEM, 'End STG Process - No data
found to Process', 'ALERT', vgID_user, null, null ,null,null);
ELSE
BEGIN
--Insert a INFO log into LOG_DETAIL_EXEC table

PKG_LOG.INSERT_DETAIL_EXEC_LOG (vgID_PROCESS_EXEC_LOG,
vgID_TEMPLATE_EXEC_LOG, vgID_SOURCE_EXEC_LOG, vORIGEM, 'STG Processing', 'INFO',
vgID_user, null, null ,null,null);

-- INSERT ALL DATA INTO STG TABLE


FORALL i IN iINPUT.first .. iINPUT.last
INSERT INTO TDMI_STA.DT_STG_P133_13301_RENGAS_WS
(
"ID_EXEC",
"ID_EXEC_SOURCE",
IDENTIFICATION,
VERSION,
TYPE,
CREATION_DATETIME,
CONTRACT_REF,
ISSUER_ID,
ISSUER_MARKET_CODE,
RECIPIENT_ID,
RECIPIENT_MARKET_CODE,
APPLICATION_CTX,
METER_ID,
MEASURE_UNIT_CODE,
TIME_INTERVAL,
DATE_UTC,
DIRECTION_CODE,
STATUS_CODE,
QUANTITY_AMOUNT,
"STG_LOAD_INDICATOR",
"ODS_LOAD_INDICATOR",
"HIST_LOAD_INDICATOR",
"MFK",
"CREATED_BY",
"CREATED_ON",
"CREATED_PROCESS",
"UPDATED_BY",
"UPDATED_ON",
"UPDATED_PROCESS"
)
VALUES
(
vgID_PROCESS_EXEC_LOG,
vgID_SOURCE_EXEC_LOG,
iINPUT(i).IDENTIFICATION,
iINPUT(i)."VERSION",
iINPUT(i)."TYPE",
iINPUT(i).CREATION_DATETIME,
iINPUT(i).CONTRACT_REF,
iINPUT(i).ISSUER_ID,
iINPUT(i).ISSUER_MARKET_CODE,
iINPUT(i).RECIPIENT_ID,
iINPUT(i).RECIPIENT_MARKET_CODE,
iINPUT(i).APPLICATION_CTX,
iINPUT(i).METER_ID,
iINPUT(i).MEASURE_UNIT_CODE,
iINPUT(i).TIME_INTERVAL,
iINPUT(i).DATE_UTC,
iINPUT(i).DIRECTION_CODE,
iINPUT(i).STATUS_CODE,
iINPUT(i).QUANTITY_AMOUNT,
1,
0,
0,
0,
vgID_user,
SYSTIMESTAMP,
vgID_PROC,
vgID_user,
SYSTIMESTAMP,
vgID_PROC
);
COMMIT;
END;

END IF;
oRESULT_OUT := 0;

vgROWS_COLLECTED := iINPUT.COUNT;

-- IF SOMETHING FAILS, ALL IS CANCELED AND RETURN 1


EXCEPTION
WHEN bulk_errors THEN
oRESULT_OUT := 1;
PKG_LOG.INSERT_DETAIL_EXEC_LOG( vgID_PROCESS_EXEC_LOG,
vgID_TEMPLATE_EXEC_LOG,vgID_SOURCE_EXEC_LOG, vORIGEM , 'ERROR - STG Process error
- Bulk Error', 'ERROR', vgID_user, null,SQLCODE, SUBSTR(SQLERRM, 1, 4000),
CONCAT(CONCAT('ERROR_STACK: ',DBMS_UTILITY.FORMAT_ERROR_STACK), CONCAT('.
ERROR_BACKTRACE: ', DBMS_UTILITY.FORMAT_ERROR_BACKTRACE)));
WHEN OTHERS THEN
oRESULT_OUT := 1;
PKG_LOG.INSERT_DETAIL_EXEC_LOG( vgID_PROCESS_EXEC_LOG,
vgID_TEMPLATE_EXEC_LOG,vgID_SOURCE_EXEC_LOG, vORIGEM , 'ERROR - STG Process
error', 'ERROR', vgID_user, null,SQLCODE, SUBSTR(SQLERRM, 1, 4000),
CONCAT(CONCAT('ERROR_STACK: ',DBMS_UTILITY.FORMAT_ERROR_STACK), CONCAT('.
ERROR_BACKTRACE: ', DBMS_UTILITY.FORMAT_ERROR_BACKTRACE)));
ROLLBACK;
END STG_INSERT_DATA;

-- -----------------------------------------------------------------
-- Autor : INDRA
-- Date : 20181119
-- Description: ODS_PROCESS
-- ----------------------------------------------------------------
PROCEDURE ODS_PROCESS(oRESULT_OUT OUT NUMBER) AS
PRAGMA AUTONOMOUS_TRANSACTION;

CURSOR CCHAVE_PROCESSAMENTO IS
SELECT DISTINCT ID_EXEC,
ID_EXEC_SOURCE,
DATE_UTC
FROM DT_STG_P133_13301_RENGAS_WS -- base de dados STA
WHERE STG_LOAD_INDICATOR = 1
AND ODS_LOAD_INDICATOR = 0
AND MFK = 0;

iID_EXEC NUMBER;
iID_EXEC_SOURCE NUMBER;
vData VARCHAR2(125);
vINPUT_DATA VARCHAR2(1334) := 'Source: ' || vgID_SOURCE;
vORIGEM VARCHAR(200) := vgORIGEM || '.ODS_PROCESS';
vAUX_RESULT_OUT NUMBER;
vAUX_ROWS_PROCESSED NUMBER;
-- vOra NUMBER;

BEGIN
oRESULT_OUT := 0;
vAUX_RESULT_OUT := 0;
vAUX_ROWS_PROCESSED := 0;
--Start ODS Process
--Insert a INFO log into LOG_DETAIL_EXEC table
PKG_LOG.INSERT_DETAIL_EXEC_LOG (vgID_PROCESS_EXEC_LOG,
vgID_TEMPLATE_EXEC_LOG, vgID_SOURCE_EXEC_LOG, vORIGEM, 'ODS Processing', 'INFO',
vgID_user, vINPUT_DATA, null ,null,null);

OPEN cCHAVE_PROCESSAMENTO;
LOOP
FETCH cCHAVE_PROCESSAMENTO INTO iID_EXEC, iID_EXEC_SOURCE, vData;

EXIT WHEN cCHAVE_PROCESSAMENTO%NOTFOUND;


ODS_INSERT_DATA (iID_EXEC, iID_EXEC_SOURCE, vgID_SOURCE, vData,
oRESULT_OUT);

vAUX_ROWS_PROCESSED := vAUX_ROWS_PROCESSED + vgROWS_PROCESSED;

IF vAUX_RESULT_OUT = 1 THEN
oRESULT_OUT := 1;
ELSE vAUX_RESULT_OUT := oRESULT_OUT;

END IF;

END LOOP;
CLOSE cCHAVE_PROCESSAMENTO;

vgROWS_PROCESSED := vAUX_ROWS_PROCESSED;
--Insert a INFO log into LOG_DETAIL_EXEC table
PKG_LOG.INSERT_DETAIL_EXEC_LOG (vgID_PROCESS_EXEC_LOG,
vgID_TEMPLATE_EXEC_LOG, vgID_SOURCE_EXEC_LOG, vORIGEM, 'End ODS process', 'INFO',
vgID_user, vINPUT_DATA, null ,null,null);

EXCEPTION
WHEN OTHERS THEN
PKG_LOG.INSERT_DETAIL_EXEC_LOG( vgID_PROCESS_EXEC_LOG,
vgID_TEMPLATE_EXEC_LOG, vgID_SOURCE_EXEC_LOG, vORIGEM, 'ERROR - ODS process
error.', 'ERROR', vgID_user, vINPUT_DATA , SQLCODE, SUBSTR(SQLERRM, 1, 4000),
CONCAT(CONCAT('ERROR_STACK: ',DBMS_UTILITY.FORMAT_ERROR_STACK), CONCAT('.
ERROR_BACKTRACE: ', DBMS_UTILITY.FORMAT_ERROR_BACKTRACE)));
oRESULT_OUT := 1;
ROLLBACK;
END ODS_PROCESS;

-- -----------------------------------------------------------------
-- Autor : INDRA
-- Date : 20181119
-- Description: LOAD DATA TO ODS
-- ----------------------------------------------------------------
PROCEDURE ODS_INSERT_DATA(iID_EXEC IN NUMBER, iID_EXEC_SOURCE IN NUMBER,
iID_SOURCE IN NUMBER, iData IN VARCHAR2, oRESULT_OUT OUT NUMBER) -- iOra IN
NUMBER,
AS PRAGMA AUTONOMOUS_TRANSACTION;

vINPUT_DATA VARCHAR2(2048) := 'TEST Execution ID: ' || iID_EXEC || ' -


Execution Source ID: ' || iID_EXEC_SOURCE || ' - Source: ' || iID_SOURCE || ' -
Date: ' || iData; -- || ' - Hora: ' || iOra;

VEXIT_NOW exception;
vORIGEM VARCHAR(200) := vgORIGEM || '.ODS_INSERT_DATA';
vDATE DATE;

oRESULT_CODE NUMBER;
oRESULT_MSG VARCHAR2(1000);

BEGIN

oRESULT_OUT := 0;
vDATE := TO_DATE(iData,vgDATE_MASK1);

-- Delete existing data for same parameters


DELETE FROM TDMI_ODS.DT_P133_13301_RENGAS_WS
WHERE DATE_UTC = vDATE;

COMMIT;

-- Bulk insert data


INSERT INTO TDMI_ODS.DT_P133_13301_RENGAS_WS
SELECT
TDMI_ODS.SEQ_P133_13301_RENGAS_WS.NEXTVAL,
IDENTIFICATION,
"VERSION",
"TYPE",
TO_TIMESTAMP(CREATION_DATETIME,'YYYY-MM-DD"T"HH24:MI:SS"Z"'),
CONTRACT_REF,
ISSUER_ID,
ISSUER_MARKET_CODE,
RECIPIENT_ID,
RECIPIENT_MARKET_CODE,
APPLICATION_CTX,
METER_ID,
(SELECT IDENTIFICATION FROM TDMI_ODS.LOV_REN_GAS_CUI WHERE CUI =
METER_ID),
--LOV_GAS_CUI_ID
MEASURE_UNIT_CODE,
(SELECT "DEFINITION" FROM TDMI_ODS.LOV_REN_GAS_EDIGAS_CODES WHERE CODE
= MEASURE_UNIT_CODE),
--LOV_EDIGAS_CODES_DEF
TIME_INTERVAL,
vDATE,
--DATE_UTC
(SELECT SUBSTR(TIME_INTERVAL, 12,2) FROM DUAL),
--HOUR_UTC
(SELECT GAS_DAY FROM TDMI_ODS.DIM_DATETIME WHERE
TRUNC(DATETIME_UTC,'DD')=vDATE AND HOUR_UTC=(SELECT SUBSTR(TIME_INTERVAL, 12,2)
FROM DUAL)), --GAS_DAY
DIRECTION_CODE,
(SELECT "DEFINITION" FROM TDMI_ODS.LOV_REN_GAS_EDIGAS_CODES WHERE CODE
= DIRECTION_CODE AND STANDACCDIRTYPELIST='StandardGasDirectionTypeList'),
--DIRECTION
STATUS_CODE,
(SELECT "DEFINITION" FROM TDMI_ODS.LOV_REN_GAS_EDIGAS_CODES WHERE CODE
= STATUS_CODE AND STANDACCDIRTYPELIST='StandardStatusTypeList'),
--STATUS
QUANTITY_AMOUNT,
vgID_user, -- created by
CURRENT_TIMESTAMP, -- created on
vgID_PROC, -- created process
vgID_user, -- updated by
CURRENT_TIMESTAMP, -- updated on
vgID_PROC -- updated process
FROM
TDMI_STA.DT_STG_P133_13301_RENGAS_WS
WHERE ID_EXEC = iID_EXEC
AND ID_EXEC_SOURCE = iID_EXEC_SOURCE
AND DATE_UTC = iData
AND stg_load_indicator = 1
AND ods_load_indicator = 0
AND MFK = 0;

vgROWS_PROCESSED := SQL%ROWCOUNT;

UPDATE TDMI_STA.DT_STG_P133_13301_RENGAS_WS A
SET A.ods_load_indicator = 1
WHERE A.ID_EXEC = iID_EXEC
AND A.ID_EXEC_SOURCE = iID_EXEC_SOURCE
AND DATE_UTC = iData;

PKG_LOG.INSERT_DETAIL_EXEC_LOG( vgID_PROCESS_EXEC_LOG,
vgID_TEMPLATE_EXEC_LOG, vgID_SOURCE_EXEC_LOG, vORIGEM, 'vgROWS_PROCESSED - ' ||
vgROWS_PROCESSED, 'DEBUG', vgID_user, vINPUT_DATA, NULL, NULL, NULL);

--PKG_P133_CTX.INSERT_CTX(iID_SOURCE, oRESULT_CODE, oRESULT_MSG);

COMMIT;
oRESULT_OUT := 0;

EXCEPTION
WHEN OTHERS THEN
PKG_LOG.INSERT_DETAIL_EXEC_LOG( vgID_PROCESS_EXEC_LOG,
vgID_TEMPLATE_EXEC_LOG, vgID_SOURCE_EXEC_LOG, vORIGEM, 'ERROR - ODS Processing -
End Insert with Error', 'ERROR', vgID_user, vINPUT_DATA ,SQLCODE, SUBSTR(SQLERRM,
1, 4000), CONCAT(CONCAT('ERROR_STACK: ',DBMS_UTILITY.FORMAT_ERROR_STACK), CONCAT('.
ERROR_BACKTRACE: ', DBMS_UTILITY.FORMAT_ERROR_BACKTRACE)));
oRESULT_OUT := 1;
ROLLBACK;

UPDATE TDMI_STA.DT_STG_P133_13301_RENGAS_WS A
SET A.MFK = 1
WHERE A.ID_EXEC = iID_EXEC
AND A.ID_EXEC_SOURCE = iID_EXEC_SOURCE
AND DATE_UTC = iData;
COMMIT;
END ODS_INSERT_DATA;

END PKG_P133_13301_RENGAS_WS;

Package Body PKG_P133_13301_RENGAS_WS compiled

Elapsed: 00:00:00.369
SQL>
SQL> SHOW ERRORS;

Errors for PACKAGE BODY TDMI_STA.PKG_P133_13303_RENGAS_WS:

LINE/COL ERROR
-------- -----------------------------------------------------------------
341/3 PL/SQL: SQL Statement ignored
356/31 PLS-00302: component 'GET_LOV_REN_GAS_CUI_ID_BY_CUI' must be declared
358/31 PLS-00302: component 'GET_LOV_REN_GAS_CUI_ID_BY_EIC' must be declared
371/23 PLS-00302: component 'GET_LOV_REN_GAS_EGAS_COD_DEF' must be declared
375/23 PLS-00302: component 'GET_LOV_REN_GAS_EGAS_COD_DEF' must be declared
377/13 PL/SQL: ORA-00904: "PKG_UTILS"."GET_LOV_REN_GAS_EGAS_COD_DEF":
identificador inválido
377/23 PLS-00302: component 'GET_LOV_REN_GAS_EGAS_COD_DEF' must be declared
377/23 PLS-00302: component 'GET_LOV_REN_GAS_EGAS_COD_DEF' must be declared
SQL>
SQL> GRANT EXECUTE ON &var1."PKG_P133_13301_RENGAS_WS" TO "ROLE_TDMI_STA_EXECUTE";
old:GRANT EXECUTE ON &var1."PKG_P133_13301_RENGAS_WS" TO "ROLE_TDMI_STA_EXECUTE"
new:GRANT EXECUTE ON TDMI_STA."PKG_P133_13301_RENGAS_WS" TO "ROLE_TDMI_STA_EXECUTE"

Grant succeeded.

Elapsed: 00:00:00.011
SQL> GRANT DEBUG ON &var1."PKG_P133_13301_RENGAS_WS" TO "ROLE_TDMI_STA_DEBUG";
old:GRANT DEBUG ON &var1."PKG_P133_13301_RENGAS_WS" TO "ROLE_TDMI_STA_DEBUG"
new:GRANT DEBUG ON TDMI_STA."PKG_P133_13301_RENGAS_WS" TO "ROLE_TDMI_STA_DEBUG"

Grant succeeded.

Elapsed: 00:00:00.004
SQL>
SQL> spool off;

You might also like