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

#1 PSQL » Exécution commandes sql dans batch » 28/06/2013 21:22:48

Moua
Réponses : 0

Bonjour,

Je me connecte à ma base de donnée Postgresql dans la commande windows, dans un fichier .bat. Voici les lignes de mon fichier :
---------------------------
cd c:\pgsql_9_1\pgsql\bin
call startserver.bat

cd c:\pgsql_9_1\pgsql\bin
call psql pgSimonGTFS

---------------------------

Jusqu'ici, tout va bien. Le serveur s'allume, et je me connecte à ma base de donnée appelée pgSimonGTFS.

Cependant.

Toutes les autres commandes sont ignorées. Si je copie-colle les requêtes sql dans la cmd windows, j'ai l'exécution désirée. Mais c'est comme si le fichier .bat restait bloqué dans la base de donnée, et ne réponds plus qu'à des commandes psql.

J'ai mis mes commandes subséquantes dans un fichier .sql (que j'appelle très bien en copiant-collant l'instruction ci-dessous dans la cmd windows, mais pas si l'instruction est dans le .bat)

call \i table_voyages.sql

Mon objectif est donc d'appeler mes instructions (contenues dans le fichier .sql) à partir d'un fichier .bat, où, du moins, pouvoir exécuter des commandes psql automatiquement (j'appelle le tout à partir de VBA), après que j'ai ouvert la base de donnée.

Merci beaucoup pour votre temps!
.
.
.
EDIT :

J'ai trouvé comment résoudre mon problème. Il me faut écrire mes commandes subséquentes comme ceci :
plsql -c "instruction-sql-tel-que-select-etc"  -d nom-de-ma-base-de-donnée nom-d'utilisateur

ex :
psql -c "select z_table_voyages('%1')" -d pgSimonGTFS sparent
psql -c "copy table_voyages to 'c:\pgsql_9_1\table_voyages.csv' csv header;" -d pgSimonGTFS sparent

Pied de page des forums

Propulsé par FluxBB