Initial commit — sursa ROAACNPRO
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
501
curatare.prg
Normal file
501
curatare.prg
Normal file
@@ -0,0 +1,501 @@
|
||||
*** IMPORT DATA
|
||||
|
||||
update ips_voyage_members set vsl_id = null where id in (
|
||||
select vm.id from IPS_VOYAGE_MEMBERS vm left join ips_vessels vs on vm.vsl_id = vs.id
|
||||
where vs.id is null)
|
||||
|
||||
*** IPS_VOYAGE_MEMBERS
|
||||
SELECT IPS_VOYAGE_MEMBERS
|
||||
REINDEX
|
||||
SELECT ID, COUNT(*) AS NR FROM IPS_VOYAGE_MEMBERS GROUP BY ID HAVING COUNT(*) > 1 INTO CURSOR TT
|
||||
SELECT TT
|
||||
SCAN
|
||||
SELECT IPS_VOYAGE_MEMBERS
|
||||
IF SEEK(TT.ID,'IPS_VOYAGE_MEMBERS',"ID")
|
||||
DELETE
|
||||
ENDIF
|
||||
ENDSCAN
|
||||
SELECT ips_voyage_members
|
||||
COPY TO e:\voyage_members.csv TYPE csv
|
||||
|
||||
*** IPS_CARGOES
|
||||
SELECT IPS_CARGOES
|
||||
REINDEX
|
||||
SELECT ID, COUNT(*) AS NR FROM IPS_CARGOES GROUP BY ID HAVING COUNT(*) > 1 INTO CURSOR TT
|
||||
SELECT TT
|
||||
SCAN
|
||||
SELECT IPS_CARGOES
|
||||
IF SEEK(TT.ID,'IPS_CARGOES',"ID")
|
||||
DELETE
|
||||
ENDIF
|
||||
ENDSCAN
|
||||
|
||||
UPDATE IPS_CARGOES SET bill_date = {//::} WHERE LEFT(TTOC(bill_date,1),4) = '0000'
|
||||
UPDATE IPS_CARGOES SET BILL_NR = STRTRAN(BILL_NR, '"', '') WHERE !EMPTY(NVL(BILL_NR, ''))
|
||||
|
||||
select id, vms_id, gds_id, ballast, container, source, cty_id, destinatio, quantity, unit, bill_nr, CAST(IIF(EMPTY(NVL(bill_date,'//::')), '', TTOC(bill_date,1)) as C(20)) as bill_date, delivery from ips_cargoes INTO CURSOR tt
|
||||
SELECT TT
|
||||
COPY TO e:\cargoes.csv TYPE csv
|
||||
|
||||
**** IPS_VESSELS
|
||||
SELECT ips_vessels
|
||||
REINDEX
|
||||
|
||||
SELECT ID, COUNT(*) AS NR FROM IPS_VESSELS GROUP BY ID HAVING COUNT(*) > 1 INTO CURSOR TT
|
||||
SELECT TT
|
||||
SCAN
|
||||
SELECT IPS_VESSELS
|
||||
IF SEEK(TT.ID,'IPS_VESSELS',"ID")
|
||||
DELETE
|
||||
ENDIF
|
||||
ENDSCAN
|
||||
|
||||
UPDATE IPS_vessels SET registrati = STRTRAN(registrati, '"', '') WHERE !EMPTY(NVL(registrati, ''))
|
||||
UPDATE IPS_vessels SET name = STRTRAN(name, '"', '') WHERE !EMPTY(NVL(name, ''))
|
||||
SELECT ips_vessels
|
||||
COPY TO e:\vessels.csv TYPE csv
|
||||
|
||||
**** IPS_VOYAGE_LOCKS
|
||||
SELECT ips_voyage_locks
|
||||
REINDEX
|
||||
|
||||
SELECT ID, COUNT(*) AS NR FROM ips_voyage_locks GROUP BY ID HAVING COUNT(*) > 1 INTO CURSOR TT
|
||||
SELECT TT
|
||||
SCAN
|
||||
SELECT ips_voyage_locks
|
||||
IF SEEK(TT.ID,'ips_voyage_locks',"ID")
|
||||
DELETE
|
||||
ENDIF
|
||||
ENDSCAN
|
||||
|
||||
UPDATE ips_voyage_locks SET date = {//::} WHERE LEFT(TTOC(date,1),4) = '0000'
|
||||
|
||||
SELECT id, vye_id, CAST(IIF(EMPTY(NVL(date,'//::')), '', TTOC(date,1)) as C(20)) as date, rpt_id, op_min, op_prep, id_lock, lock_name FROM ips_voyage_locks INTO CURSOR tt
|
||||
SELECT tt
|
||||
COPY TO e:\voyage_locks.csv TYPE csv
|
||||
|
||||
|
||||
**** IPS_VOYAGES
|
||||
SELECT ips_voyages
|
||||
REINDEX
|
||||
|
||||
SELECT ID, COUNT(*) AS NR FROM ips_voyages GROUP BY ID HAVING COUNT(*) > 1 INTO CURSOR TT
|
||||
SELECT TT
|
||||
SCAN
|
||||
SELECT ips_voyages
|
||||
IF SEEK(TT.ID,'ips_voyages',"ID")
|
||||
DELETE
|
||||
ENDIF
|
||||
ENDSCAN
|
||||
|
||||
UPDATE ips_voyages SET generation = {//::} WHERE LEFT(TTOC(generation,1),4) = '0000'
|
||||
UPDATE ips_voyages SET notificati = {//::} WHERE LEFT(TTOC(notificati,1),4) = '0000'
|
||||
UPDATE ips_voyages SET convoy_nam = STRTRAN(convoy_nam, '"', '') WHERE !EMPTY(NVL(convoy_nam, ''))
|
||||
|
||||
select id, CAST(IIF(EMPTY(NVL(generation,'//::')), '', TTOC(generation,1)) as C(20)) as generation, ctt_id, vms_id, convoy_nam, declaratio, CAST(IIF(EMPTY(NVL(notificati,'//::')), '', TTOC(notificati,1)) as C(20)) as notificati, notificat2, origin, destinatio, state from ips_voyages INTO CURSOR tt
|
||||
SELECT tt
|
||||
COPY TO e:\voyages.csv TYPE csv
|
||||
|
||||
*** IPS_BERTHINGS
|
||||
SELECT IPS_BERTHINGS
|
||||
REINDEX
|
||||
SELECT ID, COUNT(*) AS NR FROM IPS_BERTHINGS GROUP BY ID HAVING COUNT(*) > 1 INTO CURSOR TT
|
||||
SELECT TT
|
||||
SCAN
|
||||
lnDuplicate = nr
|
||||
FOR lnDuplicat = 1 TO lnDuplicate - 1
|
||||
SELECT IPS_BERTHINGS
|
||||
IF SEEK(TT.ID,'IPS_BERTHINGS',"ID")
|
||||
DELETE
|
||||
ENDIF
|
||||
ENDFOR
|
||||
ENDSCAN
|
||||
|
||||
UPDATE IPS_BERTHINGS SET arrival_ti = {//::} WHERE LEFT(TTOC(arrival_ti,1),4) = '0000'
|
||||
UPDATE IPS_BERTHINGS SET departure_ = {//::} WHERE LEFT(TTOC(departure_,1),4) = '0000'
|
||||
|
||||
SELECT id, CAST(IIF(EMPTY(NVL(arrival_ti,'//::')), '', TTOC(arrival_ti,1)) as C(20)) as arrival_ti, voy_id, CAST(IIF(EMPTY(NVL(departure_,'//::')), '', TTOC(departure_,1)) as C(20)) as departure_, rpt_id, ctt_id, ves_id FROM ips_berthings INTO CURSOR tt
|
||||
SELECT TT
|
||||
COPY TO e:\berthings.csv TYPE csv
|
||||
|
||||
*** IPS_ROUTE_POINTS
|
||||
SELECT IPS_ROUTE_POINTS
|
||||
REINDEX
|
||||
SELECT ID, COUNT(*) AS NR FROM IPS_ROUTE_POINTS GROUP BY ID HAVING COUNT(*) > 1 INTO CURSOR TT
|
||||
SELECT TT
|
||||
SCAN
|
||||
SELECT IPS_ROUTE_POINTS
|
||||
IF SEEK(TT.ID,'IPS_ROUTE_POINTS',"ID")
|
||||
DELETE
|
||||
ENDIF
|
||||
ENDSCAN
|
||||
|
||||
SELECT id, acronym, name, cnl_id FROM ips_route_points INTO CURSOR tt
|
||||
SELECT TT
|
||||
COPY TO e:\route_points.csv TYPE csv
|
||||
|
||||
|
||||
*********************************************************************************************
|
||||
*********************************************************************************************
|
||||
*********************************************************************************************
|
||||
*** DATABASE LOAD TABLES FROM CSV
|
||||
TEXT TO lcSql noshow
|
||||
|
||||
-- Create table
|
||||
create table IPS_VOYAGE_MEMBERS_EXT
|
||||
(
|
||||
id VARCHAR2(36),
|
||||
vye_id VARCHAR2(36),
|
||||
vsl_id VARCHAR2(36),
|
||||
ctt_id VARCHAR2(36),
|
||||
ctt_id_has NUMBER(12),
|
||||
ctt_id_ha2 NUMBER(12),
|
||||
confirm_pa VARCHAR2(20),
|
||||
dirty_tank VARCHAR2(1),
|
||||
place_barg VARCHAR2(2),
|
||||
rstart_id VARCHAR2(36),
|
||||
rfin_id VARCHAR2(36),
|
||||
distance VARCHAR2(20),
|
||||
cnt_mnvr VARCHAR2(10),
|
||||
distance_c VARCHAR2(20)
|
||||
)
|
||||
ORGANIZATION EXTERNAL
|
||||
(TYPE ORACLE_LOADER
|
||||
DEFAULT DIRECTORY DMPDIR
|
||||
ACCESS PARAMETERS
|
||||
(
|
||||
RECORDS DELIMITED BY NEWLINE
|
||||
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
|
||||
)
|
||||
LOCATION ('voyage_members.csv')
|
||||
);
|
||||
|
||||
|
||||
insert into ips_voyage_members
|
||||
(id,
|
||||
vye_id,
|
||||
vsl_id,
|
||||
ctt_id,
|
||||
ctt_id_has,
|
||||
ctt_id_ha2,
|
||||
confirm_pa,
|
||||
dirty_tank,
|
||||
place_barg,
|
||||
rstart_id,
|
||||
rfin_id,
|
||||
distance,
|
||||
cnt_mnvr,
|
||||
distance_c)
|
||||
select id,
|
||||
vye_id,
|
||||
vsl_id,
|
||||
ctt_id,
|
||||
ctt_id_has,
|
||||
ctt_id_ha2,
|
||||
confirm_pa,
|
||||
dirty_tank,
|
||||
place_barg,
|
||||
rstart_id,
|
||||
rfin_id,
|
||||
TO_NUMBER(distance, '99999999D99', 'NLS_NUMERIC_CHARACTERS=''.,''') as distance,
|
||||
cnt_mnvr,
|
||||
TO_NUMBER(distance_c,
|
||||
'99999999D99',
|
||||
'NLS_NUMERIC_CHARACTERS=''.,''') as distance_c
|
||||
from ips_voyage_members_ext;
|
||||
|
||||
|
||||
-- Create table
|
||||
create table IPS_CARGOES_EXT
|
||||
(
|
||||
id VARCHAR2(36),
|
||||
vms_id VARCHAR2(36),
|
||||
gds_id VARCHAR2(36),
|
||||
ballast VARCHAR2(20),
|
||||
container VARCHAR2(10),
|
||||
source VARCHAR2(100),
|
||||
cty_id VARCHAR2(36),
|
||||
destinatio VARCHAR2(100),
|
||||
quantity VARCHAR2(20),
|
||||
unit VARCHAR2(10),
|
||||
bill_nr VARCHAR2(6),
|
||||
bill_date DATE,
|
||||
delivery VARCHAR2(5)
|
||||
)
|
||||
ORGANIZATION EXTERNAL
|
||||
(TYPE ORACLE_LOADER
|
||||
DEFAULT DIRECTORY DMPDIR
|
||||
ACCESS PARAMETERS
|
||||
(
|
||||
RECORDS DELIMITED BY NEWLINE
|
||||
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
|
||||
(id, vms_id, gds_id, ballast, container, source, cty_id, destinatio, quantity, unit, bill_nr, bill_date date 'yyyymmddhh24miss', delivery)
|
||||
)
|
||||
LOCATION ('cargoes.csv')
|
||||
);
|
||||
|
||||
|
||||
insert into ips_cargoes
|
||||
(id,
|
||||
vms_id,
|
||||
gds_id,
|
||||
ballast,
|
||||
container,
|
||||
source,
|
||||
cty_id,
|
||||
destinatio,
|
||||
quantity,
|
||||
unit,
|
||||
bill_nr,
|
||||
bill_date,
|
||||
delivery)
|
||||
select id,
|
||||
vms_id,
|
||||
gds_id,
|
||||
TO_NUMBER(ballast, '99999D99', 'NLS_NUMERIC_CHARACTERS=''.,''') as ballast,
|
||||
TO_NUMBER(container, '9999', 'NLS_NUMERIC_CHARACTERS=''.,''') as container,
|
||||
source,
|
||||
cty_id,
|
||||
destinatio,
|
||||
TO_NUMBER(quantity, '99999999D99', 'NLS_NUMERIC_CHARACTERS=''.,''') as quantity,
|
||||
unit,
|
||||
bill_nr,
|
||||
bill_date,
|
||||
delivery
|
||||
from ips_cargoes_ext;
|
||||
|
||||
|
||||
create table IPS_VESSELS_EXT
|
||||
(
|
||||
id VARCHAR2(36),
|
||||
registrati VARCHAR2(240),
|
||||
name VARCHAR2(240),
|
||||
lbd VARCHAR2(20),
|
||||
max_draugh VARCHAR2(20),
|
||||
cruising_s VARCHAR2(20),
|
||||
callsign VARCHAR2(240),
|
||||
mmsi VARCHAR2(40),
|
||||
length VARCHAR2(20),
|
||||
breadth VARCHAR2(20),
|
||||
ctt_id VARCHAR2(36),
|
||||
cty_id VARCHAR2(12),
|
||||
deadweight VARCHAR2(20),
|
||||
gross_tonn VARCHAR2(20),
|
||||
net_tonnag VARCHAR2(20),
|
||||
horsepower VARCHAR2(12),
|
||||
gps_from_b VARCHAR2(20),
|
||||
gps_from_c VARCHAR2(20),
|
||||
gps_from_s VARCHAR2(20),
|
||||
inmarsat_n VARCHAR2(240),
|
||||
trn VARCHAR2(20),
|
||||
vtp_id VARCHAR2(36),
|
||||
vtmis_id VARCHAR2(36)
|
||||
)
|
||||
ORGANIZATION EXTERNAL
|
||||
(TYPE ORACLE_LOADER
|
||||
DEFAULT DIRECTORY DMPDIR
|
||||
ACCESS PARAMETERS
|
||||
(
|
||||
RECORDS DELIMITED BY NEWLINE
|
||||
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
|
||||
)
|
||||
LOCATION ('vessels.csv')
|
||||
);
|
||||
|
||||
insert into ips_vessels
|
||||
(id,
|
||||
registrati,
|
||||
name,
|
||||
lbd,
|
||||
max_draugh,
|
||||
cruising_s,
|
||||
callsign,
|
||||
mmsi,
|
||||
length,
|
||||
breadth,
|
||||
ctt_id,
|
||||
cty_id,
|
||||
deadweight,
|
||||
gross_tonn,
|
||||
net_tonnag,
|
||||
horsepower,
|
||||
gps_from_b,
|
||||
gps_from_c,
|
||||
gps_from_s,
|
||||
inmarsat_n,
|
||||
trn,
|
||||
vtp_id,
|
||||
vtmis_id)
|
||||
select id,
|
||||
registrati,
|
||||
name,
|
||||
TO_NUMBER(lbd, '9999999999D99', 'NLS_NUMERIC_CHARACTERS=''.,''') as lbd,
|
||||
TO_NUMBER(max_draugh, '9999999999D99', 'NLS_NUMERIC_CHARACTERS=''.,''') as max_draugh,
|
||||
TO_NUMBER(cruising_s, '9999999999D99', 'NLS_NUMERIC_CHARACTERS=''.,''') as cruising_s,
|
||||
callsign,
|
||||
mmsi,
|
||||
TO_NUMBER(length, '9999999999D99', 'NLS_NUMERIC_CHARACTERS=''.,''') as length,
|
||||
TO_NUMBER(breadth, '9999999999D99', 'NLS_NUMERIC_CHARACTERS=''.,''') as breadth,
|
||||
ctt_id,
|
||||
TO_NUMBER(cty_id, '9999999999D99', 'NLS_NUMERIC_CHARACTERS=''.,''') as cty_id,
|
||||
TO_NUMBER(deadweight, '9999999999D99', 'NLS_NUMERIC_CHARACTERS=''.,''') as deadweight,
|
||||
TO_NUMBER(gross_tonn, '9999999999D99', 'NLS_NUMERIC_CHARACTERS=''.,''') as gross_tonn,
|
||||
TO_NUMBER(net_tonnag, '9999999999D99', 'NLS_NUMERIC_CHARACTERS=''.,''') as net_tonnag,
|
||||
TO_NUMBER(horsepower, '9999999999D99', 'NLS_NUMERIC_CHARACTERS=''.,''') as horsepower,
|
||||
TO_NUMBER(gps_from_b, '9999999999D99', 'NLS_NUMERIC_CHARACTERS=''.,''') as gps_from_b,
|
||||
TO_NUMBER(gps_from_c, '9999999999D99', 'NLS_NUMERIC_CHARACTERS=''.,''') as gps_from_c,
|
||||
TO_NUMBER(gps_from_s, '9999999999D99', 'NLS_NUMERIC_CHARACTERS=''.,''') as gps_from_s,
|
||||
inmarsat_n,
|
||||
TO_NUMBER(trn, '9999999999D99', 'NLS_NUMERIC_CHARACTERS=''.,''') as trn,
|
||||
vtp_id,
|
||||
vtmis_id
|
||||
from ips_vessels_ext;
|
||||
|
||||
|
||||
create table IPS_VOYAGE_LOCKS_EXT
|
||||
(
|
||||
id VARCHAR2(36),
|
||||
vye_id VARCHAR2(36),
|
||||
"date" DATE,
|
||||
rpt_id VARCHAR2(36),
|
||||
op_min VARCHAR2(36),
|
||||
op_prep VARCHAR2(36),
|
||||
id_lock VARCHAR2(36),
|
||||
lock_name VARCHAR2(16)
|
||||
)
|
||||
ORGANIZATION EXTERNAL
|
||||
(TYPE ORACLE_LOADER
|
||||
DEFAULT DIRECTORY DMPDIR
|
||||
ACCESS PARAMETERS
|
||||
(
|
||||
RECORDS DELIMITED BY NEWLINE
|
||||
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
|
||||
(id, vye_id, "date" date 'yyyymmddhh24miss', rpt_id, op_min, op_prep, id_lock, lock_name)
|
||||
)
|
||||
LOCATION ('voyage_locks.csv')
|
||||
);
|
||||
|
||||
|
||||
insert into ips_voyage_locks
|
||||
(id, vye_id, "date", rpt_id, op_min, op_prep, id_lock, lock_name)
|
||||
select id,
|
||||
vye_id,
|
||||
"date",
|
||||
rpt_id,
|
||||
TO_NUMBER(op_min, '99999999D99', 'NLS_NUMERIC_CHARACTERS=''.,''') as op_min,
|
||||
TO_NUMBER(op_prep, '99999999D99', 'NLS_NUMERIC_CHARACTERS=''.,''') as op_prep,
|
||||
id_lock,
|
||||
lock_name
|
||||
from ips_voyage_locks_ext;
|
||||
|
||||
|
||||
create table IPS_VOYAGES_EXT
|
||||
(
|
||||
id VARCHAR2(36),
|
||||
generation DATE,
|
||||
ctt_id VARCHAR2(36),
|
||||
vms_id VARCHAR2(36),
|
||||
convoy_nam VARCHAR2(100),
|
||||
declaratio VARCHAR2(8),
|
||||
notificati DATE,
|
||||
notificat2 VARCHAR2(20),
|
||||
origin VARCHAR2(100),
|
||||
destinatio VARCHAR2(100),
|
||||
state VARCHAR2(1)
|
||||
)
|
||||
ORGANIZATION EXTERNAL
|
||||
(TYPE ORACLE_LOADER
|
||||
DEFAULT DIRECTORY DMPDIR
|
||||
ACCESS PARAMETERS
|
||||
(
|
||||
RECORDS DELIMITED BY NEWLINE
|
||||
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
|
||||
(id,generation date 'yyyymmddhh24miss',ctt_id,vms_id,convoy_nam,declaratio,notificati date 'yyyymmddhh24miss',notificat2,origin,destinatio,state)
|
||||
)
|
||||
LOCATION ('voyages.csv')
|
||||
);
|
||||
|
||||
|
||||
insert into ips_voyages
|
||||
(id,
|
||||
generation,
|
||||
ctt_id,
|
||||
vms_id,
|
||||
convoy_nam,
|
||||
declaratio,
|
||||
notificati,
|
||||
notificat2,
|
||||
origin,
|
||||
destinatio,
|
||||
state)
|
||||
select id,
|
||||
generation,
|
||||
ctt_id,
|
||||
vms_id,
|
||||
convoy_nam,
|
||||
declaratio,
|
||||
notificati,
|
||||
notificat2,
|
||||
origin,
|
||||
destinatio,
|
||||
TO_NUMBER(state, '9', 'NLS_NUMERIC_CHARACTERS=''.,''') as state
|
||||
from ips_voyages_ext;
|
||||
|
||||
|
||||
CREATE TABLE ips_berthings_ext
|
||||
(
|
||||
id varchar2 (36),
|
||||
arrival_ti DATE ,
|
||||
voy_id varchar2 (36) ,
|
||||
departure_ DATE ,
|
||||
rpt_id varchar2 (36) ,
|
||||
ctt_id varchar2 (36) ,
|
||||
ves_id varchar2 (36)
|
||||
)
|
||||
ORGANIZATION EXTERNAL
|
||||
( TYPE ORACLE_LOADER
|
||||
DEFAULT DIRECTORY "DMPDIR"
|
||||
ACCESS PARAMETERS
|
||||
( RECORDS DELIMITED BY NEWLINE
|
||||
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
|
||||
(id, arrival_ti date 'yyyymmddhh24miss', voy_id, departure_ date 'yyyymmddhh24miss', rpt_id, ctt_id, ves_id)
|
||||
)
|
||||
LOCATION
|
||||
( 'berthings.csv'
|
||||
)
|
||||
)
|
||||
;
|
||||
|
||||
insert into ips_berthings
|
||||
(id, arrival_ti, voy_id, departure_, rpt_id, ctt_id, ves_id)
|
||||
select id, arrival_ti, voy_id, departure_, rpt_id, ctt_id, ves_id from ips_berthings_ext;
|
||||
|
||||
|
||||
|
||||
CREATE TABLE ips_route_points_ext
|
||||
(
|
||||
id varchar2 (36) ,
|
||||
acronym varchar2 (6),
|
||||
name varchar2 (100),
|
||||
cnl_id NUMBER (2, 0)
|
||||
)
|
||||
ORGANIZATION EXTERNAL
|
||||
( TYPE ORACLE_LOADER
|
||||
DEFAULT DIRECTORY "DMPDIR"
|
||||
ACCESS PARAMETERS
|
||||
( RECORDS DELIMITED BY NEWLINE
|
||||
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
|
||||
(id, acronym, name, cnl_id)
|
||||
)
|
||||
LOCATION
|
||||
( 'route_points.csv'
|
||||
)
|
||||
)
|
||||
;
|
||||
INSERT INTO ips_route_points
|
||||
(id, acronym, name, cnl_id)
|
||||
SELECT id, acronym, name, cnl_id FROM ips_route_points_ext;
|
||||
|
||||
ENDTEXT
|
||||
|
||||
|
||||
Reference in New Issue
Block a user