2009-12-30 2 views
1

J'ai un fichier de vidage Postgresql que j'essaie de restaurer. Je reçois cette erreur concernant une donnée invalide je suppose.qu'est-ce que "" dans le fichier de vidage postgresql?

ERROR: invalid input syntax for integer: "."

et quand j'ai vérifié le fichier, il existe des données comme ceci:

469215 2009-10-10 18:16:47.041377 0 1 
471217 2009-10-10 18:25:12.536352 0 1 
473224 2009-10-17 09:46:43.041604 0 1 
473228 2009-10-22 10:58:40.194244 0 1 
. 

donc je me demandais quel est ce « » faire? Je vérifie d'autres vidages de travail et ils ont terminé leur ligne de données avec "." Je suppose que c'est la bonne syntaxe!

S'il vous plaît dites-moi quelle est la bonne syntaxe et que fait-elle? merci

Répondre

1

semble qu'il marque la fin d'une instruction COPY

De the documentation

End of data can be represented by a single line containing just backslash-period (\.). 
An end-of-data marker is not necessary when reading from a file, since the end of file 
serves perfectly well; it is needed only when copying data to or from client 
applications using pre-3.0 client protocol. 
+0

est-il un moyen de contourner le problème? un peu comme le définir pour l'ignorer? Parce que le fichier de vidage est de presque 12 millions de lignes et il est difficile de rechercher toutes les instructions de copie et de remplacer la fin de celles-ci par "\". ! – kevoroid

+0

Je n'en connais pas un sur le dessus de ma tête. Cependant, il devrait être assez facile d'utiliser un utilitaire comme "sed" pour le modifier sans problème ... –

+0

Vous voudrez peut-être essayer de comprendre comment c'est arrivé en premier lieu avant d'aller éditer le fichier - pg_dump générera toujours le terminateur approprié ... (Ceci est une raison de plus pour toujours utiliser le format de vidage "personnalisé", bien sûr) –

Questions connexes