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

#1 28/06/2013 21:22:48

Moua
Membre

Exécution commandes sql dans batch

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

Dernière modification par Moua (28/06/2013 22:00:42)

Hors ligne

Pied de page des forums