Bonjour,

j'au une base de donnée avec plusieurs schémas.

j'ai aussi un batch qui me permet d’exécuter des .sql


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
pause
psql -f "%cd%\setSchema.sql" databasename user
pause
psql -f "%cd%\update.sql" databasename user
 
echo database updated !
 
pause
setSchema.sql:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
ALTER DATABASE databasename SET search_path = firstschema;
ALTER DATABASE databasename SET search_path = secondschema;
ALTER DATABASE databasename SET search_path = tirdschema;
ALTER DATABASE databasename SET search_path = fourthschema;
update.sql

ce que je veux faire c'est exécuter le fichier setSchema.sql ligne par ligne et entre chaque ligne appeler le fichier update sql quelque chose comme

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
For /F "usebackq eol=;" %%A In ("%cd%\setSchema.sql") Do (
psql -c %%A  -w --no-password databasename user
pause
psql -f "%cd%\db_update.sql" databasename user
pause
)
quand j'execute le .bat j'ai une erreur

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
ERREUR:  erreur de syntaxe à la fin de l'entrée
LIGNE 1 : ALTER ^
une idée ?