2017-03-04 1 views
1

Ich habe eine Anwendung, die ich erstelle (Spring Boot, PostgreSQL); Ich führe SQL-Anweisungen von einer Datei sqlStatements.sql gegen die Datenbank aus. In einigen Fällen scheint es, dass der Treiber ein Leerzeichen an die Front von Einfügeanweisungen anhängt, und wenn er versucht, eine Funktion zu erstellen, tritt er bei der Definition von Tabellen nicht auf. Ich habe die trim() -Methode für die SQL-Zeichenfolge vergeblich verwendet. Beim Loggen der SQL-Anweisungen gibt es kein Leerzeichen, aber wenn man sich die PostgreSQL-Logs anschaut, ist es schon da. Ist das ein bekanntes Problem mit dem Fahrer? Gibt es eine Einstellung auf der Datenbankseite, die ich ändern muss? Oder muss ich Arbeit in Java extrahieren, um diesen Fehler zu vermeiden?PostgreSQL-Treiber hängt versteckte Zeichen auf einigen SQL-Anweisungen

Der Raum verschwand beim Einfügen hier, also fügte ich ihn hinzu; Die SQL-Dateien sind alle UTF-8.

Anwendungsprotokoll:

org.postgresql.util.PSQLException: ERROR: syntax error at or near "insert" Position: 1

PostgreSQL Log:

2017-03-04 10:29:26 EST ERROR: syntax error at or near " insert" at character 1

Jedes Feedback geschätzt würde.

+3

Ich bezweifle stark, dass das das eigentliche Problem ist. Ich würde vermuten, dass mit Ihren Abfragen oder der Art, wie Sie Ihre Abfragen lesen, etwas nicht in Ordnung ist, bevor Sie sie ausführen. –

+0

Die Abfragen funktionieren in pgAdmin, und es gibt keinen Unterschied zwischen der Art und Weise, wie die Dateien mit Anweisungen create statement vs insert gelesen werden. – EvangeloPoneres

+1

Ihre SQL-Datei beginnt wahrscheinlich mit einer Stückliste. Entfernen Sie es aus der Datei oder behandeln Sie es beim Lesen. https://en.wikipedia.org/wiki/Byte_order_mark. Dump jedes einzelne Zeichen aus der Datei gelesen, und Sie werden sehen, dass es * ein Nin-druckbares Zeichen in dem, was Sie lesen. –

Antwort

Verwandte Themen