J'essaie d'importer un fichier .txt dans PostgreSQL. Le fichier txt comporte 6 colonnes:
Laboratory_Name Laboratory_ID Facility Zip_Code City State
Et 213 rangées.
J'essaie d'utiliser \copy
pour mettre le contenu de ce fichier dans une table appelée doe2
dans PostgreSQL en utilisant cette commande:
\copy DOE2 FROM '/users/nathangroom/desktop/DOE_inventory5.txt' (DELIMITER(' '))
Cela me donne cette erreur:
missing data for column "facility"
J'ai cherché tout ce qu'il fallait faire en rencontrant cette erreur et rien n'a aidé. Quelqu'un d'autre a-t-il rencontré cela?
Trois causes possibles:
Une ou plusieurs lignes de votre fichier ne contiennent que 4 caractères d'espace ou moins (votre délimiteur).
Un ou plusieurs espaces ont été échappés (par inadvertance). Peut-être avec une barre oblique inversée à la fin d'une valeur non cotée. Pour le format (par défaut) text
que vous utilisez, le manuel explique:
Caractères barre oblique inverse (
\
) peut être utilisé dans les donnéesCOPY
pour citer des caractères de données qui pourraient autrement être pris comme délimiteurs de ligne ou de colonne.
Sortie de COPY TO
ou pg_dump
ne présenterait aucun de ces défauts lors de la lecture à partir d'un tableau avec une disposition correspondante. Mais peut-être que votre fichier a été modifié ou provient d'une source différente et défectueuse?
\copy
la méta-commande de l'interface de ligne de commande psql est un wrapper pour COPY
et lit les fichiers locaux au client . Si votre fichier réside sur le serveur, utilisez plutôt la commande SQL COPY
.