PostgreSQL-Funktionsdefinition in SQuirreL: nicht abgeschlossene Zeichenfolge in Dollar-Anführungszeichen
Ich habe die folgende Funktionsdefinition für eine PostgreSQL 9.3.4-Datenbank:
CREATE OR REPLACE FUNCTION update_modified_timestamp()
RETURNS TRIGGER AS $
BEGIN
NEW.modified_at = now();
RETURN NEW;
END;
$ LANGUAGE plpgsql;
Wenn ich versuche, dies in SQuirreL (3.5.3 oder 3.6) auszuführen, wird der folgende Fehler angezeigt:
Error: ERROR: unterminated dollar-quoted string at or near "$
BEGIN
NEW.modified_at = now()"
Position: 77
SQLState: 42601
ErrorCode: 0
So weit ich das gelernt habekann durch einfache Anführungszeichen gemildert werden, um den Funktionskörper wie folgt abzugrenzen:
CREATE OR REPLACE FUNCTION update_modified_timestamp()
RETURNS TRIGGER AS '
BEGIN
NEW.modified_at = now();
RETURN NEW;
END;
' LANGUAGE plpgsql;
Still ich möchte wissen, ob dies nicht anders gelöst werden kann - ich denke, es muss möglich sein, daWeg fliege kann dieses Skript ausführen und verwendet genau den JDBC-Treiber, der in SQuirreL konfiguriert ist.
Aktualisieren @ein Pferd ohne Nam stellte fest, dass dieser Fehler nichts mit dem JDBC-Treiber zu tun hat, sondern damit, wie SQuirreL die SQL-Anweisung analysiert und in Blöcke aufteilt, bevor sie an die Datenbank gesendet wird. Somit lautet die verbleibende Frage:Kann SQuirreL eine unformatierte / ungeparste Anfrage senden? Ich habe ziemlich viel gesucht und konnte keinen Weg finden, das zu tun.