3liz / QgisCadastrePlugin

A QGIS plugin which helps users to import the french land registry ('cadastre') data into a database. It is meant to ease the use of the data in QGIS by providing search tools and appropriate layer symbology.
GNU General Public License v2.0
60 stars 41 forks source link

pb format date lors de l'import vers postgres #127

Closed SebCasa closed 5 years ago

SebCasa commented 6 years ago

Bonjour, j'utilise le Plugin depuis la première version sans aucun problème. Mais depuis un bug pc j'ai tt réinstallé et migré vers postgres 10 Mais j'ai ce message : ERREUR / ERREUR: valeur du champ date/time en dehors des limites : « 29022009 »

-- Traitement: parcelle INSERT INTO "TEST1mars2018".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, gpafpd, ajoutcoherence, comptecommunal, pdl, voie, cconvo, dvoilib, ccocomm, ccoprem, ccosecm, dnuplam, parcellefiliation, type_filiation, ccoifp, lot ) SELECT REPLACE('2017'||SUBSTRING(tmp,1,15),' ','0') AS parcelle, '2017' 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, SUBSTRING(tmp,31,1) AS dsrpar, SUBSTRING(tmp,32,6) AS dnupro, CASE WHEN trim(SUBSTRING(tmp,38,8))='' THEN NULL ELSE to_date(SUBSTRING(tmp,38,8),'DDMMYYYY') 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,104,1) AS gpafpd, 'N', REPLACE('2017'||SUBSTRING(tmp,1,2)||SUBSTRING(tmp,4,3)||SUBSTRING(tmp,32,6),' ', '0') AS comptecommunal, CASE WHEN trim(SUBSTRING(tmp,61,3))='' THEN NULL ELSE REPLACE('2017'||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('2017'||SUBSTRING(tmp,1,6)||SUBSTRING(tmp,91,5)||SUBSTRING(tmp,96,4),' ', '0') END AS voie,

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('2017'||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,

'94' as lot FROM "TEST1mars2018".nbat WHERE SUBSTRING(tmp,20,2) ='10'

et la j'ai beau changer les format de date postgis c'est toujours le même résultat

mdouchin commented 6 years ago

Bonjour,

Le souci vient des données qui contiennent une date qui n'est pas au bon format. En effet, 29022009 n'est pas une date valide : il n'y a pas de 29 février 2009, car 2009 n'était pas bissextile

Vous pourriez essayer de modifier le fichier MAJIC en cause avec un éditeur de texte et retenter l'import ?

SebCasa commented 6 years ago

ahh même pas percuté je test merci de la piste

lukkas1404 commented 6 years ago

Bonjour,

J'avais le même problème et après correction de toutes les dates abbérantes, le traitement plante à la toute fin.

Une idée ? ci-après le message d'erreur.

ERREUR: la transaction est annulée, les commandes sont ignorées jusqu'à la fin du bloc de la transaction

SET search_path = "plugin", public, pg_catalog;DROP TABLE IF EXISTS "batiment_id";DROP TABLE IF EXISTS "borne_id";DROP TABLE IF EXISTS "boulon_id";DROP TABLE IF EXISTS "commune_id";DROP TABLE IF EXISTS "croix_id";DROP TABLE IF EXISTS "id_s_obj_z_1_2_2";DROP TABLE IF EXISTS "lieudit_id";DROP TABLE IF EXISTS "numvoie_id";DROP TABLE IF EXISTS "parcelle_id";DROP TABLE IF EXISTS "ptcanv_id";DROP TABLE IF EXISTS "section_id";DROP TABLE IF EXISTS "subdfisc_id";DROP TABLE IF EXISTS "subdsect_id";DROP TABLE IF EXISTS "symblim_id";DROP TABLE IF EXISTS "tline_id";DROP TABLE IF EXISTS "tpoint_id";DROP TABLE IF EXISTS "tronfluv_id";DROP TABLE IF EXISTS "tronroute_id";DROP TABLE IF EXISTS "tsurf_id";DROP TABLE IF EXISTS "voiep_id";DROP TABLE IF EXISTS "zoncommuni_id";

SebCasa commented 6 years ago

Tu fais flipper j'ai 7 département a corriger j'ai pas encore terminé le premier

SebCasa commented 6 years ago

Bon bah j'ai modifié mes fichiers sources et maintenant j'ai : INITIALISATION

mdouchin commented 6 years ago

Merci pour le retour. Sur le dernier souci, il semble que le mot de passe ne soit pas coché comme "enregistré" dans la configuration de votre connexion PostgreSQL. Vous pouvez soit cocher cette case dans les paramètres de connexion, soit utiliser un service PostgreSQL.

SebCasa commented 6 years ago

Merci c'est bien cela maintenant j'ai des bug de date dans les EDIGEO

SebCasa commented 6 years ago

Voici mon nouveau message : INSERT INTO "a".geo_subdsect (geo_subdsect, annee, object_rid, idu, geo_section, geo_qupl, geo_copl, eor, dedi, icl, dis, geo_inp, dred, creat_date, update_dat, geom, lot) SELECT '2017'||'770'||SUBSTRING(idu,1,10), '2017', object_rid, idu, '2017'||'770'||SUBSTRING(idu,1,8), qupl, copl, to_number(eor,'0000000000'), to_date(dedi, 'DD/MM/YYYY'), floor(icl), to_date(dis, 'DD/MM/YYYY'), inp, to_date(dred,'DD/MM/YYYY'), to_date(to_char(creat_date,'00000000'), 'YYYYMMDD'), to_date(to_char(update_date,'00000000'), 'YYYYMMDD'), ST_Multi(ST_CollectionExtract(ST_MakeValid(geom),3)),'77' FROM "a".subdsect_id

mdouchin commented 6 years ago

Veuillez tester la dernière version "master", j'ai apporté des correctifs pour geo_subdsect, ainsi que pour les fichiers MAJIC

MaelREBOUX commented 5 years ago

Bonjour @SebCasa

Votre problème est-il toujours d'actualité ? Avez-vous testé avec la version 1.7.1 ?

SebCasa commented 5 years ago

Bonjour Désolé de la non réponse j'ai réglé ce problème grâce au correctif Je n'ai pas tester la version 1.7.1 J'attend la livraison du MAJIC

Le lun. 19 août 2019 à 14:18, Maël REBOUX notifications@github.com a écrit :

Bonjour @SebCasa https://github.com/SebCasa

Votre problème est-il toujours d'actualité ? Avez-vous testé avec la version 1.7.1 ?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/3liz/QgisCadastrePlugin/issues/127?email_source=notifications&email_token=AI2ZGB3DGIHCZFIPFOFV22LQFKFRLA5CNFSM4ETPUDC2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD4SWTGQ#issuecomment-522545562, or mute the thread https://github.com/notifications/unsubscribe-auth/AI2ZGB7RPTG6FQOC7WR7WXTQFKFRLANCNFSM4ETPUDCQ .

MaelREBOUX commented 5 years ago

OK. Je me permet donc de fermer ce ticket.