Comment exécuter postgres' des requêtes sql fichier batch?
J'ai besoin pour exécuter SQL à partir d'un fichier de commandes.
Je suis d'exécution suivantes pour vous connecter à Postgres et sélectionnez les données d'un tableau
C:/pgsql/bin/psql -h %DB_HOST% -p 5432 -U %DB_USER% -d %DB_NAME%
select * from test;
Je suis en mesure de se connecter à la base de données, cependant, j'obtiens le message d'erreur
'select' n'est pas reconnu comme une commande interne ou externe,
un programme exécutable ou un fichier de commandes.
Quelqu'un a été confronté à ce problème?
C'est l'une des question je suis en train d'essayer, quelque chose de semblable travaille dans un script shell, (s'il vous plaît ignorer erreur de syntaxe dans la requête si il y en a)
copy testdata (col1,col2,col3) from '%filepath%/%csv_file%' with csv;
Comme mentionné ci-dessous, essayez d'ajouter le paramètre-c avant la commande sql
OriginalL'auteur Ketu | 2016-01-19
Vous devez vous connecter pour publier un commentaire.
Vous pourriez transférer dans psql
Lors de la fermeture de la parenthèse font partie de la requête SQL qu'ils ont à être échappé avec trois carets.
toujours le même problème
Désolé, vous avez besoin de trois carets
vous êtes un sauveur, Merci
c'est la requête en cours, je vais essayer,
( echo insert into testconfig(testid,scenarioid,testname) values( 1,1,'asdf'); ) | psql -h %DB_HOST% -p 5432 -U %DB_USER% -d %DB_NAME%
et je suis devalue( was unexpected at this time.
des suggestions?OriginalL'auteur jeb
Vous ne pouvez pas mettre la requête sur une ligne séparée, lot interprète pour acquis que c'est une autre commande au lieu d'une requête pour psql. Je crois que vous aurez besoin de le citer en tant que bien.
<< EOF
sql queries
sql queries
sql queries
EOF
n'lot a quelque chose pour les mêmes raisons?le "HereDoc"
<< EOF
ne fonctionne pas sur Windowsouais je l'ai eu..
OriginalL'auteur LeleDumbo
Veuillez vous référer à la la documentation
1] si vous êtes de passage le fichier avec l'utilisation de sql
-f
ou--file
paramètre2] si vous êtes de passage à commande individuelle utilisation
-c
ou--command
paramètreOriginalL'auteur Spidey
Utiliser le
-f
paramètre à passer le lot de nom de fichierhttp://www.postgresql.org/docs/current/static/app-psql.html
Poster un échantillon de requêtes que vous voulez exécuter dans la question.
copy testdata (col1,col2,col3) from '%filepath%/%csv_file%' with csv;
C'est l'une des question je suis en train d'essayer, quelque chose de semblable travaille dans un script shell, (s'il vous plaît ignorer erreur de syntaxe dans la requête si il y en a)OriginalL'auteur Clodoaldo Neto
Je suis d'accord avec Spidey:
Lorsque vous voulez exécuter plusieurs commandes à la meilleure façon de le faire est d'ajouter le paramètre -f et ensuite, tapez le chemin d'accès à votre fichier, sans " ou " marques (les chemins d'accès relatifs fonctionne aussi):
Il travaille également dans .NET de Base. J'en ai besoin pour ajouter de la base de données de ma base de données après les migrations.
OriginalL'auteur greygreg87