Nun, das ist etwas seltsam, könnte mir jemand helfen, darauf hinzuweisen, wo diese Funktion falsch sein könnte. Ich habe eine ähnliche Funktion wiePostgres-Migrationsfehler; nicht abgeschlossene Dollar-notierte Zeichenfolge
CREATE FUNCTION check_password(uname TEXT, pass TEXT)
RETURNS BOOLEAN AS $$
DECLARE passed BOOLEAN;
BEGIN
SELECT (pwd = $2) INTO passed
FROM pwds
WHERE username = $1;
RETURN passed;
END;
$$ LANGUAGE plpgsql
Wenn ich es direkt in der Konsole pgAdmin SQL laufen, keine Fehler vorhanden sind, aber es in einer Migration Skript db-Migration-Maven-Plugin i den Fehler ausgeführt wird.
Error executing: CREATE FUNCTION check_password(uname TEXT, pass TEXT)
RETURNS BOOLEAN AS $$ DECLARE passed BOOLEAN
org.postgresql.util.PSQLException: ERROR: unterminated dollar-quoted
string at or near "$$ DECLARE passed BOOLEAN"
Position: 74
Sorry, vor dem gleichen Problem jetzt. Hast du den Weg gefunden, es zu reparieren? –
Ich vermied es lange zusammen zu schreiben. Es ist ein Problem mit der Migrationssoftware (Carbonfive). Ich dachte daran, ein paar Änderungen daran vorzunehmen, da es sich um eine OpenSource handelt, aber keine Zeit dafür hat. – ivanorone
Ich habe eine ähnliche Fehlermeldung mit Aqua Data Studio, das den Redshift JDBC-Treiber verwendet. In meinem Fall war die Lösung, zu "Optionen" zu wechseln und das Häkchen zu entfernen; Anweisungstrennzeichen '. Es scheint, dass der Parser angenommen hat, dass das erste Semikolon das Ende der gesamten Funktionsdefinition war, und dass es das schließende $$ noch nicht gesehen hatte. Ihre Beispielfunktion wurde ohne Fehler auf meinem System (Version 9.5) erstellt, wenn diese Box nicht angekreuzt wurde. Mit dem '; Statement Separator 'angekreuzt, ich habe den gleichen Fehler bekommen. Hoffe, dass hilft. – Jason