"FEHLER: Syntaxfehler am Ende der Eingabe" obwohl Script ausgeführt wird

Hallo zusammen,
folgendes psql-Script kann ich in pgAdmin ohne Fehlermeldung ausführen. Der Eintrag wird auch gemacht.

DO $do$  																				 																					
	DECLARE 
		genConfID INT;   																		
		genUsrID INT;   																		
	BEGIN    																					
		-- generate random IDs
		SELECT (floor(random() * 100)) INTO genUsrID; 
		SELECT (floor(random() * 100)) INTO genConfID; 	
									
		IF NOT EXISTS (SELECT 1 FROM  schema.user WHERE name= 'admin') THEN   
									  		 
			-- insert in config table   															
			INSERT INTO schema.config (confID,vol,mute,color,hide) 											
			VALUES(genConfID,1.0,FALSE,0|0|0|0,FALSE);  
											
			 -- insert in user table   										
			INSERT INTO schema.user (usrID,name,pwd,role,ct,config_confID)   										
			VALUES(genUsrID,'admin', 'admin', 'admin',0,genConfID);
																		
		END IF;   																			 
	END  																						
 $do$; 

Wenn ich das ganze aber in Java über executeUpdate() ausführe bekomme ich folgende Fehlermeldung:

FEHLER: Syntaxfehler am Ende der Eingabe
Position: 515, FEHLER: Syntaxfehler am Ende der Eingabe

Sieht vielleicht jemand meinen Fehler?

Vielen Dank schonmal

Hmm, das 0|0|0|0 sieht komisch aus. Sollte das nicht mit Anführungszeichen geschrieben werden?
Also '0|0|0|0'

Hast Du wirklich eine Tabelle namens user? Das ist ziemlich gefährlich, weil das auch ein reserviertes Schlüsselwort und eine Funktion ist. Sicherheitshalber solltest Du das immer mit doppelten Anführungszeichen verwenden: insert into schema."user" (...)

Verwendest ein PreparedStatement oder ein normales Statement?

Das 0|0|0|0 ist eine Farbe, die in der Datenbank gespeichert werden soll. Stimmt, das muss natürlich in Anführungszeichen.

Ja, ich verwende die Tabelle User zum speichern meiner Benutzer. Dass das nicht so clever ist habe ich schon öfter gelesen und ich muss meine Datenbank noch umstellen was das betrifft :grinning:

Ich verwende ein normales Statement. Wäre es besser ein PreparedStatement zu verwenden?

Mich wundert es einfach dass ich mein SQL-Skript in pgAdmin ohne Probleme ausführen kann und über JDBC nicht :thinking:

Dieses Thema wurde automatisch 60 Tage nach der letzten Antwort geschlossen. Es sind keine neuen Nachrichten mehr erlaubt.