Initial commit — sursa ROAACNPRO

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-10 16:01:00 +03:00
commit fab869990d
68 changed files with 11444 additions and 0 deletions

501
curatare.prg Normal file
View 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