Ich konvertiere ein bestehendes Projekt von MySQL nach Postgres. Es gibt einige rohe SQL-Literale im Code, die ?
als einen Platzhalter verwenden, z.
SELECT
id
FROM
users
WHERE
name = ?
Aber ich bekomme diese Fehlermeldung:
DB query error: error: operator does not exist: character varying = ?
Ich will nicht alle von ?
meine vorhandenen SQL konvertieren Postgres-Stil Operatoren wie $1
.
Gibt es eine Möglichkeit, dass Knoten-Postgres stattdessen die Fragezeichen akzeptieren, oder ein Dienstprogramm, das Postgres-Stil-Params konvertieren kann?
Beachten Sie, dass eine Art Regex-basierter Hack nicht akzeptabel ist, da Fragezeichen in Anführungszeichen gesetzt werden können oder ein Backslash in jede Tiefe maskiert werden kann.
Verwendung eines? in einer Abfrage ist nicht MySQL, sondern die App-Schicht, z.B. Java. Dies sollte höchstwahrscheinlich nicht geändert werden. Können Sie uns diese Abfrage im Zusammenhang mit dem Code zeigen? –
Welche Version von Postgres verwenden Sie? Weil in der Dokumentation erwähnt wird, dass '?' (Https://www.postgresql.org/docs/9.1/static/ecpg-commands.html) sowie diese zufällige SO-Frage verwendet werden (http://stackoverflow.com/questions/10659737)/how-can-ich-benutze-eine-Abfrage-mit-Platzhalter-in-Anführungszeichen-perl-postgresql) –
Was ist Knoten-Postgres, und warum ist es nicht in den Tags, wie es scheint, der Kern Ihres sein Frage? – joop