PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 Re : Général » [Résolu] Importation de fichiers CSV depuis machines Windows » 27/11/2014 12:53:26

Après la création du script PowerShell:

#connexion au réseau
$login= "login"
$mdp= "mdp"
$obj = New-Object -com Wscript.Network
$obj.MapNetworkDrive("K:","\\adress_ip\dossier", "False", $login, $mdp)
#lancement de la commande PG
& "C:\Program Files\PostgreSQL\9.3\bin\psql.exe" -h localhost -p 5432 -d postgres -U postgres -c "select dataimport();"

Puis la création de la fonction sur pgAdmin III:

CREATE OR REPLACE FUNCTION dataimport()
  RETURNS void AS
$BODY$COPY "tracabiliteImport" FROM 'K:/fichier.csv' DELIMITER ';' CSV; -- Ici j'ai un slash au lieu d'un anti slash

$BODY$
  LANGUAGE sql VOLATILE
  COST 100;
ALTER FUNCTION dataimport()
  OWNER TO postgres;

Lorsque que le script PowerShell est lancé, le connecteur réseau est bien créé (K:). L'authentification à la base s'est faite correctement. Cependant, l'erreur suivante survient:

ERREUR: n'a pas pu ouvrir le fichier K:\fichier.csv pour une lecture : No such file or directory

C'est incompréhensible car mon fichier se trouve à la bonne arborescence. (\\adress_ip\dossier\fichier.csv)

#2 Re : Général » [Résolu] Importation de fichiers CSV depuis machines Windows » 27/11/2014 10:04:35

Bonjour,

Merci pour vos réponse rapide.
Est ce que du coup mafonction() est une fonction SQL qui lancerait mon COPY?

Merci smile

#3 Général » [Résolu] Importation de fichiers CSV depuis machines Windows » 26/11/2014 16:14:23

Skullmachine
Réponses : 6

Bonjour,

Je viens vers vous car je cherche une solution répondant au problème qui suit.

J'ai une BDD PostgreSQL 9.3 contenant une table me permettant de faire la traçabilité de pièces. Cette table doit être mise à jour par des fichiers .csv distant. Le soucis est que pour récupérer ces données, je dois me connecter à des ordinateurs sous Windows XP et Seven qui ont un login et un mot de passe de session chacun différent.

Ma requête actuelle non fonctionnelle est là suivante :

COPY "nom_de_la_table" FROM '\\adresse_ip\fichier.csv' DELIMITER ';' CSV HEADER ;

Lorsque je l'exécute, l'erreur suivante me parvient:

ERREUR:  n'a pas pu ouvrir le fichier « \\adresse_ip\fichier.csv » pour une lecture : Invalid argument

********** Erreur **********

ERREUR: n'a pas pu ouvrir le fichier « \\adresse_ip\fichier.csv » pour une lecture : Invalid argument
État SQL :XX000

Pourriez vous me dire s'il existe une solution me permettant de me loguer sur chaque ordinateur en intégrant le login et le mot de passe dans la requête SQL?

Merci d'avance pour votre réponse,

Skullmachine

Pied de page des forums

Propulsé par FluxBB