„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie behebe ich „Unterminated Dollar-Quoted String“-Fehler in PostgreSQL-Funktionen mit Goose?

Wie behebe ich „Unterminated Dollar-Quoted String“-Fehler in PostgreSQL-Funktionen mit Goose?

Veröffentlicht am 17.11.2024
Durchsuche:112

How to Resolve \

Unterminierte Zeichenfolge in Dollar-Anführungszeichen: Fehler mit Semikolons beheben

Im Zusammenhang mit der Erstellung einer PostgreSQL-Funktion mit Goose behandelt dieser Artikel einen Fehler Wird beim Verarbeiten einer komplexen Anweisung innerhalb des Funktionskörpers angetroffen. Der von der pq-Bibliothek gemeldete Fehler weist darauf hin, dass eine Zeichenfolge in Dollar-Anführungszeichen nicht abgeschlossen ist.

Um dieses Problem zu beheben, beachten Sie, dass komplexe Anweisungen mit Semikolons eine Annotation mit „--goose StatementBegin“ und „--goose“ erfordern StatementEnd"-Anmerkungen gemäß der Goose-Dokumentation. Diese Annotationen unterstützen Goose bei der Verwaltung eingebetteter Semikolons in SQL-Anweisungen und verhindern so libpq-Fehler.

Durch Anwenden dieser Annotationen auf das bereitgestellte Codebeispiel wird der Fehler behoben:

CREATE OR REPLACE FUNCTION add_userlocation(user_id INT, location_id INT) RETURNS VOID AS
$BODY$
--  goose StatementBegin
BEGIN
    LOOP
        UPDATE userslocations SET count = count 1 WHERE userid = user_id AND locationid = location_id;
    IF found THEN
        RETURN;
    END IF;
    BEGIN
        INSERT INTO userslocations(userid,locationid, count) VALUES (user_id, location_id, 1);
           RETURN;
       EXCEPTION WHEN unique_violation THEN
    END;
   END LOOP;
--  goose StatementEnd
END;
$BODY$
LANGUAGE plpgsql;
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3