Seite 1 von 1

executeQuery verwandelt Werte in Kleinbuchstaben

Verfasst: Fr, 19. Nov 2021 8:02
von Tom
Wenn ich über eine geöffnete Session auf dem PostGre eine neue Datenbank erzeugen will, bleibt mit nur oSession:executeQuery("CREATE DATABASE 'Datenbankname'"). Es entsteht dabei aber eine Datenbank, die 'datenbankname' heißt. Mit dem SQL-Kommando geht das nicht, weil es mit solchen Ausdrücken nicht umgehen kann. Kennt jemand eine Lösung?

Re: executeQuery verwandelt Werte in Kleinbuchstaben

Verfasst: Fr, 19. Nov 2021 9:07
von ramses
Auf CREATE DATABASE muss doch der Tabellenname als Klartext ohne Anführungszeichen folgen!???

z.B. "CREATE DATABASE actionindex WITH OWNER = postgres TEMPLATE = template0 ENCODING = 'Latin-1' LC_COLLATE = 'C' LC_CTYPE = 'C' TABLESPACE = pg_default CONNECTION LIMIT = -1;"

Re: executeQuery verwandelt Werte in Kleinbuchstaben

Verfasst: Fr, 19. Nov 2021 10:34
von Tom
@Carlo: Ja. Wird aber in Kleinbuchstaben umgewandelt. :?

Re: executeQuery verwandelt Werte in Kleinbuchstaben

Verfasst: Fr, 19. Nov 2021 13:02
von ramses
Hallo Tom

Alles Kleinbuchstaben für Namen ist eigentlich die empfohlene Schreibweise.
Ich würde mal Alaska fragen ob Sie in "executeQuery" eine entsprechende Umwandlungsfunktion eingebaut haben.

Re: executeQuery verwandelt Werte in Kleinbuchstaben

Verfasst: Fr, 19. Nov 2021 14:05
von Tom
Hallo, Carlo.
Alles Kleinbuchstaben für Namen ist eigentlich die empfohlene Schreibweise.
Im PostGreSQL-Server jedenfalls nicht, und der agiert case-sensitiv. Wenn ich mit "CREATE DATABASE MeinTest" anlege, entsteht via oSession:executeQuery() "meintest", und wenn ich dann mit "MeinTest" zu konnektieren versuche, schlägt das fehl, während es funktioniert, wenn ich "MeinTest" im Server händisch anlege. Klar kann ich die Logik darauf ausrichten, aber wenn ein IT-Admin die Datenbank vorsorglich angelegt hat, und hat dabei Groß- und Kleinbuchstaben benutzt, finde ich sie nicht, wenn ich standardmäßig nur nach Kleinbuchstaben suche. Aber ich finde es generell ein wenig irritierend, dass hier eine Umwandlung stattfindet.

Re: executeQuery verwandelt Werte in Kleinbuchstaben

Verfasst: Fr, 19. Nov 2021 15:18
von Marcus Herz
SQL Abfragen in Postgres erwarten alle Feld- und Tabellennamen in Kleinbuchstaben, ist etwas in Postgres groß, muss es in " (Doppeltes Hochkomma) eingeschlossen werden

Re: executeQuery verwandelt Werte in Kleinbuchstaben

Verfasst: Fr, 19. Nov 2021 15:34
von Tom
Hallo, Marcus.

Stimmt - danke für die Info! :)

Re: executeQuery verwandelt Werte in Kleinbuchstaben

Verfasst: Fr, 19. Nov 2021 18:52
von Marcus Herz
Eckige Klammer geht auch, nötig wenn leerzeichen im fekdnamen enthaltne sind, was postgres erlaubt, Alaska aber nicht kanm