Oracle: Number zu String casten

Gestern und heute hat mich ein Bug beschäftigt, der gerade mal wieder sehr schön illustriert, was ich an Oracle als DBMS hasse. Die Fehlermeldung, welche ein Test plötzlich ausspuckte, sah so aus: oci_execute(): ORA-00906: missing left parenthesis Wie immer: Keine Details, wo genau er aufgetreten ist, aber die Meldung ist ja immerhin halbwegs klar. Dachte ich jedenfalls, und fing an, Klammern in den betroffenen Code-Bereichen zu zählen. Nach etwas Mühe … Weiterlesen

Substr Oracle vs. Postgres

Wir verwenden auf der Arbeit eigentlich schon immer bei der Oracle-Funktion „SUBSTR“ als Start-Index die 0, wenn wir vorne am String anfangen wollen. Analog zu PHP, wo das ja auch so ist. Das klappt unter Oracle auch. Da wir gerade mit Postgres als DBMS experimentieren, habe ich nun aber herausgefunden, dass das unter Postgres nicht funktioniert, und zwar auf subtile Weise. Unter Postgres passiert das hier, wenn man versucht … Weiterlesen

Spalten mit gleichen Namen in Oracle

Letzte Woche bin ich bei der Arbeit mal wieder auf ein interessantes und unerwartetes Verhalten gestoßen. Die stark vereinfachte Beispiel-Query sieht so aus: Das ganze ist gedacht für Oracle 11g, andere DBMS habe ich noch nicht getestet. Für Nutzer anderer DBMS zum Verständnis: „dual“ ist in Oracle eine Dummy-Tabelle, die man benutzen kann, um Queries zu bauen, die ohne eigene Tabellen auskommen, z.B. zum Demonstrieren von Datumsfunktionen. Instinktiv hätte ich … Weiterlesen