diff --git a/cadastre/forms/cadastre_import_form.ui b/cadastre/forms/cadastre_import_form.ui
index 13b74796..391c5010 100644
--- a/cadastre/forms/cadastre_import_form.ui
+++ b/cadastre/forms/cadastre_import_form.ui
@@ -346,10 +346,10 @@
2012
- 2022
+ 2023
- 2022
+ 2023
@@ -369,10 +369,10 @@
2012
- 2022
+ 2023
- 2022
+ 2023
diff --git a/cadastre/scripts/plugin/2023/majic3_formatage_donnees.sql b/cadastre/scripts/plugin/2023/majic3_formatage_donnees.sql
new file mode 100644
index 00000000..b8b84e4e
--- /dev/null
+++ b/cadastre/scripts/plugin/2023/majic3_formatage_donnees.sql
@@ -0,0 +1,1093 @@
+-- FORMATAGE DONNEES : DEBUT
+BEGIN;
+
+-- Traitement: parcelle
+INSERT INTO [PREFIXE]parcelle
+(
+ parcelle, annee, ccodep, ccodir, ccocom, ccopre, ccosec, dnupla, dcntpa, dsrpar, dnupro, jdatat, dreflf, gpdl, cprsecr, ccosecr, dnuplar, dnupdl, gurbpa,
+ dparpi, ccoarp, gparnf, gparbat, parrev, gpardp, fviti, dnvoiri, dindic, ccovoi, ccoriv, ccocif, ccpper, gpafpd, ajoutcoherence,
+ comptecommunal, pdl, voie,
+ cconvo, dvoilib, ccocomm, ccoprem, ccosecm, dnuplam, parcellefiliation, type_filiation,
+ ccoifp, inspireid,
+ lot
+)
+SELECT
+ REPLACE(SUBSTRING(tmp,1,15),' ','0') AS parcelle,
+ '[ANNEE]' AS annee,
+ SUBSTRING(tmp,1,2) AS ccodep,
+ SUBSTRING(tmp,3,1) AS ccodir,
+ SUBSTRING(tmp,4,3) AS ccocom,
+ SUBSTRING(tmp,7,3) AS ccopre,
+ SUBSTRING(tmp,10,2) AS ccosec,
+ SUBSTRING(tmp,12,4) AS dnupla,
+
+ to_number(SUBSTRING(tmp,22,9),'000000000') AS dcntpa,
+ NULL AS dsrpar, -- supprime en 2018
+ SUBSTRING(tmp,32,6) AS dnupro,
+ CASE WHEN trim(SUBSTRING(tmp,38,8))='' THEN NULL ELSE SUBSTRING(tmp,38,8) END AS jdatat,
+ SUBSTRING(tmp,46,5) AS dreflf,
+ SUBSTRING(tmp,51,1) AS gpdl,
+
+ SUBSTRING(tmp,52,3) AS cprsecr,
+ SUBSTRING(tmp,55,2) AS ccosecr,
+ SUBSTRING(tmp,57,4) AS dnuplar,
+ CASE WHEN trim(SUBSTRING(tmp,61,3))='' THEN NULL ELSE SUBSTRING(tmp,61,3) END AS dnupdl,
+ CASE WHEN SUBSTRING(tmp,64,1) IS NULL THEN ' ' ELSE SUBSTRING(tmp,64,1) END AS gurbpa,
+ SUBSTRING(tmp,65,4) AS dparpi,
+ CASE WHEN SUBSTRING(tmp,69,1) IS NULL THEN ' ' ELSE SUBSTRING(tmp,69,1) END AS ccoarp,
+ CASE WHEN (SUBSTRING(tmp,70,1) IS NULL OR SUBSTRING(tmp,70,1) != '1') THEN '0' ELSE SUBSTRING(tmp,70,1) END AS gparnf,
+ CASE WHEN (SUBSTRING(tmp,71,1) IS NULL OR SUBSTRING(tmp,71,1) != '1') THEN '0' ELSE SUBSTRING(tmp,71,1) END AS gparbat,
+
+ SUBSTRING(tmp,72,12) AS parrev,
+ CASE WHEN SUBSTRING(tmp,84,01) IS NULL THEN '0' WHEN SUBSTRING(tmp,84,01) != '1' THEN '0' ELSE SUBSTRING(tmp,84,01) END AS gpardp,
+ SUBSTRING(tmp,85,01) AS fviti,
+
+ SUBSTRING(tmp,86,4) AS dnvoiri,
+ SUBSTRING(tmp,90,1) AS dindic,
+ SUBSTRING(tmp,91,5) AS ccovoi,
+ SUBSTRING(tmp,96,4) AS ccoriv,
+ SUBSTRING(tmp,100,4) AS ccocif,
+ SUBSTRING(tmp,122,3) AS ccpper,
+ SUBSTRING(tmp,104,1) AS gpafpd,
+ 'N',
+ REPLACE(SUBSTRING(tmp,1,2)||SUBSTRING(tmp,3,4)||SUBSTRING(tmp,32,6),' ', '0') AS comptecommunal,
+ CASE WHEN trim(SUBSTRING(tmp,61,3))='' THEN NULL ELSE REPLACE(SUBSTRING(tmp,1,6)||SUBSTRING(tmp,52,9)||SUBSTRING(tmp,61,3),' ', '0') END AS pdl,
+ CASE WHEN trim(SUBSTRING(tmp,91,5))='' THEN NULL ELSE REPLACE(SUBSTRING(tmp,1,6)||SUBSTRING(tmp,91,5)||SUBSTRING(tmp,96,4),' ', '0') END AS voie,
+
+ TRIM(SUBSTRING(tmp,136,4)) AS cconvo,
+ SUBSTRING(tmp,140,26) AS dvoilib,
+
+ CASE WHEN trim(SUBSTRING(tmp,166,3))='' THEN NULL ELSE SUBSTRING(tmp,166,3) END AS ccocomm,
+ CASE WHEN trim(SUBSTRING(tmp,169,3))='' THEN NULL ELSE SUBSTRING(tmp,169,3) END AS ccoprem,
+ CASE WHEN trim(SUBSTRING(tmp,172,2))='' THEN NULL ELSE SUBSTRING(tmp,172,2) END AS ccosecm,
+ CASE WHEN trim(SUBSTRING(tmp,174,4))='' THEN NULL ELSE SUBSTRING(tmp,174,4) END AS dnuplam,
+ CASE WHEN trim(SUBSTRING(tmp,174,4))='' THEN NULL ELSE REPLACE(SUBSTRING(tmp,1,3)||SUBSTRING(tmp,166,12),' ','0') END AS parcellefiliation,
+ SUBSTRING(tmp,178,1) AS type_filiation,
+
+ CASE WHEN trim(SUBSTRING(tmp,179,3))='' THEN NULL ELSE to_number(SUBSTRING(tmp,179,3),'999') END AS ccoifp,
+ REPLACE('FR'||SUBSTRING(tmp,1,15),' ','0') AS inspireid,
+
+ '[LOT]' as lot
+FROM [PREFIXE]nbat WHERE SUBSTRING(tmp,20,2) ='10';
+
+-- Traitement: suf
+INSERT INTO [PREFIXE]suf
+(
+ suf, annee,ccodep, ccodir, ccocom, ccopre, ccosec, dnupla, ccosub, dcntsf, dnupro, gnexps, drcsub, drcsuba, ccostn, cgrnum, dsgrpf, dclssf, cnatsp,
+ drgpos, ccoprel, ccosecl, dnuplal, dnupdl, dnulot, rclsi, gnidom, topja, datja, postel,
+ ccortar,
+ parcelle, comptecommunal, pdl, lot
+)
+SELECT
+ REPLACE(SUBSTRING(tmp,1,15)||CASE WHEN SUBSTRING(tmp,16,2) IS NULL THEN '' ELSE trim(SUBSTRING(tmp,16,2)) END,' ','0') AS suf,
+ '[ANNEE]',
+ SUBSTRING(tmp,1,2) AS ccodep,
+ SUBSTRING(tmp,3,1) AS ccodir,
+ SUBSTRING(tmp,4,3) AS ccocom,
+ SUBSTRING(tmp,7,3) AS ccopre,
+ SUBSTRING(tmp,10,2) AS ccosec,
+ SUBSTRING(tmp,12,4) AS dnupla,
+ CASE WHEN SUBSTRING(tmp,16,2) IS NULL THEN '' ELSE trim(SUBSTRING(tmp,16,2)) END AS ccosub,
+
+ CASE WHEN trim(SUBSTRING(tmp,22,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,22,9),'999999999') END AS dcntsf,
+ SUBSTRING(tmp,31,6) AS dnupro,
+ CASE WHEN trim(SUBSTRING(tmp,37,2))='' THEN NULL ELSE SUBSTRING(tmp,37,2) END AS gnexps,
+ CASE WHEN trim(SUBSTRING(tmp,39,10))='' THEN NULL ELSE to_number(SUBSTRING(tmp,39,10),'9999999999')/100 END AS drcsub,
+ CASE WHEN trim(SUBSTRING(tmp,49,10))='' THEN NULL ELSE to_number(SUBSTRING(tmp,49,10),'9999999999')/100 END AS drcsuba,
+ SUBSTRING(tmp,59,1) AS ccostn,
+ CASE WHEN trim(SUBSTRING(tmp,60,2))='' THEN NULL ELSE SUBSTRING(tmp,60,2) END AS cgrnum,
+ CASE WHEN trim(SUBSTRING(tmp,62,2))='' THEN NULL ELSE trim(SUBSTRING(tmp,62,2)) END AS dsgrpf,
+ SUBSTRING(tmp,64,2) AS dclssf,
+ CASE WHEN trim(SUBSTRING(tmp,66,5))='' THEN NULL ELSE trim(SUBSTRING(tmp,66,5)) END AS cnatsp,
+ SUBSTRING(tmp,71,1) AS drgpos,
+
+ SUBSTRING(tmp,72,3) AS ccoprel,
+ SUBSTRING(tmp,75,2) AS ccosecl,
+ SUBSTRING(tmp,77,4) AS dnuplal,
+ CASE WHEN trim(SUBSTRING(tmp,81,3))='' THEN NULL ELSE SUBSTRING(tmp,81,3) END AS dnupdl,
+ SUBSTRING(tmp,84,7) AS dnulot,
+
+ SUBSTRING(tmp,91,46) AS rclsi,
+
+ SUBSTRING(tmp,137,1) AS gnidom,
+ SUBSTRING(tmp,138,1) AS topja,
+ CASE WHEN trim(SUBSTRING(tmp,139,8))='' THEN NULL ELSE SUBSTRING(tmp,139,8) END AS datja,
+ SUBSTRING(tmp,147,1) AS postel,
+ CASE WHEN trim(SUBSTRING(tmp,148,3))='' THEN NULL ELSE to_number(SUBSTRING(tmp,148,3),'999') END AS ccortar,
+
+ REPLACE(SUBSTRING(tmp,1,15),' ', '0') AS parcelle,
+ REPLACE(SUBSTRING(tmp,1,2)||SUBSTRING(tmp,3,4)||SUBSTRING(tmp,31,6),' ', '0') AS comptecommunal,
+ CASE WHEN trim(SUBSTRING(tmp,81,3))='' THEN NULL ELSE REPLACE(SUBSTRING(tmp,1,6)||SUBSTRING(tmp,72,9)||SUBSTRING(tmp,81,3),' ', '0') END AS pdl,
+ '[LOT]' as lot
+FROM [PREFIXE]nbat WHERE SUBSTRING(tmp,20,2) ='21';
+
+-- Traitement: sufexoneration
+INSERT INTO [PREFIXE]sufexoneration
+(
+ sufexoneration, annee, ccodep, ccodir, ccocom, ccopre, ccosec, dnupla, ccosub, rnuexn, ccolloc, pexn, gnexts, jandeb, jfinex, fcexn, fcexna, rcexna,
+ rcexnba, mpexnba, suf, lot
+)
+SELECT
+ REPLACE(SUBSTRING(tmp,1,15)||CASE WHEN SUBSTRING(tmp,16,2) IS NULL THEN '' ELSE trim(SUBSTRING(tmp,16,2)) END||SUBSTRING(tmp,18,2),' ','0') AS sufexoneration,
+ '[ANNEE]',
+ SUBSTRING(tmp,1,2) AS ccodep,
+ SUBSTRING(tmp,3,1) AS ccodir,
+ SUBSTRING(tmp,4,3) AS ccocom,
+ SUBSTRING(tmp,7,3) AS ccopre,
+ SUBSTRING(tmp,10,2) AS ccosec,
+ SUBSTRING(tmp,12,4) AS dnupla,
+ CASE WHEN SUBSTRING(tmp,16,2) IS NULL THEN '' ELSE trim(SUBSTRING(tmp,16,2)) END AS ccosub,
+ SUBSTRING(tmp,18,2) AS rnuexn,
+ CASE WHEN trim(SUBSTRING(tmp,32,2))='' THEN NULL ELSE trim(SUBSTRING(tmp,32,2)) END AS ccolloc,
+ CASE WHEN trim(SUBSTRING(tmp,34,5))='' THEN NULL ELSE to_number(SUBSTRING(tmp,34,5),'99999') END AS pexn,
+ CASE WHEN trim(SUBSTRING(tmp,39,2))='' THEN NULL ELSE trim(SUBSTRING(tmp,39,2)) END AS gnexts,
+ SUBSTRING(tmp,41,4) AS jandeb,
+ SUBSTRING(tmp,45,4) AS jfinex,
+ SUBSTRING(tmp,49,10) AS fcexn,
+ SUBSTRING(tmp,59,10) AS fcexna,
+ SUBSTRING(tmp,69,10) AS rcexna,
+ CASE WHEN trim(SUBSTRING(tmp,79,10))='' THEN NULL ELSE to_number(SUBSTRING(tmp,79,10),'9999999999')/100 END AS rcexnba,
+ SUBSTRING(tmp,90,10) AS mpexnba,
+ REPLACE(SUBSTRING(tmp,1,15)||CASE WHEN SUBSTRING(tmp,16,2) IS NULL THEN '' ELSE trim(SUBSTRING(tmp,16,2)) END,' ', '0') AS suf,
+ '[LOT]' as lot
+FROM [PREFIXE]nbat WHERE SUBSTRING(tmp,20,2) ='30';
+
+-- Traitement: suftaxation
+INSERT INTO [PREFIXE]suftaxation
+(
+ suftaxation, annee,ccodep, ccodir, ccocom, ccopre, ccosec, dnupla, ccosub, c1majposa, c1bisufad, c2majposa, c2bisufad, c3majposa, c3bisufad, c4majposa, c4bisufad, cntmajtc,
+ suf, lot
+)
+SELECT
+ REPLACE(SUBSTRING(tmp,1,15)||CASE WHEN SUBSTRING(tmp,16,2) IS NULL THEN '' ELSE trim(SUBSTRING(tmp,16,2)) END,' ','0') AS suftaxation,
+ '[ANNEE]',
+ SUBSTRING(tmp,1,2) AS ccodep,
+ SUBSTRING(tmp,3,1) AS ccodir,
+ SUBSTRING(tmp,4,3) AS ccocom,
+ SUBSTRING(tmp,7,3) AS ccopre,
+ SUBSTRING(tmp,10,2) AS ccosec,
+ SUBSTRING(tmp,12,4) AS dnupla,
+ CASE WHEN SUBSTRING(tmp,16,2) IS NULL THEN '' ELSE trim(SUBSTRING(tmp,16,2)) END AS ccosub,
+ CASE WHEN trim(SUBSTRING(tmp,23,10))='' THEN NULL ELSE to_number(SUBSTRING(tmp,23,10),'9999999999')/100 END AS c1majposa,
+ CASE WHEN trim(SUBSTRING(tmp,34,10))='' THEN NULL ELSE to_number(SUBSTRING(tmp,34,10),'9999999999')/100 END AS c1bisufad,
+ CASE WHEN trim(SUBSTRING(tmp,45,10))='' THEN NULL ELSE to_number(SUBSTRING(tmp,45,10),'9999999999')/100 END AS c2majposa,
+ CASE WHEN trim(SUBSTRING(tmp,56,10))='' THEN NULL ELSE to_number(SUBSTRING(tmp,56,10),'9999999999')/100 END AS c2bisufad,
+ CASE WHEN trim(SUBSTRING(tmp,67,10))='' THEN NULL ELSE to_number(SUBSTRING(tmp,67,10),'9999999999')/100 END AS c3majposa,
+ CASE WHEN trim(SUBSTRING(tmp,78,10))='' THEN NULL ELSE to_number(SUBSTRING(tmp,78,10),'9999999999')/100 END AS c3bisufad,
+ CASE WHEN trim(SUBSTRING(tmp,89,10))='' THEN NULL ELSE to_number(SUBSTRING(tmp,89,10),'9999999999')/100 END AS c4majposa,
+ CASE WHEN trim(SUBSTRING(tmp,100,10))='' THEN NULL ELSE to_number(SUBSTRING(tmp,100,10),'9999999999')/100 END AS c4bisufad,
+ CASE WHEN trim(SUBSTRING(tmp,110,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,110,9),'999999999') END cntmajtc,
+ REPLACE(SUBSTRING(tmp,1,15)||CASE WHEN SUBSTRING(tmp,16,2) IS NULL THEN '' ELSE trim(SUBSTRING(tmp,16,2)) END,' ', '0') AS suf,
+ '[LOT]' as lot
+FROM [PREFIXE]nbat WHERE SUBSTRING(tmp,20,2) ='36';
+
+-- Traitement: local00
+INSERT INTO [PREFIXE]local00
+(
+ local00, annee, ccodep, ccodir, ccocom, invar, ccopre, ccosec, dnupla, dnubat, descr, dniv, dpor, ccoriv, ccovoi, dnvoiri, dindic, ccocif, dvoilib, cleinvar,
+ ccpper, locinc, parcelle, voie, lot
+)
+SELECT
+ REPLACE(SUBSTRING(tmp,1,3)||SUBSTRING(tmp,7,10),' ','0') AS local00,
+ '[ANNEE]',
+ SUBSTRING(tmp,1,2) AS ccodep,
+ SUBSTRING(tmp,3,1) AS ccodir,
+ SUBSTRING(tmp,4,3) AS ccocom,
+ SUBSTRING(tmp,7,10) AS invar,
+
+ SUBSTRING(tmp,36,3) AS ccopre,
+ SUBSTRING(tmp,39,2) AS ccosec,
+ SUBSTRING(tmp,41,4) AS dnupla,
+
+ SUBSTRING(tmp,46,2) AS dnubat,
+ SUBSTRING(tmp,48,2) AS descr,
+ SUBSTRING(tmp,50,2) AS dniv,
+ SUBSTRING(tmp,52,5) AS dpor,
+ SUBSTRING(tmp,57,4) AS ccoriv,
+
+ SUBSTRING(tmp,62,5) AS ccovoi,
+ SUBSTRING(tmp,67,4) AS dnvoiri,
+ SUBSTRING(tmp,71,1) AS dindic,
+ SUBSTRING(tmp,72,4) AS ccocif,
+ SUBSTRING(tmp,76,30) AS dvoilib,
+ SUBSTRING(tmp,106,1) AS cleinvar,
+ SUBSTRING(tmp,125,3) AS ccpper,
+ SUBSTRING(tmp,107,1) AS locinc,
+ REPLACE(SUBSTRING(tmp,1,6)||SUBSTRING(tmp,36,9),' ', '0') AS parcelle,
+ REPLACE(SUBSTRING(tmp,1,6)||SUBSTRING(tmp,62,5),' ', '0')||SUBSTRING(tmp,57,4) AS voie,
+ '[LOT]' as lot
+FROM [PREFIXE]bati WHERE SUBSTRING(tmp,31,2) ='00';
+
+-- Traitement: local10
+INSERT INTO [PREFIXE]local10
+(
+ local10, annee,ccodep, ccodir, ccocom, invar, gpdl, dsrpar, dnupro, jdatat, dnufnl, ccoeva, ccitlv, dteloc, gtauom, dcomrd, ccoplc, cconlc, dvltrt,
+ ccoape, cc48lc, dloy48a, top48a, dnatlc, dnupas, gnexcf, dtaucf, cchpr, jannat, dnbniv, hlmsem, postel, dnatcg, jdatcgl, dnutbx, dvltla,
+ janloc, ccsloc, fburx, gimtom, cbtabt, jdtabt, jrtabt, jacloc, cconac,
+ toprev, ccoifp,
+ comptecommunal, lot
+)
+SELECT
+ REPLACE(SUBSTRING(tmp,1,3)||SUBSTRING(tmp,7,10),' ','0') AS local10,
+ '[ANNEE]',
+ SUBSTRING(tmp,1,2) AS ccodep,
+ SUBSTRING(tmp,3,1) AS ccodir,
+ SUBSTRING(tmp,4,3) AS ccocom,
+ SUBSTRING(tmp,7,10) AS invar,
+
+ SUBSTRING(tmp,36,1) AS gpdl,
+ NULL AS dsrpar, -- supprime
+ SUBSTRING(tmp,38,6) AS dnupro,
+ CASE WHEN trim(SUBSTRING(tmp,44,8))='' THEN NULL ELSE SUBSTRING(tmp,44,8) END AS jdatat,
+ SUBSTRING(tmp,52,6) AS dnufnl,
+ CASE WHEN trim(SUBSTRING(tmp,58,1))='' THEN NULL ELSE trim(SUBSTRING(tmp,58,1)) END AS ccoeva,
+
+ SUBSTRING(tmp,59,1) AS ccitlv,
+
+ CASE WHEN trim(SUBSTRING(tmp,60,1))='' THEN NULL ELSE trim(SUBSTRING(tmp,60,1)) END AS dteloc,
+ SUBSTRING(tmp,61,2) AS gtauom,
+ SUBSTRING(tmp,63,3) AS dcomrd,
+ SUBSTRING(tmp,66,1) AS ccoplc,
+ CASE WHEN trim(SUBSTRING(tmp,67,2))='' THEN NULL ELSE trim(SUBSTRING(tmp,67,2)) END AS cconlc,
+ CASE WHEN trim(SUBSTRING(tmp,69,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,69,9),'999999999') END AS dvltrt,
+
+ SUBSTRING(tmp,78,4) AS ccoape,
+
+ SUBSTRING(tmp,82,2) AS cc48lc,
+ CASE WHEN trim(SUBSTRING(tmp,84,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,84,9),'999999999') END AS dloy48a,
+ CASE WHEN trim(SUBSTRING(tmp,93,1))='' THEN NULL ELSE trim(SUBSTRING(tmp,93,1)) END AS top48a,
+ CASE WHEN trim(SUBSTRING(tmp,94,1))='' THEN NULL ELSE trim(SUBSTRING(tmp,94,1)) END AS dnatlc,
+
+ SUBSTRING(tmp,95,8) AS dnupas,
+ SUBSTRING(tmp,103,2) AS gnexcf,
+ SUBSTRING(tmp,105,3) AS dtaucf,
+
+ SUBSTRING(tmp,108,1) AS cchpr,
+ SUBSTRING(tmp,109,4) AS jannat,
+ SUBSTRING(tmp,113,2) AS dnbniv,
+ CASE WHEN trim(SUBSTRING(tmp,115,1))='' THEN NULL ELSE trim(SUBSTRING(tmp,115,1)) END AS hlmsem,
+ SUBSTRING(tmp,116,1) AS postel,
+ SUBSTRING(tmp,117,2) AS dnatcg,
+ CASE WHEN trim(SUBSTRING(tmp,119,8))='' THEN NULL ELSE SUBSTRING(tmp,119,8) END AS jdatcgl,
+
+ SUBSTRING(tmp,127,6) AS dnutbx,
+ SUBSTRING(tmp,133,9) AS dvltla,
+ SUBSTRING(tmp,142,4) AS janloc,
+ SUBSTRING(tmp,146,2) AS ccsloc,
+
+ CASE WHEN trim(SUBSTRING(tmp,148,1))='' THEN NULL ELSE to_number(SUBSTRING(tmp,148,1),'9') END AS fburx,
+ SUBSTRING(tmp,149,1) AS gimtom,
+ SUBSTRING(tmp,150,2) AS cbtabt,
+ SUBSTRING(tmp,152,4) AS jdtabt,
+ SUBSTRING(tmp,156,4) AS jrtabt,
+
+ SUBSTRING(tmp,160,4) AS jacloc,
+
+ SUBSTRING(tmp,169,5) AS cconac,
+ SUBSTRING(tmp,174,1) AS toprev,
+ CASE WHEN trim(SUBSTRING(tmp,175,3))='' THEN NULL ELSE to_number(SUBSTRING(tmp,175,3),'999') END AS ccoifp,
+
+ REPLACE(SUBSTRING(tmp,1,2)||SUBSTRING(tmp,3,4)||SUBSTRING(tmp,38,6),' ', '0') AS comptecommunal,
+ '[LOT]' as lot
+FROM [PREFIXE]bati WHERE SUBSTRING(tmp,31,2) ='10';
+
+CREATE INDEX idxan_local00 ON local00 (annee);
+CREATE INDEX idxan_local10 ON local10 (annee);
+CREATE INDEX idx_local10_invar ON [PREFIXE]local10 (invar);
+CREATE INDEX idx_local00_invar ON [PREFIXE]local00 (invar);
+UPDATE [PREFIXE]local10 SET
+ ccopre = local00.ccopre,
+ ccosec = local00.ccosec,
+ dnupla = local00.dnupla,
+ ccoriv = local00.ccoriv,
+ ccovoi = local00.ccovoi,
+ dnvoiri = local00.dnvoiri,
+ local00 = local10.ccodep||local10.ccodir||local10.invar,
+ parcelle = REPLACE(local10.ccodep||local10.ccodir||local10.ccocom||local00.ccopre||local00.ccosec||local00.dnupla,' ', '0'),
+ voie= REPLACE(local10.ccodep||local10.ccodir||local10.ccocom||local00.ccovoi||local00.ccoriv,' ', '0')
+FROM [PREFIXE]local00
+WHERE local00.ccodep = local10.ccodep AND local00.ccodir = local10.ccodir AND local00.invar = local10.invar AND local00.annee='[ANNEE]' AND local10.annee='[ANNEE]';
+
+-- Traitement: pev
+INSERT INTO [PREFIXE]pev
+(
+ pev, annee, ccodep, ccodir, ccocom, invar,
+ dnupev,
+ ccoaff, ccostb, dcapec, dcetlc,
+ ccocac, dnutrf, dcfloc, dsupot, dvlper, dvlpera, gnexpl,
+ ccthp, retimp, dnuref, gnidom,
+ dvltpe,
+ tpevtieom, ccortar, ccorvl, dtaurv, dcmloc, dcsplca, dcsglca, dcralca,
+ local10, lot
+ )
+SELECT
+ REPLACE(SUBSTRING(tmp,1,3)||SUBSTRING(tmp,7,10)||SUBSTRING(tmp,28,3),' ','0') AS pev,
+ '[ANNEE]',
+ SUBSTRING(tmp,1,2) AS ccodep,
+ SUBSTRING(tmp,3,1) AS ccodir,
+ SUBSTRING(tmp,4,3) AS ccocom,
+ SUBSTRING(tmp,7,10) AS invar,
+
+ SUBSTRING(tmp,28,3) AS dnupev,
+
+ CASE WHEN trim(SUBSTRING(tmp,36,1))='' THEN NULL ELSE trim(SUBSTRING(tmp,36,1)) END AS ccoaff,
+ SUBSTRING(tmp,37,1) AS ccostb,
+ SUBSTRING(tmp,38,2) AS dcapec,
+ CASE WHEN trim(SUBSTRING(tmp,40,3))='' THEN NULL ELSE to_number(SUBSTRING(tmp,40,3),'999')/100 END AS dcetlc,
+
+ SUBSTRING(tmp,46,4) AS ccocac,
+ SUBSTRING(tmp,50,2) AS dnutrf,
+ CASE WHEN trim(SUBSTRING(tmp,52,3))='' THEN NULL ELSE to_number(SUBSTRING(tmp,52,3),'999') END AS dcfloc,
+ CASE WHEN trim(SUBSTRING(tmp,55,6))='' THEN NULL ELSE to_number(SUBSTRING(tmp,55,6),'999999') END AS dsupot,
+ CASE WHEN trim(SUBSTRING(tmp,61,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,61,9),'999999999') END AS dvlper,
+ CASE when trim(SUBSTRING(tmp,70,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,70,9),'999999999') END AS dvlpera,
+ CASE WHEN trim(SUBSTRING(tmp,79,2))='' THEN NULL ELSE trim(SUBSTRING(tmp,79,2)) END AS gnexpl,
+
+ SUBSTRING(tmp,111,1) AS ccthp,
+ SUBSTRING(tmp,112,1) AS retimp,
+ SUBSTRING(tmp,113,3) AS dnuref,
+ SUBSTRING(tmp,116,1) AS gnidom,
+
+ CASE when trim(SUBSTRING(tmp,130,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,130,9),'999999999') END AS dvltpe,
+
+ CASE WHEN trim(SUBSTRING(tmp,144,1))='' THEN NULL ELSE to_number(SUBSTRING(tmp,144,1),'9') END AS tpevtieom,
+
+ CASE WHEN trim(SUBSTRING(tmp,145,3))='' THEN NULL ELSE to_number(SUBSTRING(tmp,145,3),'999') END AS ccortar,
+ SUBSTRING(tmp,148,2) AS ccorvl,
+ CASE WHEN trim(SUBSTRING(tmp,150,3))='' THEN NULL ELSE to_number(SUBSTRING(tmp,150,3),'999') END AS dtaurv,
+ CASE WHEN trim(SUBSTRING(tmp,153,3))='' THEN NULL ELSE to_number(SUBSTRING(tmp,153,3),'999') END AS dcmloc,
+ SUBSTRING(tmp,156,5) AS dcsplca,
+ SUBSTRING(tmp,161,5) AS dcsglca,
+ SUBSTRING(tmp,166,5) AS dcralca,
+
+
+ SUBSTRING(tmp,1,3)||SUBSTRING(tmp,7,10) AS local10,
+ '[LOT]' as lot
+FROM [PREFIXE]bati WHERE SUBSTRING(tmp,31,2) ='21';
+
+-- Traitement: pevexoneration
+INSERT INTO [PREFIXE]pevexoneration
+(
+ pevexoneration, annee,ccodep, ccodir, ccocom, invar, Janbil, dnupev, dnuexb, ccolloc, pexb, gnextl, jandeb, janimp, vecdif, vecdifa, fcexb, fcexba, rcexba,
+ dvldif2, dvldif2a, fcexb2, fcexba2, rcexba2,
+ valplaf,
+ pev, lot
+)
+SELECT
+ REPLACE(SUBSTRING(tmp,1,3)||SUBSTRING(tmp,7,10)||SUBSTRING(tmp,28,3)||SUBSTRING(tmp,33,3)||CASE WHEN SUBSTRING(tmp,24,4) IS NOT NULL THEN trim(SUBSTRING(tmp,24,4)) ELSE SUBSTRING(tmp,24,4) END, ' ','0') AS pevexoneration,
+ '[ANNEE]',
+ SUBSTRING(tmp,1,2) AS ccodep,
+ SUBSTRING(tmp,3,1) AS ccodir,
+ SUBSTRING(tmp,4,3) AS ccocom,
+ SUBSTRING(tmp,7,10) AS invar,
+
+ CASE WHEN SUBSTRING(tmp,24,4) IS NOT NULL THEN trim(SUBSTRING(tmp,24,4)) ELSE SUBSTRING(tmp,24,4) END AS janbil,
+ SUBSTRING(tmp,28,3) AS dnupev,
+
+ SUBSTRING(tmp,33,3) AS dnuexb,
+ CASE WHEN trim(SUBSTRING(tmp,36,2))='' THEN NULL ELSE trim(SUBSTRING(tmp,36,2)) END AS ccolloc,
+ CASE WHEN trim(SUBSTRING(tmp,38,5))='' THEN NULL ELSE to_number(SUBSTRING(tmp,38,5),'99999')/100 END AS pexb,
+ CASE WHEN trim(SUBSTRING(tmp,43,2))='' THEN NULL ELSE trim(SUBSTRING(tmp,43,2)) END AS gnextl,
+ SUBSTRING(tmp,45,4) AS jandeb,
+ SUBSTRING(tmp,49,4) AS janimp,
+
+ SUBSTRING(tmp,53,9) AS vecdif,
+ SUBSTRING(tmp,63,9) AS vecdifa,
+ SUBSTRING(tmp,73,9) AS fcexb,
+ SUBSTRING(tmp,83,9) AS fcexba,
+ SUBSTRING(tmp,93,9) AS rcexba,
+
+ CASE WHEN trim(SUBSTRING(tmp,103,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,103,9),'999999999') END AS dvldif2,
+
+ CASE WHEN trim(SUBSTRING(tmp,113,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,113,9),'999999999') END AS dvldif2a,
+
+ CASE WHEN trim(SUBSTRING(tmp,123,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,123,9),'999999999') END AS fcexb2,
+
+ CASE WHEN trim(SUBSTRING(tmp,133,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,133,9),'999999999') END AS fcexba2,
+
+ CASE WHEN trim(SUBSTRING(tmp,143,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,143,9),'999999999') END AS rcexba2,
+
+ CASE WHEN trim(SUBSTRING(tmp,173,10))='' THEN NULL ELSE SUBSTRING(tmp,173,10) END AS valplaf,
+
+
+ REPLACE(SUBSTRING(tmp,1,3)||SUBSTRING(tmp,7,10)||SUBSTRING(tmp,28,3),' ', '0') AS pev,
+
+ '[LOT]' as lot
+FROM [PREFIXE]bati WHERE SUBSTRING(tmp,31,2) ='30';
+
+-- Traitement: pevexoneration_imposable
+INSERT INTO [PREFIXE]pevexoneration_imposable
+(
+ pevexoneration_imposable, annee,ccodep, ccodir, ccocom, invar, Janbil, dnupev, dnuexb, ccolloc, pexb, gnextl, jandeb, janimp, vecdif, vecdifa, fcexb, fcexba, rcexba,
+ dvldif2, dvldif2a, fcexb2, fcexba2, rcexba2,
+ valplaf,
+ pev, lot
+)
+SELECT
+ REPLACE(SUBSTRING(tmp,1,3)||SUBSTRING(tmp,7,10)||SUBSTRING(tmp,28,3)||SUBSTRING(tmp,33,3)||CASE WHEN SUBSTRING(tmp,24,4) IS NOT NULL THEN trim(SUBSTRING(tmp,24,4)) ELSE SUBSTRING(tmp,24,4) END, ' ','0') AS pevexoneration_imposable,
+ '[ANNEE]',
+ SUBSTRING(tmp,1,2) AS ccodep,
+ SUBSTRING(tmp,3,1) AS ccodir,
+ SUBSTRING(tmp,4,3) AS ccocom,
+ SUBSTRING(tmp,7,10) AS invar,
+
+ CASE WHEN SUBSTRING(tmp,24,4) IS NOT NULL THEN trim(SUBSTRING(tmp,24,4)) ELSE SUBSTRING(tmp,24,4) END AS janbil,
+ SUBSTRING(tmp,28,3) AS dnupev,
+
+ SUBSTRING(tmp,33,3) AS dnuexb,
+ CASE WHEN trim(SUBSTRING(tmp,36,2))='' THEN NULL ELSE trim(SUBSTRING(tmp,36,2)) END AS ccolloc,
+ CASE WHEN trim(SUBSTRING(tmp,38,5))='' THEN NULL ELSE to_number(SUBSTRING(tmp,38,5),'99999')/100 END AS pexb,
+ CASE WHEN trim(SUBSTRING(tmp,43,2))='' THEN NULL ELSE trim(SUBSTRING(tmp,43,2)) END AS gnextl,
+ SUBSTRING(tmp,45,4) AS jandeb,
+ SUBSTRING(tmp,49,4) AS janimp,
+
+ SUBSTRING(tmp,53,9) AS vecdif,
+ SUBSTRING(tmp,63,9) AS vecdifa,
+ SUBSTRING(tmp,73,9) AS fcexb,
+ SUBSTRING(tmp,83,9) AS fcexba,
+ SUBSTRING(tmp,93,9) AS rcexba,
+
+ CASE WHEN trim(SUBSTRING(tmp,103,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,103,9),'999999999') END AS dvldif2,
+
+ CASE WHEN trim(SUBSTRING(tmp,113,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,113,9),'999999999') END AS dvldif2a,
+
+ CASE WHEN trim(SUBSTRING(tmp,123,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,123,9),'999999999') END AS fcexb2,
+
+ CASE WHEN trim(SUBSTRING(tmp,133,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,133,9),'999999999') END AS fcexba2,
+
+ CASE WHEN trim(SUBSTRING(tmp,143,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,143,9),'999999999') END AS rcexba2,
+
+ CASE WHEN trim(SUBSTRING(tmp,173,10))='' THEN NULL ELSE SUBSTRING(tmp,173,10) END AS valplaf,
+
+
+ REPLACE(SUBSTRING(tmp,1,3)||SUBSTRING(tmp,7,10)||SUBSTRING(tmp,28,3),' ', '0') AS pev,
+
+ '[LOT]' as lot
+FROM [PREFIXE]bati WHERE SUBSTRING(tmp,31,2) ='30';
+
+-- Traitement: pevexoneration_imposee
+INSERT INTO [PREFIXE]pevexoneration_imposee
+(
+ pevexoneration_imposee, annee,ccodep, ccodir, ccocom, invar, Janbil, dnupev, dnuexb, ccolloc, pexb, gnextl, jandeb, janimp, vecdif, vecdifa, fcexb, fcexba, rcexba,
+ dvldif2, dvldif2a, fcexb2, fcexba2, rcexba2,
+ valplaf,
+ pev, lot
+)
+SELECT
+ REPLACE(SUBSTRING(tmp,1,3)||SUBSTRING(tmp,7,10)||SUBSTRING(tmp,28,3)||SUBSTRING(tmp,33,3)||CASE WHEN SUBSTRING(tmp,24,4) IS NOT NULL THEN trim(SUBSTRING(tmp,24,4)) ELSE SUBSTRING(tmp,24,4) END, ' ','0') AS pevexoneration_imposee,
+ '[ANNEE]',
+ SUBSTRING(tmp,1,2) AS ccodep,
+ SUBSTRING(tmp,3,1) AS ccodir,
+ SUBSTRING(tmp,4,3) AS ccocom,
+ SUBSTRING(tmp,7,10) AS invar,
+
+ CASE WHEN SUBSTRING(tmp,24,4) IS NOT NULL THEN trim(SUBSTRING(tmp,24,4)) ELSE SUBSTRING(tmp,24,4) END AS janbil,
+ SUBSTRING(tmp,28,3) AS dnupev,
+
+ SUBSTRING(tmp,33,3) AS dnuexb,
+ CASE WHEN trim(SUBSTRING(tmp,36,2))='' THEN NULL ELSE trim(SUBSTRING(tmp,36,2)) END AS ccolloc,
+ CASE WHEN trim(SUBSTRING(tmp,38,5))='' THEN NULL ELSE to_number(SUBSTRING(tmp,38,5),'99999')/100 END AS pexb,
+ CASE WHEN trim(SUBSTRING(tmp,43,2))='' THEN NULL ELSE trim(SUBSTRING(tmp,43,2)) END AS gnextl,
+ SUBSTRING(tmp,45,4) AS jandeb,
+ SUBSTRING(tmp,49,4) AS janimp,
+
+ SUBSTRING(tmp,53,9) AS vecdif,
+ SUBSTRING(tmp,63,9) AS vecdifa,
+ SUBSTRING(tmp,73,9) AS fcexb,
+ SUBSTRING(tmp,83,9) AS fcexba,
+ SUBSTRING(tmp,93,9) AS rcexba,
+
+ CASE WHEN trim(SUBSTRING(tmp,103,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,103,9),'999999999') END AS dvldif2,
+
+ CASE WHEN trim(SUBSTRING(tmp,113,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,113,9),'999999999') END AS dvldif2a,
+
+ CASE WHEN trim(SUBSTRING(tmp,123,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,123,9),'999999999') END AS fcexb2,
+
+ CASE WHEN trim(SUBSTRING(tmp,133,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,133,9),'999999999') END AS fcexba2,
+
+ CASE WHEN trim(SUBSTRING(tmp,143,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,143,9),'999999999') END AS rcexba2,
+
+ CASE WHEN trim(SUBSTRING(tmp,173,10))='' THEN NULL ELSE SUBSTRING(tmp,173,10) END AS valplaf,
+
+
+ REPLACE(SUBSTRING(tmp,1,3)||SUBSTRING(tmp,7,10)||SUBSTRING(tmp,28,3),' ', '0') AS pev,
+
+ '[LOT]' as lot
+FROM [PREFIXE]bati WHERE SUBSTRING(tmp,31,2) ='31';
+
+-- Traitement: pevtaxation
+INSERT INTO [PREFIXE]pevtaxation
+(
+ pevtaxation, annee,ccodep, ccodir, ccocom, invar, janbil, dnupev, co_vlbai, co_vlbaia, co_bipevla, de_vlbai, de_vlbaia, de_bipevla,
+ tse_vlbai, tse_vlbaia, tse_bipevla, gp_vlbai, gp_vlbaia, gp_bipevla, bateom, baomec,
+ mvltieomx,
+ pev, lot
+)
+SELECT
+ REPLACE(SUBSTRING(tmp,1,3)||SUBSTRING(tmp,7,10)||SUBSTRING(tmp,28,3), ' ', '0') AS pevtaxation,
+ '[ANNEE]',
+ SUBSTRING(tmp,1,2) AS ccodep,
+ SUBSTRING(tmp,3,1) AS ccodir,
+ SUBSTRING(tmp,4,3) AS ccocom,
+ SUBSTRING(tmp,7,10) AS invar,
+
+ SUBSTRING(tmp,24,4) AS janbil,
+ SUBSTRING(tmp,28,3) AS dnupev,
+
+ CASE WHEN trim(SUBSTRING(tmp,36,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,36,9),'999999999') END AS co_vlbai,
+
+ CASE WHEN trim(SUBSTRING(tmp,46,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,46,9),'999999999') END AS co_vlbaia,
+
+ CASE WHEN trim(SUBSTRING(tmp,56,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,56,9),'999999999') END AS co_bipevla,
+
+ CASE WHEN trim(SUBSTRING(tmp,66,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,66,9),'999999999') END AS de_vlbai,
+ CASE WHEN trim(SUBSTRING(tmp,76,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,76,9),'999999999') END AS de_vlbaia,
+ CASE WHEN trim(SUBSTRING(tmp,86,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,86,9),'999999999') END AS de_bipevla,
+ CASE WHEN trim(SUBSTRING(tmp,96,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,96,9),'999999999') END AS tse_vlbai,
+ CASE WHEN trim(SUBSTRING(tmp,106,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,106,9),'999999999') END AS tse_vlbaia,
+ CASE WHEN trim(SUBSTRING(tmp,116,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,116,9),'999999999') END AS tse_bipevla,
+ CASE WHEN trim(SUBSTRING(tmp,126,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,126,9),'999999999') END AS gp_vlbai,
+ CASE WHEN trim(SUBSTRING(tmp,136,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,136,9),'999999999') END AS gp_vlbaia,
+ CASE WHEN trim(SUBSTRING(tmp,146,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,146,9),'999999999') END AS gp_bipevla,
+ CASE WHEN trim(SUBSTRING(tmp,156,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,156,9),'999999999') END AS bateom,
+
+ CASE WHEN trim(SUBSTRING(tmp,166,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,166,9),'999999999') END AS baomec,
+ CASE WHEN trim(SUBSTRING(tmp,175,6))='' THEN NULL ELSE to_number(SUBSTRING(tmp,175,6),'999999') END AS mvltieomx,
+
+ REPLACE(SUBSTRING(tmp,1,3)||SUBSTRING(tmp,7,10)||SUBSTRING(tmp,28,3),' ', '0') AS pev,
+ '[LOT]' as lot
+FROM [PREFIXE]bati WHERE SUBSTRING(tmp,31,2) ='36';
+
+-- Traitement: pevprincipale
+INSERT INTO [PREFIXE]pevprincipale
+(
+ pevprincipale, annee,ccodep, ccodir, ccocom, invar, dnupev, dnudes, dep1_cconad, dep1_dsueic, dep1_dcimei, dep2_cconad, dep2_dsueic, dep2_dcimei, dep3_cconad,
+ dep3_dsueic, dep3_dcimei, dep4_cconad, dep4_dsueic, dep4_dcimei, geaulc, gelelc, gesclc, ggazlc, gasclc, gchclc, gvorlc, gteglc, dnbbai, dnbdou,
+ dnblav, dnbwc, deqdha, dnbppr, dnbsam, dnbcha, dnbcu8, dnbcu9, dnbsea, dnbann, dnbpdc, dsupdc, dmatgm, dmatto, jannat, detent, dnbniv,
+ pev, lot
+ )
+SELECT
+ REPLACE(SUBSTRING(tmp,1,3)||SUBSTRING(tmp,7,10)||SUBSTRING(tmp,28,3)||CASE WHEN SUBSTRING(tmp,33,3) IS NOT NULL THEN trim(SUBSTRING(tmp,33,3)) ELSE SUBSTRING(tmp,33,3) END,' ','0') AS pevprincipale,
+ '[ANNEE]' as annee,
+ SUBSTRING(tmp,1,2) AS ccodep,
+ SUBSTRING(tmp,3,1) AS ccodir,
+ SUBSTRING(tmp,4,3) AS ccocom,
+ SUBSTRING(tmp,7,10) AS invar,
+
+ SUBSTRING(tmp,28,3) AS dnupev,
+
+ CASE WHEN SUBSTRING(tmp,33,3) IS NOT NULL THEN trim(SUBSTRING(tmp,33,3)) ELSE SUBSTRING(tmp,33,3) END AS dnudes,
+ CASE WHEN trim(SUBSTRING(tmp,36,2))='' THEN NULL ELSE trim(SUBSTRING(tmp,36,2)) END AS dep1_cconad,
+ CASE WHEN trim(SUBSTRING(tmp,38,6))='' THEN NULL ELSE to_number(SUBSTRING(tmp,38,6),'999999') END AS dep1_dsueic,
+ CASE WHEN trim(SUBSTRING(tmp,44,2))='' THEN NULL ELSE to_number(SUBSTRING(tmp,44,2),'99')/10 END AS dep1_dcimei,
+ CASE WHEN trim(SUBSTRING(tmp,46,2))='' THEN NULL ELSE trim(SUBSTRING(tmp,46,2)) END AS dep2_cconad,
+ CASE WHEN trim(SUBSTRING(tmp,48,6))='' THEN NULL ELSE to_number(SUBSTRING(tmp,48,6),'999999') END AS dep2_dsueic,
+ CASE WHEN trim(SUBSTRING(tmp,54,2))='' THEN NULL ELSE to_number(SUBSTRING(tmp,54,2),'99')/10 END AS dep2_dcimei,
+ CASE WHEN trim(SUBSTRING(tmp,56,2))='' THEN NULL ELSE trim(SUBSTRING(tmp,56,2)) END AS dep3_cconad,
+ CASE WHEN trim(SUBSTRING(tmp,58,6))='' THEN NULL ELSE to_number(SUBSTRING(tmp,58,6),'999999') END AS dep3_dsueic,
+ CASE WHEN trim(SUBSTRING(tmp,64,2))='' THEN NULL ELSE to_number(SUBSTRING(tmp,64,2),'99')/10 END AS dep3_dcimei,
+ CASE WHEN trim(SUBSTRING(tmp,66,2))='' THEN NULL ELSE trim(SUBSTRING(tmp,66,2)) END AS dep4_cconad,
+ CASE WHEN trim(SUBSTRING(tmp,68,6))='' THEN NULL ELSE to_number(SUBSTRING(tmp,68,6),'999999') END AS dep4_dsueic,
+ CASE WHEN trim(SUBSTRING(tmp,74,2))='' THEN NULL ELSE to_number(SUBSTRING(tmp,74,2),'99')/10 END AS dep4_dcimei,
+
+ SUBSTRING(tmp,76,1) AS geaulc,
+ SUBSTRING(tmp,77,1) AS gelelc,
+ SUBSTRING(tmp,78,1) AS gesclc,
+ SUBSTRING(tmp,79,1) AS ggazlc,
+ SUBSTRING(tmp,80,1) AS gasclc,
+ SUBSTRING(tmp,81,1) AS gchclc,
+ SUBSTRING(tmp,82,1) AS gvorlc,
+ SUBSTRING(tmp,83,1) AS gteglc,
+ SUBSTRING(tmp,84,2) AS dnbbai,
+ SUBSTRING(tmp,86,2) AS dnbdou,
+ SUBSTRING(tmp,88,2) AS dnblav,
+ SUBSTRING(tmp,90,2) AS dnbwc,
+ CASE WHEN trim(SUBSTRING(tmp,92,3))='' THEN NULL ELSE to_number(SUBSTRING(tmp,92,3),'999') END AS deqdha,
+
+ SUBSTRING(tmp,95,2) AS dnbppr,
+ SUBSTRING(tmp,97,2) AS dnbsam,
+ SUBSTRING(tmp,99,2) AS dnbcha,
+ SUBSTRING(tmp,101,2) AS dnbcu8,
+ SUBSTRING(tmp,103,2) AS dnbcu9,
+ SUBSTRING(tmp,105,2) AS dnbsea,
+ SUBSTRING(tmp,107,2) AS dnbann,
+ SUBSTRING(tmp,109,2) AS dnbpdc,
+ CASE WHEN trim(SUBSTRING(tmp,111,6))='' THEN NULL ELSE to_number(SUBSTRING(tmp,111,6),'999999') END AS dsupdc,
+
+ SUBSTRING(tmp,117,2) AS dmatgm,
+ SUBSTRING(tmp,119,2) AS dmatto,
+ SUBSTRING(tmp,121,4) AS jannat,
+ SUBSTRING(tmp,125,1) AS detent,
+ SUBSTRING(tmp,126,2) AS dnbniv,
+
+ REPLACE(SUBSTRING(tmp,1,3)||SUBSTRING(tmp,7,10)||SUBSTRING(tmp,28,3),' ', '0') AS pev,
+ '[LOT]' as lot
+FROM [PREFIXE]bati WHERE SUBSTRING(tmp,31,2) ='40';
+
+-- Traitement: pevprofessionnelle
+INSERT INTO [PREFIXE]pevprofessionnelle
+(
+ pevprofessionnelle, annee,
+ ccodep, ccodir, ccocom, invar,
+ dnupev,
+ dsupot, dsup1, dsup2, dsup3,
+ dsupk1, dsupk2,
+ pev, lot
+)
+SELECT
+ REPLACE(SUBSTRING(tmp,1,3)||SUBSTRING(tmp,7,10)||SUBSTRING(tmp,28,3)||SUBSTRING(tmp,33,3), ' ', '0') AS pevprofessionnelle,
+ '[ANNEE]',
+ SUBSTRING(tmp,1,2) AS ccodep,
+ SUBSTRING(tmp,3,1) AS ccodir,
+ SUBSTRING(tmp,4,3) AS ccocom,
+ SUBSTRING(tmp,7,10) AS invar,
+
+ SUBSTRING(tmp,28,3) AS dnupev,
+
+ CASE WHEN trim(SUBSTRING(tmp,36,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,36,9),'999999999') END AS dsupot,
+ CASE WHEN trim(SUBSTRING(tmp,45,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,45,9),'999999999') END AS dsup1,
+ CASE WHEN trim(SUBSTRING(tmp,54,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,54,9),'999999999') END AS dsup2,
+ CASE WHEN trim(SUBSTRING(tmp,63,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,63,9),'999999999') END AS dsup3,
+ CASE WHEN trim(SUBSTRING(tmp,72,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,72,9),'999999999') END AS dsupk1,
+ CASE WHEN trim(SUBSTRING(tmp,81,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,81,9),'999999999') END AS dsupk2,
+
+ REPLACE(SUBSTRING(tmp,1,3)||SUBSTRING(tmp,7,10)||SUBSTRING(tmp,28,3),' ', '0') AS pev,
+ '[LOT]' AS lot
+FROM [PREFIXE]bati WHERE SUBSTRING(tmp,31,2) ='50';
+
+-- Traitement:
+INSERT INTO [PREFIXE]pevlissage
+(
+ pevlissage, annee,
+ ccodep, ccodir, ccocom, invar,
+ dnupev,
+ mlbcom, mlbsyn, mlbcu , mlbdep,
+ mlbts1, mlbts2, mlbtas,
+ mlbgem, mlbtom, tbfpas, mlbtfc,
+ pev, lot
+)
+SELECT DISTINCT
+ REPLACE(SUBSTRING(tmp,1,3)||SUBSTRING(tmp,7,10)||SUBSTRING(tmp,28,3),' ', '0') AS pevlissage,
+ '[ANNEE]',
+ SUBSTRING(tmp,1,2) AS ccodep,
+ SUBSTRING(tmp,3,1) AS ccodir,
+ SUBSTRING(tmp,4,3) AS ccocom,
+ SUBSTRING(tmp,7,10) AS invar,
+
+ SUBSTRING(tmp,28,3) AS dnupev,
+
+
+ CASE WHEN trim(SUBSTRING(tmp,36,11))='' THEN NULL ELSE to_number(SUBSTRING(tmp,36,11),'99999999999') END AS mlbcom,
+ CASE WHEN trim(SUBSTRING(tmp,48,11))='' THEN NULL ELSE to_number(SUBSTRING(tmp,48,11),'99999999999') END AS mlbsyn,
+ CASE WHEN trim(SUBSTRING(tmp,60,11))='' THEN NULL ELSE to_number(SUBSTRING(tmp,60,11),'99999999999') END AS mlbcu,
+ CASE WHEN trim(SUBSTRING(tmp,72,11))='' THEN NULL ELSE to_number(SUBSTRING(tmp,72,11),'99999999999') END AS mlbdep,
+ CASE WHEN trim(SUBSTRING(tmp,84,11))='' THEN NULL ELSE to_number(SUBSTRING(tmp,84,11),'99999999999') END AS mlbts1,
+ CASE WHEN trim(SUBSTRING(tmp,96,11))='' THEN NULL ELSE to_number(SUBSTRING(tmp,96,11),'99999999999') END AS mlbts2,
+ CASE WHEN trim(SUBSTRING(tmp,108,11))='' THEN NULL ELSE to_number(SUBSTRING(tmp,108,11),'99999999999') END AS mlbtas,
+ CASE WHEN trim(SUBSTRING(tmp,120,11))='' THEN NULL ELSE to_number(SUBSTRING(tmp,120,11),'99999999999') END AS mlbgem,
+ CASE WHEN trim(SUBSTRING(tmp,132,11))='' THEN NULL ELSE to_number(SUBSTRING(tmp,132,11),'99999999999') END AS mlbtom,
+ CASE WHEN trim(SUBSTRING(tmp,144,11))='' THEN NULL ELSE to_number(SUBSTRING(tmp,144,11),'99999999999') END AS tbfpas,
+ CASE WHEN trim(SUBSTRING(tmp,168,11))='' THEN NULL ELSE to_number(SUBSTRING(tmp,168,11),'99999999999') END AS mlbtfc,
+
+ REPLACE(SUBSTRING(tmp,1,3)||SUBSTRING(tmp,7,10)||SUBSTRING(tmp,28,3),' ', '0') AS pev,
+ '[LOT]' AS lot
+
+FROM [PREFIXE]bati WHERE SUBSTRING(tmp,31,2) ='52';
+
+-- Traitement: pevdependances
+INSERT INTO [PREFIXE]pevdependances
+(
+ pevdependances, annee, ccodep, ccodir, ccocom, invar, dnupev, dnudes, dsudep, cconad, asitet, dmatgm, dmatto, detent, geaulc, gelelc, gchclc, dnbbai, dnbdou,
+ dnblav, dnbwc, deqtlc, dcimlc, dcetde, dcspde, dcspdea,
+ pev, lot
+)
+select
+ REPLACE(SUBSTRING(tmp,1,3)||SUBSTRING(tmp,7,10)||SUBSTRING(tmp,28,3)||SUBSTRING(tmp,33,3), ' ', '0') AS pevdependances,
+ '[ANNEE]' AS annee,
+ SUBSTRING(tmp,1,2) AS ccodep,
+ SUBSTRING(tmp,3,1) AS ccodir,
+ SUBSTRING(tmp,4,3) AS ccocom,
+ SUBSTRING(tmp,7,10) AS invar,
+
+ SUBSTRING(tmp,28,3) AS dnupev,
+
+ SUBSTRING(tmp,33,3) AS dnudes,
+ CASE WHEN trim(SUBSTRING(tmp,36,6))='' THEN NULL ELSE to_number(SUBSTRING(tmp,36,6),'999999') END AS dsudep,
+ CASE WHEN trim(SUBSTRING(tmp,42,2))='' THEN NULL ELSE trim(SUBSTRING(tmp,42,2)) END AS cconad,
+ SUBSTRING(tmp,44,6) AS asitet,
+
+ SUBSTRING(tmp,50,2) AS dmatgm,
+ SUBSTRING(tmp,52,2) AS dmatto,
+ SUBSTRING(tmp,54,1) AS detent,
+ SUBSTRING(tmp,55,1) AS geaulc,
+ SUBSTRING(tmp,56,1) AS gelelc,
+ SUBSTRING(tmp,57,1) AS gchclc,
+ SUBSTRING(tmp,58,2) AS dnbbai,
+ SUBSTRING(tmp,60,2) AS dnbdou,
+ SUBSTRING(tmp,62,2) AS dnblav,
+ SUBSTRING(tmp,64,2) AS dnbwc,
+ CASE WHEN trim(SUBSTRING(tmp,66,3))='' THEN NULL ELSE to_number(SUBSTRING(tmp,66,3),'999') END AS deqtlc,
+ CASE WHEN trim(SUBSTRING(tmp,69,2))='' THEN NULL ELSE to_number(SUBSTRING(tmp,69,2),'99')/10 END AS dcimlc,
+ CASE WHEN trim(SUBSTRING(tmp,71,3))='' THEN NULL ELSE to_number(SUBSTRING(tmp,71,3),'999')/100 END AS dcetde,
+
+ SUBSTRING(tmp,74,3) AS dcspde,
+
+ SUBSTRING(tmp,77,6) AS dcspdea,
+
+ REPLACE(SUBSTRING(tmp,1,3)||SUBSTRING(tmp,7,10)||SUBSTRING(tmp,28,3),' ', '0') AS pev,
+ '[LOT]' as lot
+FROM [PREFIXE]bati WHERE SUBSTRING(tmp,31,2) ='60';
+
+
+-- Traitement: commune_majic
+INSERT INTO [PREFIXE]commune_majic
+(
+ commune, annee, ccodep, ccodir, ccocom, libcom, lot
+)
+SELECT
+ REPLACE(SUBSTRING(tmp,1,6),' ', '0') AS commune,
+ '[ANNEE]',
+ SUBSTRING(tmp,1,2) AS ccodep,
+ SUBSTRING(tmp,3,1) AS ccodir,
+ SUBSTRING(tmp,4,3) AS ccocom,
+ trim(SUBSTRING(tmp,17)) AS libcom,
+ '[LOT]' as lot
+FROM [PREFIXE]bati WHERE trim(SUBSTRING(tmp,7,10))='' AND trim(SUBSTRING(tmp,4,3)) != '';
+
+
+-- Traitement: proprietaire
+INSERT INTO [PREFIXE]proprietaire
+(
+ proprietaire, annee, ccodep, ccodir, ccocom, dnupro, dnulp, ccocif, dnuper, ccodro, ccodem, gdesip, gtoper, ccoqua, dnatpr, ccogrm, dsglpm, dforme,
+ ddenom, gtyp3, gtyp4, gtyp5, gtyp6, dlign3, dlign4, dlign5, dlign6, ccopay, ccodep1a2, ccodira, ccocom_adr, ccovoi, ccoriv, dnvoiri, dindic,
+ ccopos,
+ dqualp, dnomlp, dprnlp, jdatnss, dldnss, epxnee, dnomcp, dprncp,
+ dsiren,
+ topja, datja,
+ dformjur, dnomus, dprnus,
+ comptecommunal, lot
+)
+SELECT DISTINCT ON (ccodep,ccocom,dnupro,dnulp,dnuper)
+ REPLACE(SUBSTRING(tmp,1,2)||SUBSTRING(tmp,7,6)||SUBSTRING(tmp,13,2)||SUBSTRING(tmp,19,6), ' ', '0') AS proprietaire,
+ '[ANNEE]' AS annee,
+ SUBSTRING(tmp,1,2) AS ccodep,
+ SUBSTRING(tmp,3,1) AS ccodir,
+ SUBSTRING(tmp,4,3) AS ccocom,
+ SUBSTRING(tmp,7,6) AS dnupro,
+ SUBSTRING(tmp,13,2) AS dnulp,
+ SUBSTRING(tmp,15,4) AS ccocif,
+ SUBSTRING(tmp,19,6) AS dnuper,
+ CASE WHEN trim(SUBSTRING(tmp,25,1))='' THEN NULL ELSE trim(SUBSTRING(tmp,25,1)) END AS ccodro,
+ CASE WHEN trim(SUBSTRING(tmp,26,1))='' THEN NULL ELSE trim(SUBSTRING(tmp,26,1)) END AS ccodem,
+ SUBSTRING(tmp,27,1) AS gdesip,
+ CASE WHEN trim(SUBSTRING(tmp,28,1))='' THEN NULL ELSE trim(SUBSTRING(tmp,28,1)) END AS gtoper,
+ CASE WHEN trim(SUBSTRING(tmp,29,1))='' THEN NULL ELSE trim(SUBSTRING(tmp,29,1)) END AS ccoqua,
+ CASE WHEN trim(SUBSTRING(tmp,35,3))='' THEN NULL ELSE trim(SUBSTRING(tmp,35,3)) END AS dnatpr,
+ CASE WHEN trim(SUBSTRING(tmp,38,2))='' THEN NULL ELSE trim(SUBSTRING(tmp,38,2)) END AS ccogrm,
+ SUBSTRING(tmp,40,10) AS dsglpm,
+ SUBSTRING(tmp,50,4) AS dforme,
+ SUBSTRING(tmp,57,60) AS ddenom,
+ CASE WHEN trim(SUBSTRING(tmp,117,1))='' THEN NULL ELSE trim(SUBSTRING(tmp,117,1)) END AS gtyp3,
+ CASE WHEN trim(SUBSTRING(tmp,118,1))='' THEN NULL ELSE trim(SUBSTRING(tmp,118,1)) END AS gtyp4,
+ CASE WHEN trim(SUBSTRING(tmp,119,1))='' THEN NULL ELSE trim(SUBSTRING(tmp,119,1)) END AS gtyp5,
+ CASE WHEN trim(SUBSTRING(tmp,120,1))='' THEN NULL ELSE trim(SUBSTRING(tmp,120,1)) END AS gtyp6,
+ SUBSTRING(tmp,121,30) AS dlign3,
+ SUBSTRING(tmp,151,36) AS dlign4,
+ SUBSTRING(tmp,187,30) AS dlign5,
+ SUBSTRING(tmp,217,32) AS dlign6,
+ SUBSTRING(tmp,249,3) AS ccopay,
+ SUBSTRING(tmp,252,2) AS ccodep1a2,
+ SUBSTRING(tmp,254,1) AS ccodira,
+ SUBSTRING(tmp,255,3) AS ccocom_adr,
+ SUBSTRING(tmp,258,5) AS ccovoi,
+ SUBSTRING(tmp,263,4) AS ccoriv,
+ SUBSTRING(tmp,267,4) AS dnvoiri,
+ SUBSTRING(tmp,271,1) AS dindic,
+ SUBSTRING(tmp,272,5) AS ccopos,
+
+ SUBSTRING(tmp,287,3) AS dqualp,
+ SUBSTRING(tmp,290,30) AS dnomlp,
+ SUBSTRING(tmp,320,15) AS dprnlp,
+ CASE WHEN trim(SUBSTRING(tmp,335,10))='' THEN NULL WHEN SUBSTRING(tmp,335,10)='00/00/0000' THEN NULL ELSE SUBSTRING(tmp,335,10) END AS jdatnss,
+ SUBSTRING(tmp,345,58) AS dldnss,
+ NULL AS epxnee,
+ NULL AS dnomcp,
+ NULL AS dprncp,
+ SUBSTRING(tmp,467,9) AS dsiren,
+
+ SUBSTRING(tmp,478,1) AS topja,
+ CASE WHEN trim(SUBSTRING(tmp,479,8))='' THEN NULL ELSE SUBSTRING(tmp,479,8) END AS datja,
+
+ SUBSTRING(tmp,534,4) AS dformjur,
+ SUBSTRING(tmp,538,60) AS dnomus,
+ SUBSTRING(tmp,598,40) AS dprnus,
+
+
+ REPLACE(SUBSTRING(tmp,1,2)||SUBSTRING(tmp,3,4)||SUBSTRING(tmp,7,6),' ', '0') AS comptecommunal,
+ '[LOT]' as lot
+FROM [PREFIXE]prop
+WHERE trim(SUBSTRING(tmp,7,6)) != ''
+ORDER BY ccodep,ccocom,dnupro,dnulp,dnuper;
+
+-- création: comptecommunal à partir de proprietaire
+CREATE INDEX idxan_proprietaire ON proprietaire (annee);
+INSERT INTO [PREFIXE]comptecommunal
+ (comptecommunal, annee, ccodep, ccodir, ccocom, dnupro, ajoutcoherence, lot)
+SELECT
+ REPLACE(ccodep||ccodir||ccocom||dnupro,' ', '0') AS comptecommunal,
+ '[ANNEE]',
+ ccodep,
+ ccodir,
+ ccocom,
+ dnupro,
+ 'N',
+ '[LOT]' as lot
+FROM [PREFIXE]proprietaire
+WHERE annee='[ANNEE]' AND lot='[LOT]'
+GROUP BY ccodep, ccodir, ccocom, dnupro;
+
+-- Traitement: pdl
+INSERT INTO [PREFIXE]pdl
+(
+ pdl, annee, ccodep, ccodir, ccocom, ccopre, ccosec, dnupla, dnupdl, dnivim, ctpdl, dmrpdl, gprmut, dnupro, ccocif,
+ parcelle, comptecommunal, lot
+)
+SELECT
+ REPLACE(SUBSTRING(tmp,1,18),' ', '0') AS pdl,
+ '[ANNEE]',
+ SUBSTRING(tmp,1,2) AS ccodep,
+ SUBSTRING(tmp,3,1) AS ccodir,
+ SUBSTRING(tmp,4,3) AS ccocom,
+ SUBSTRING(tmp,7,3) AS ccopre,
+ SUBSTRING(tmp,10,2) AS ccosec,
+ SUBSTRING(tmp,12,4) AS dnupla,
+ SUBSTRING(tmp,16,3) AS dnupdl,
+ SUBSTRING(tmp,28,1) AS dnivim,
+ CASE WHEN trim(SUBSTRING(tmp,29,3))='' THEN NULL ELSE trim(SUBSTRING(tmp,29,3)) END AS ctpdl,
+ SUBSTRING(tmp,62,20) AS dmrpdl,
+ SUBSTRING(tmp,82,1) AS gprmut,
+ SUBSTRING(tmp,83,6) AS dnupro,
+ SUBSTRING(tmp,94,4) AS ccocif,
+ REPLACE(SUBSTRING(tmp,1,15),' ', '0') AS parcelle,
+ REPLACE(SUBSTRING(tmp,1,2)||SUBSTRING(tmp,3,4)||SUBSTRING(tmp,83,6),' ', '0') AS comptecommunal,
+ '[LOT]' as lot
+FROM [PREFIXE]pdll WHERE SUBSTRING(tmp,26,2) ='10';
+
+-- Traitement: parcellecomposante
+INSERT INTO [PREFIXE]parcellecomposante
+(
+ parcellecomposante, annee, ccodep, ccodir, ccocom, ccopre, ccosec, dnupla, dnupdl, ccoprea, ccoseca, dnuplaa, ccocif,
+ pdl, parcelle,parcellea, lot
+)
+SELECT
+ REPLACE(SUBSTRING(tmp,1,18)||SUBSTRING(tmp,28,9),' ', '0') AS parcellecomposante,
+ '[ANNEE]',
+ SUBSTRING(tmp,1,2) AS ccodep,
+ SUBSTRING(tmp,3,1) AS ccodir,
+ SUBSTRING(tmp,4,3) AS ccocom,
+ SUBSTRING(tmp,7,3) AS ccopre,
+ SUBSTRING(tmp,10,2) AS ccosec,
+ SUBSTRING(tmp,12,4) AS dnupla,
+ SUBSTRING(tmp,16,3) AS dnupdl,
+ SUBSTRING(tmp,28,3) AS ccoprea,
+ SUBSTRING(tmp,31,2) AS ccoseca,
+ SUBSTRING(tmp,33,4) AS dnuplaa,
+ SUBSTRING(tmp,94,4) AS ccocif,
+ REPLACE(SUBSTRING(tmp,1,18),' ', '0') AS pdl,
+ REPLACE(SUBSTRING(tmp,1,15),' ', '0') AS parcelle,
+ CASE WHEN trim(SUBSTRING(tmp,33,4)) ='' THEN null ELSE REPLACE(SUBSTRING(tmp,1,6)||SUBSTRING(tmp,28,9),' ', '0') END parcellea,
+ '[LOT]' as lot
+FROM [PREFIXE]pdll WHERE SUBSTRING(tmp,26,2) ='20';
+
+-- Traitement: lots
+INSERT INTO [PREFIXE]lots
+(
+ lots, annee, ccodep, ccodir, ccocom, ccopre, ccosec, dnupla, dnupdl, dnulot, cconlo, dcntlo, dnumql, ddenql, dfilot, datact, dnuprol, dreflf, ccocif,
+ pdl, comptecommunal, parcelle, lot
+)
+SELECT
+ REPLACE(SUBSTRING(tmp,1,25),' ', '0') AS lots,
+ '[ANNEE]',
+ SUBSTRING(tmp,1,2) AS ccodep,
+ SUBSTRING(tmp,3,1) AS ccodir,
+ SUBSTRING(tmp,4,3) AS ccocom,
+ SUBSTRING(tmp,7,3) AS ccopre,
+ SUBSTRING(tmp,10,2) AS ccosec,
+ SUBSTRING(tmp,12,4) AS dnupla,
+ SUBSTRING(tmp,16,3) AS dnupdl,
+ SUBSTRING(tmp,19,7) AS dnulot,
+ CASE WHEN trim(SUBSTRING(tmp,28,1))='' THEN NULL ELSE trim(SUBSTRING(tmp,28,1)) END AS cconlo,
+ CASE WHEN trim(SUBSTRING(tmp,29,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,29,9),'999999999') END AS dcntlo,
+ CASE WHEN trim(SUBSTRING(tmp,38,7))='' THEN NULL ELSE to_number(SUBSTRING(tmp,38,7),'9999999') END AS dnumql,
+ CASE WHEN trim(SUBSTRING(tmp,45,7))='' THEN NULL ELSE to_number(SUBSTRING(tmp,45,7),'999999') END AS ddenql,
+ SUBSTRING(tmp,52,20) AS dfilot,
+ CASE WHEN trim(SUBSTRING(tmp,72,8))='' THEN NULL ELSE SUBSTRING(tmp,72,8) END AS datact,
+ SUBSTRING(tmp,83,6) AS dnuprol,
+ SUBSTRING(tmp,89,5) AS dreflf,
+ SUBSTRING(tmp,94,4) AS ccocif,
+ REPLACE(SUBSTRING(tmp,1,18),' ', '0') AS pdl,
+ REPLACE(SUBSTRING(tmp,1,2)||SUBSTRING(tmp,3,4)||SUBSTRING(tmp,83,6),' ', '0') AS comptecommunal,
+ REPLACE(SUBSTRING(tmp,1,15),' ', '0') AS parcelle,
+ '[LOT]' as lot
+FROM [PREFIXE]pdll WHERE SUBSTRING(tmp,26,2) ='30';
+
+-- Traitement: lotslocaux
+INSERT INTO [PREFIXE]lotslocaux
+(
+ lotslocaux, annee, ccodepl, ccodirl, ccocoml, ccoprel, ccosecl, dnuplal, dnupdl, dnulot, ccodebpb, ccodird, ccocomb, ccopreb, invloc, dnumql, ddenql,
+ lots, local00, local10, lot
+)
+SELECT DISTINCT
+ REPLACE(SUBSTRING(tmp,1,25)||SUBSTRING(tmp,37,10),' ', '0') AS lotslocaux,
+ '[ANNEE]',
+ SUBSTRING(tmp,1,2) AS ccodepl,
+ SUBSTRING(tmp,3,1) AS ccodirl,
+ SUBSTRING(tmp,4,3) AS ccocoml,
+ SUBSTRING(tmp,7,3) AS ccoprel,
+ SUBSTRING(tmp,10,2) AS ccosecl,
+ SUBSTRING(tmp,12,4) AS dnuplal,
+ SUBSTRING(tmp,16,3) AS dnupdl,
+ SUBSTRING(tmp,19,7) AS dnulot,
+ SUBSTRING(tmp,28,2) AS ccodebpb,
+ SUBSTRING(tmp,30,1) AS ccodird,
+ SUBSTRING(tmp,31,3) AS ccocomb,
+ SUBSTRING(tmp,34,3) AS ccopreb,
+ SUBSTRING(tmp,37,10) AS invloc,
+ SUBSTRING(tmp,47,7) AS dnumql,
+ SUBSTRING(tmp,54,7) AS ddenql,
+ REPLACE(SUBSTRING(tmp,1,25),' ', '0') AS lots,
+ REPLACE(SUBSTRING(tmp,1,3)||SUBSTRING(tmp,37,10),' ', '0') AS local00,
+ REPLACE(SUBSTRING(tmp,1,3)||SUBSTRING(tmp,37,10),' ', '0') AS local10,
+ '[LOT]' as lot
+FROM [PREFIXE]lloc;
+
+-- Traitement: commune
+INSERT INTO [PREFIXE]commune
+(
+ commune, geo_commune, annee, ccodep, ccodir, ccocom, clerivili, libcom, typcom, ruract, carvoi, indpop, poprel, poppart, popfict, annul, dteannul, dtecreart, codvoi,
+ typvoi, indldnbat, motclas, lot
+)
+SELECT
+ REPLACE(SUBSTRING(tmp,1,6),' ', '0') AS commune,
+ REPLACE(SUBSTRING(tmp,1,6),' ', '0') AS geo_commune,
+ '[ANNEE]',
+ SUBSTRING(tmp,1,2) AS ccodep,
+ SUBSTRING(tmp,3,1) AS ccodir,
+ SUBSTRING(tmp,4,3) AS ccocom,
+ SUBSTRING(tmp,11,1) AS clerivili,
+ SUBSTRING(tmp,12,30) AS libcom,
+ CASE WHEN trim(SUBSTRING(tmp,43,1))='' THEN NULL ELSE trim(SUBSTRING(tmp,43,1)) END AS typcom,
+ SUBSTRING(tmp,46,1) AS ruract,
+ SUBSTRING(tmp,49,1) AS carvoi,
+ SUBSTRING(tmp,50,1) AS indpop,
+ CASE WHEN trim(SUBSTRING(tmp,53,7))='' THEN NULL ELSE to_number(trim(SUBSTRING(tmp,53,7)),'0000000') END AS poprel,
+ to_number(SUBSTRING(tmp,60,7),'9999999') AS poppart,
+ to_number(SUBSTRING(tmp,67,7),'0000000') AS popfict,
+ SUBSTRING(tmp,74,1) AS annul,
+ SUBSTRING(tmp,75,7) AS dteannul,
+ SUBSTRING(tmp,82,7) AS dtecreart,
+ SUBSTRING(tmp,104,5) AS codvoi,
+ SUBSTRING(tmp,109,1) AS typvoi,
+ SUBSTRING(tmp,110,1) AS indldnbat,
+ SUBSTRING(tmp,113,8) AS motclas,
+ '[LOT]' as lot
+FROM [PREFIXE]fanr WHERE SUBSTRING(tmp,4,3) != ' ' AND trim(SUBSTRING(tmp,7,4))='';
+
+-- Traitement: voie
+INSERT INTO [PREFIXE]voie
+(
+ voie, annee, ccodep, ccodir, ccocom, natvoiriv, ccoriv, clerivili, natvoi, libvoi, typcom, ruract, carvoi, indpop, poprel, poppart, popfict, annul, dteannul,
+ dtecreart, codvoi, typvoi, indldnbat, motclas,
+ commune, lot
+)
+SELECT
+ REPLACE(SUBSTRING(tmp,1,6)||SUBSTRING(tmp,104,5)||SUBSTRING(tmp,7,4),' ', '0') AS voie,
+ '[ANNEE]',
+ SUBSTRING(tmp,1,2) AS ccodep,
+ SUBSTRING(tmp,3,1) AS ccodir,
+ SUBSTRING(tmp,4,3) AS ccocom,
+ CASE WHEN trim(SUBSTRING(tmp,7,1))='' THEN NULL ELSE trim(SUBSTRING(tmp,7,1)) END AS natvoiriv,
+ SUBSTRING(tmp,7,4) AS ccoriv,
+ SUBSTRING(tmp,11,1) AS clerivili,
+ TRIM(SUBSTRING(tmp,12,4)) AS natvoi,
+ SUBSTRING(tmp,16,26) AS libvoi,
+ CASE WHEN trim(SUBSTRING(tmp,43,1))='' THEN NULL ELSE trim(SUBSTRING(tmp,43,1)) END AS typcom,
+ SUBSTRING(tmp,46,1) AS ruract,
+ CASE WHEN trim(SUBSTRING(tmp,49,1))='' THEN NULL ELSE trim(SUBSTRING(tmp,49,1)) END AS carvoi,
+ SUBSTRING(tmp,50,1) AS indpop,
+ SUBSTRING(tmp,53,7) AS poprel,
+ to_number(SUBSTRING(tmp,60,7),'0000000') AS poppart,
+ to_number(SUBSTRING(tmp,67,7),'0000000') AS popfict,
+ CASE WHEN trim(SUBSTRING(tmp,74,1))='' THEN NULL ELSE trim(SUBSTRING(tmp,74,1)) END AS annul,
+ SUBSTRING(tmp,75,7) AS dteannul,
+ SUBSTRING(tmp,82,7) AS dtecreart,
+ SUBSTRING(tmp,104,5) AS codvoi,
+ CASE WHEN trim(SUBSTRING(tmp,109,1))='' THEN NULL ELSE trim(SUBSTRING(tmp,109,1)) END AS typvoi,
+ CASE WHEN trim(SUBSTRING(tmp,110,1))='' THEN NULL ELSE trim(SUBSTRING(tmp,110,1)) END AS indldnbat,
+ SUBSTRING(tmp,113,8) AS motclas,
+ REPLACE(SUBSTRING(tmp,1,6),' ', '0') AS commune,
+ '[LOT]' as lot
+FROM [PREFIXE]fanr WHERE trim(SUBSTRING(tmp,4,3)) != '' AND trim(SUBSTRING(tmp,7,4)) != '';
+
+-- purge des doublons : voie
+CREATE INDEX idxan_voie ON voie (annee);
+
+-- INDEXES
+CREATE INDEX idxan_suf ON suf (annee);
+CREATE INDEX idxan_sufexoneration ON sufexoneration (annee);
+CREATE INDEX idxan_suftaxation ON suftaxation (annee);
+CREATE INDEX idxan_pev ON pev (annee);
+CREATE INDEX idxan_pevexoneration_imposable ON pevexoneration_imposable (annee);
+CREATE INDEX idxan_pevexoneration_imposee ON pevexoneration_imposee (annee);
+CREATE INDEX idxan_pevtaxation ON pevtaxation (annee);
+CREATE INDEX idxan_pevprincipale ON pevprincipale (annee);
+CREATE INDEX idxan_pevprofessionnelle ON pevprofessionnelle (annee);
+CREATE INDEX idxan_pevdependances ON pevdependances (annee);
+CREATE INDEX idxan_pdl ON pdl (annee);
+CREATE INDEX idxan_parcellecomposante ON parcellecomposante (annee);
+CREATE INDEX idx_lots_tmp1 ON lots (annee, ccodep, ccodir, ccocom, dnuprol);
+CREATE INDEX idxan_lotslocaux ON lotslocaux (annee);
+CREATE INDEX idxan_commune ON commune (annee);
+CREATE INDEX proprietaire_dnupro_idx ON proprietaire (dnupro);
+CREATE INDEX proprietaire_ddenom_idx ON proprietaire (ddenom);
+CREATE INDEX parcelle_dnupro_idx ON parcelle (dnupro);
+CREATE INDEX suf_parcelle_idx ON suf (parcelle);
+CREATE INDEX sufexoneration_suf_idx ON sufexoneration (suf);
+CREATE INDEX idx_proprietaire_ccocom ON proprietaire (ccocom);
+CREATE INDEX idx_commune_ccocom ON commune (ccocom);
+CREATE INDEX idx_proprietaire_ccodro ON proprietaire (ccodro);
+CREATE INDEX idx_proprietaire_comptecommunal ON proprietaire (comptecommunal);
+CREATE INDEX idx_local00_parcelle ON local00 (parcelle);
+CREATE INDEX idx_local00_voie ON local00 (voie);
+CREATE INDEX idx_local10_local00 ON local10 (local00);
+CREATE INDEX idx_local10_comptecommunal ON local10 (comptecommunal);
+CREATE INDEX idx_pevexoneration_imposable_pev ON pevexoneration_imposable (pev);
+CREATE INDEX idx_pevexoneration_imposee_pev ON pevexoneration_imposee (pev);
+CREATE INDEX idx_pevtaxation_pev ON pevtaxation (pev);
+CREATE INDEX idx_parcelle_voie ON parcelle (voie);
+CREATE INDEX idx_parcelle_comptecommunal ON parcelle (comptecommunal);
+
+-- ANALYSES;
+ANALYZE [PREFIXE]parcelle;
+ANALYZE [PREFIXE]suf;
+ANALYZE [PREFIXE]sufexoneration;
+ANALYZE [PREFIXE]suftaxation;
+ANALYZE [PREFIXE]local00;
+ANALYZE [PREFIXE]local10;
+ANALYZE [PREFIXE]pev;
+ANALYZE [PREFIXE]pevexoneration_imposable;
+ANALYZE [PREFIXE]pevexoneration_imposee;
+ANALYZE [PREFIXE]pevtaxation;
+ANALYZE [PREFIXE]pevprincipale;
+ANALYZE [PREFIXE]pevprofessionnelle;
+ANALYZE [PREFIXE]pevdependances;
+ANALYZE [PREFIXE]proprietaire;
+ANALYZE [PREFIXE]comptecommunal;
+ANALYZE [PREFIXE]pdl;
+ANALYZE [PREFIXE]parcellecomposante;
+ANALYZE [PREFIXE]lots;
+ANALYZE [PREFIXE]lotslocaux;
+ANALYZE [PREFIXE]commune;
+ANALYZE [PREFIXE]voie;
+COMMIT;
+-- FORMATAGE DONNEES : FIN;
diff --git a/docs/extension-qgis/import.md b/docs/extension-qgis/import.md
index 37135877..7ab5c393 100644
--- a/docs/extension-qgis/import.md
+++ b/docs/extension-qgis/import.md
@@ -6,7 +6,7 @@ Cette boite de dialogue permet de réaliser un **import de données EDIGEO et MA
## Principe
-L'extension permet l'import de données **MAJIC de 2012 à 2022 et des données EDIGEO**. Il est possible
+L'extension permet l'import de données **MAJIC de 2012 à 2023 et des données EDIGEO**. Il est possible
d'importer des données de manière incrémentale, **étape par étape**, ou bien d'importer **en une seule fois**.
L'extension utilise pour cela la notion de **lot**. Un lot regroupe un **ensemble de données cohérent** pour
@@ -98,9 +98,9 @@ On configure ensuite les options :
* Choisir la **version du format** en utilisant les flèches haut et bas
- - Seuls les formats de 2012 à 2022 sont pris en compte
+ - Seuls les formats de 2012 à 2023 sont pris en compte
-* Choisir le **millésime des données**, par exemple 2022
+* Choisir le **millésime des données**, par exemple 2023
* Choisir le **Lot** : utilisez par exemple le code INSEE de la commune.