Script PostgreSQL

Résolu/Fermé
Aprexia Messages postés 82 Date d'inscription vendredi 17 décembre 2010 Statut Membre Dernière intervention 14 mai 2013 - 17 déc. 2010 à 12:12
 ghou - 17 févr. 2011 à 17:07
Bonjour,

Je cherche à transformer un document texte (.txt)(comportant entre 15 000 et 25 000 lignes) en script SQL, pour ensuite le passer dans postgreSQL et travailler dessus.

Le document comporte des chaines de caractères sans séparateurs. Je connais cependant le nombre de caractères de chaque chaine.

{exemple}

unechaineuneautrechaineencoreuneautre
mavoituredesgroscamionswoadestaureaux

chaine 1: caractères 1 à 9
chaine 2: caractères 10 à 24
chaine 3 caractères 25 à 39

{/exemple}

J'utilise actuellement un script AutoIt qui fonctionne à la perfection et transforme ma chaine illisible en :

INSERT INTO MaTable(champs1,champs2,champs3) VALUES('unechaine','uneautrechaine','encoreuneautre')

INSERT INTO MaTable(champs1,champs2,champs3) VALUES('mavoiture','desgroscamions','woadestaureaux')

On en arrive donc à mon problème:

Comment puis-je passer (automatiquement depuis mon script AutoIt) mon script SQL dans ma base de données?

Le but finale de l'application est de pouvoir récupérer le résultat d'une requête de sélection sur les données crée, dans un nouveaux fichier texte. Le tout automatiquement biensûr.

Le script sera réutilisé sur un nouveau document texte (avec des chaines qui aurons toujours les même tailles) tous les mois.

Mon professeur de SQL ma conseillé d'utiliser psql, mais je n'arrive pas à comprendre comment il fonctionne. Y a t-il quelque chose à installer en plus de pgAdmin? pgAdmin est-il nécessaire pour utiliser psql?(j'ai toujours travailler avec pgAdmin, jamais avec le client).

merci,
Tom
A voir également:

3 réponses

Bonjour,
Effectivement, le mieux est d'utiliser psql ; et tu n'a pas besoin de pgAdmin pour ça.

Il faudrait commencer par consulter la doc officielle, en tapant 'psql' sur google.
A lire pour comprendre ce qu'est psql et ce qu'il fait... c'est la base !!

Tu verras alors la syntaxe de la commande :
psql [ options ] [ dbname [ user ] ]

Et dans les options, tu trouve notamment :
-f, --file filename
Utilise le fichier filename comme source des requêtes au lieu de lire les requêtes de façon interactive

Donc je pense qu'il suffit d'exécuter ton fichier contenant tes requêtes avec cette commande :
psql -f fichierRequete NomBase Utilisateur

Attention! Chaque requête doit se terminer par un ";" dans ton fichier.

Cordialement, M.
2
Aprexia Messages postés 82 Date d'inscription vendredi 17 décembre 2010 Statut Membre Dernière intervention 14 mai 2013 24
18 déc. 2010 à 00:14
Merci pour ta réponse.

J'ai enfin réussi à faire fonctionner psql.
une fois du moins, ou il ma demander le serveur, le port , le Username, et le nom de la base de données.

seulement, la deuxième fois que je le lance, il me demande un mot de passe ... !!!

j'ai taper le mot de passe de la BD: psql s'est fermé. Je n'ai a ma connaissance pas d'autre mot de passe concernant la base que j'ai pourtant crée moi même.
0
Aprexia Messages postés 82 Date d'inscription vendredi 17 décembre 2010 Statut Membre Dernière intervention 14 mai 2013 24
Modifié par Aprexia le 18/12/2010 à 00:24
J'ai reussi à prendre un screenshot du demi centieme de seconde ou il m'affiche l'erreur : psql: FATAL: athentification par mot de passe échouée pour l'utilisateur << XXX >>.

A ma grande surprise, le XXX représente le nom de mon ordinateur, et non mon username pgadmin !!!

J'ai donc taper mon mot de passe de session
Toujours aucun résultat
0
quand tu as installé ta base tu as donnée un mot de passe, essai de te souvenir
0