Importation d'un fichier csv : codes postaux

Importation d'un fichier csv : codes postaux

Maj 04/08/2018

Importation du fichier des codes postaux français dans une table Suneido

Préambule

Nous souhaitons avoir une table permettant d'effectuer des recherches sur les codes postaux, ainsi que sur leurs désignations .

Pour cela nous importons la base officielle des codes postaux des communes à télécharger sur le site data.gouv.fr (01/01/2018)

C'est un fichier au format csv comprenant les codes postaux de France (métropole et DOM), ceux des TOM ainsi que MONACO.

Création de la table codpos

La table codpos est composée des colonnes cod_num_enr, nom_commune, code_postal. Elle a comme clé primaire cod_num_enr et comme index unique nom_commune pour éviter les doublons. (Si la table codpos existe déjà, il faut utiliser ensure à la place de create)

Database("create codpos (cod_num_enr, nom_commune, code_postal) key(cod_num_enr) index unique(nom_commune)")

Importation des données

Auparavant, il faut modifier les entêtes du fichier csv pour mettre en minuscule les titres des colonnes à importer : remplacez Nom_commune, par nom_commune et Code_postal par code_postal.

// If importing directly into the table we cannot import invalid data
// however, if importing from an application where users can preview
// the data, we want them to be able to correct the data

Important aussi, le fichier doit être placé dans votre répertoire Suneido.

Les données du fichier laposte_hexasmal.csv sont importées dans la table codpos.

ImportCSV('laposte_hexasmal.csv','codpos')

Définition du champ code_postal

Field_num
   {
   Prompt: "Code postal"
   Control: ('Field' width: 5)
   Format: (Text width: 5)
   }

Définition du champ nom_commune

Field_string
   {
   Prompt: "Nom de la commune"
   Control: ('Field' width: 30)
   Format: (Text width: 30)
   }

Définition du champ cod_num_enr

Field_num
  {
 Prompt: 'Code n° enregistrement'
 Control: ('Field' width: 20)
 Format: (Text width: 20)
 }

Ce champ est lié à une règle Rule_cod_num_enr afin d'avoir une clé unique, car le fichier laposte_hexasmal.csv contient des doublons

function()
 {
 return Timestamp()
 }

Le traitement dure environ 30 secondes et une fois terminé, indique le nombre d'enregistrement, soit 39201.

La table sera visible dans Vue des bibliothèques>EDI>Accéder à une requête>codpos