Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 04/11/2015 12:21:31
- Jason Chambers
- Membre
Using a network resource for a COPY FROM
Bonjour,
utilisant
Windows Server 2012 R2
Postgresql 9.5 Beta
J'essaie d'importer des données dans plusieurs tables depuis des fichiers CSV sur un autre serveur.
J'ai un fichier BAT qui lance psql avec un fichier de commandes contenant une serie d'instructions de type \i nomdefichier.sql.
Ce syntaxe fonctionne correctement :
Copy matable from '\\Serveur9\Donnees\mesdonnees.txt'
WITH CSV
DELIMITER E'\t'
QUOTE AS '"'
NULL AS '' ;
Mais je dois écrire le chemin en dur dans chacun de mes scripts SQL.
Puisque, l'année prochaine,
je sais que je vais changer le serveur qui héberge les données CSV ,
(et que pendant un temps le serveur actuel et le nouveau serveur vont cohabiter,)
je me suis dit qu'il serait plus facile pour moi de créer un network ressource,
et ainsi, le moment venu de switcher les serveurs,
je n'aurais plus que redéfinir ce ressource.
Je fais donc
Nets use S: \\Serveur9\Donnees /persistent:yes
et j'ai un nouveau disque S: qui pointe vers la source de mes données CSV.
Parfait.
Mais le syntaxe
Copy matable from 'S:\mesdonnees.txt'
WITH CSV
DELIMITER E'\t'
QUOTE AS '"'
NULL AS '' ;
ne fonctionne pas.
Voici le message d'erreur :
psql:C:/pgstuff/imprt_1.sql:97: ERREUR: n'a pas pu ouvrir le fichier « S:\mesdonnees.txt » pour une lecture : No such file or directory
Mes questions :
Est-ce que ce fonctionnement est normal ? ( "By design" ?) dans la logique de l'interdiction des chemins relatifs avec COPY ? (Est-ce que un "disque réseau" est réellement relatif ?)
Ou est-ce que j'ai une faute syntaxe dans le style "escaped backslashes" ?
Ou est-ce que c'est un bug du 9.5 Beta ?
Ou encore autre chose ?
Merci d'avance,
Jason
Hors ligne
#2 04/11/2015 15:36:31
Hors ligne
Pages : 1