Vous n'êtes pas identifié(e).
Pages : 1
Bonjour à tous,
Je souhaite faire une importation de données provenant d'un fichier CSV vers une table sous Postgres .
Seulement voilà le fichier CSV peut avoir un nombre variable de colonnes car il existe des colonnes facultatives dans ce dernier.
La table recevant les données possède différentes colonnes :
Colonne A, ColonneB, ColonneC qui sont obligatoires (ces colonnes reçoivent toujours des données quelque soit les fichier CSV)
Les Colonnes facultatives : ColonneD, ColonneE, ColonneF, ColonneG
Seulement voilà le fichier CSV "alimente" la table par les colonnes ColonneA, ColonneB, ColonneC mais le fichier CSV peut alimenter que certaine des colonnes facultatives (ColonneD ou ColonneE ou ColonneF ou ColonneG) .
Voici comment les fichiers CSV peuvent être construite pour alimenter la table :
Fichier CSV 1 : Colonne A;ColonneB;ColonneC;ColonneD;ColonneE;ColonneF;ColonneG
Fichier CSV 2 : Colonne A;ColonneB;ColonneC
Fichier CSV 3 : Colonne A;ColonneB;ColonneC;ColonneD;ColonneE
Fichier CSV 4 : Colonne A;ColonneB;ColonneC;ColonneE;ColonneG
Fichier CSV 5 : Colonne A;ColonneB;ColonneC;ColonneG
Je souhaite savoir comment puis-je faire en sorte que le module d'importation des données dans table puisse s'adapter aux colonnes des fichiers CSV renseignés ?
Cordialement .
Hors ligne
COPY permet de préciser les colonnes de la table, donc à condition de faire une requête SQL spécifique par type de fichier CSV, c'est possible
Guillaume.
Hors ligne
Merci,
Le souci s'est qu'il y aura de nombreux fichiers CSV différents en terme de compositions des colonnes facultatives (il existera de nombreuses combinaisons de colonnes complétées ou non) , il faut prévoir de nombreuses requêtes par conséquence .
Est ce qu'il est possible de faire un module (ou une procédure stockée) permettant de créer une requête de façon dynamique en fonction du fichier CSV à lire ?
Cordialement .
Hors ligne
Une procédure stockée, oui. Faut évidemment qu'elle sache comment interpréter le fichier.
Guillaume.
Hors ligne
Pages : 1