1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| declare
cursor c is
select semaine,date_debut,date_fin from TRAFIC_PARTITIONS
where (date_debut>=trunc(add_months(sysdate,-1),'month')-7 and date_fin<=trunc(add_months(sysdate,0),'month')+7);
RTX varchar2(30);
EXISTE number:=0;
SQL1 varchar2(300);
SQL2 varchar2(300);
SQL3 varchar2(300);
SQL4 varchar2(300);
SQL5 varchar2(300);
SQL6 varchar2(300);
SQL7 varchar2(300);
SQL8 varchar2(300);
SQL9 varchar2(300);
SQL10 varchar2(300);
SQL11 varchar2(300);
begin
for rec in c loop
RTX:='RTX_'||rec.semaine;
select count(1) into EXISTE from tab where tname =RTX;
if EXISTE=0 then
SQL1:='create table '||RTX||' tablespace users as ';
SQL2:='select r.entry_date_timestamp date_val,r.start_time_charge_timestamp start_d_t,r.uds_stream_id rtx_sqn,r.uds_record_id rtx_lfnr,';
SQL3:='r.UDS_BASE_PART_ID,r.FREE_UNITS_INFO_FU_PACK_ID fu_pack_id,r.UDS_CHARGE_PART_ID,r.UDS_FREE_UNIT_PART_ID,r.CALL_DEST,r.FREE_CHARGE_AMOUNT,';
SQL4:='r.FREE_CLICKS_VOLUME,r.TARIFF_DETAIL_RATE_TYPE_ID,r.TARIFF_DETAIL_RTX_CHARGE_TYPE,r.TARIFF_INFO_SNCODE,r.XFILE_BASE_CHARGE_AMOUNT,r.XFILE_BASE_CHARGE_TAX,';
SQL5:='r.XFILE_CHARGE_TAX,r.XFILE_CALL_TYPE,r.XFILE_CHARGE_AMOUNT,r.XFILE_IND,r.net_element_network_code plcode,r.tariff_info_zpcode zpcode,';
SQL6:='r.tariff_info_tmcode tmcode,r.FOLLOW_UP_CALL_TYPE call_type,r.cust_info_main_msisdn r_p_dn_num,r.o_p_number_address o_p_number,';
SQL7:='r.tariff_detail_interconnect_ind rtx_type,r.cust_info_customer_id r_p_customer_id,r.cust_info_contract_id r_p_contract_id,';
SQL8:='r.tariff_info_zncode Destination,r.tariff_detail_ttcode ttcode,r.rated_clicks_volume/8000 unites,r.duration_volume duree_r_call,';
SQL9:='r.data_volume duree_r_data,r.event_volume duree_r_event,r.messages_volume duree_r_msg,r.ROUNDED_VOLUME duree_f,r.rated_flat_amount montant,';
SQL10:='r.MC_SHDES from rtx_part@rtxv7 r where r.entry_date_timestamp>='||rec.DATE_debut||' and r.entry_date_timestamp<'||rec.DATE_Fin;
SQL11:='and r.XFILE_IND is not null and CUST_INFO_CUSTOMER_ID=2 and 1=2';
VSQL=SQL1||SQL2||SQL3||SQL4||SQL5||SQL6||SQL7||SQL8||SQL9||SQL10||SQL11;
DBMS_UTILITY.EXEC_DDL_STATEMENT(VSQL);
end if;
end loop;
end; |
Partager