Majic contient des dates au format incorrect telles que 31021993 ou 28801991 qui ne peuvent être converties par TO_DATE ( relative à des erreurs de saisies)
il faudrait au préalable tester si la date est 'castable': ( PostgreSQL)
// ..
CASE WHEN trim(SUBSTRING(tmp,72,8))='' or not is_date(trim(SUBSTRING(tmp,72,8))) THEN NULL ELSE to_date(SUBSTRING(tmp,72,8),'DDMMYYYY') END AS datact, .. //
avec une fonction implémentée dans le style:
create or replace function is_date(s varchar) returns boolean as $$
begin
perform s::date;
return true;
exception when others then
return false;
end;
$$ language plpgsql;
à noter accessoirement que les drivers PGSQL sous QIGS ne gèrent pas nécessairement bien les $$..
Je ferme l'issue. Ce dépôt ne concerne pas les données MAJIC mais les contours cadastraux. La matrice cadastrale est un autre problème qui n'est pas géré à notre niveau.
Bonjour,
Majic contient des dates au format incorrect telles que 31021993 ou 28801991 qui ne peuvent être converties par TO_DATE ( relative à des erreurs de saisies) il faudrait au préalable tester si la date est 'castable': ( PostgreSQL) // .. CASE WHEN trim(SUBSTRING(tmp,72,8))='' or not is_date(trim(SUBSTRING(tmp,72,8))) THEN NULL ELSE to_date(SUBSTRING(tmp,72,8),'DDMMYYYY') END AS datact, .. //
avec une fonction implémentée dans le style: create or replace function is_date(s varchar) returns boolean as $$ begin perform s::date; return true; exception when others then return false; end; $$ language plpgsql;
à noter accessoirement que les drivers PGSQL sous QIGS ne gèrent pas nécessairement bien les $$..
Cdt