SQL im Batch mit psql

Guten Morgen an alle,

ich benutze unter Windows einen geplanten Task, um aus einer Tabelle bestimmte Daten zu löschen. Leider wird dabei der Like Operator % immer ignoriert. WEnn ich den SQL Befehl direkt ausführe funktionier dieser einwandfrei.

Im Script lautet der Befehl:

psql -d datenbank -U user-c "DELETE FROM tabelle WHERE feld Like 'Beginn%' "

Wenn ich das Batch über die cmd ausführe steht da: feld Like ‘Beginn’ :frowning: Weiß jemand, wie ich es angeben muss, damit das % auch da steht?

Vielen Dank und lg aus dem heißen Berlin

potentiale

Die Frage hat nichts mit Postgres zu tun. Das hat ausschliesslich was mit Windows-Batch Programmen zu tun.

Das % Zeichen markiert in einer Batchdatei Variablen. Um zu verhindern, dass es als Sonderzeichen behandelt wird, muss man es “escapen” indem man es zweimal hinschreibt:

psql -d datenbank -U user-c "DELETE FROM tabelle WHERE feld Like 'Beginn%%' "

Weiteres z.B. hier: http://www.robvanderwoude.com/escapechars.php

uups natürlich … sorry manchmal sieht man den Wald vor lauter Bäumen nicht :astonished:

Danke