Leben ist wandelbar

Weißt Du, welchen Fehler man immer wieder macht? Den, zu glauben, das Leben sei unwandelbar, und wenn man einmal einen Weg eingeschlagen hat, müsse man ihn auch bis zum Ende gehen.

Das Schicksal hat viel mehr Phantasie als wir. Gerade, wenn Du glaubst, Du befändest dich in einer ausweglosen Situation, wenn Du den Gipfel höchster Verzweiflung erreichst, verändert sich mit der Geschwindigkeit eines Windstoßes alles, dreht sich, und plötzlich lebst Du unvermutet ein neues Leben.

Susanna Tamaro in
Geh, wohin Dein Herz Dich trägt
Roman, Diogenes Verlag, 1995

ORA-00907: Rechte Klammer fehlt

ORACLE offeriert uns folgende Fehlermeldung:

ORA-00907: Rechte Klammer fehlt
 00907. 00000 - "missing right parenthesis"
 *Cause:
 *Action:
 Error at Line: 4 Column: 15

Es geht hierbei um das nachstehend geannte SQL, deren Sinnhaftigkeit irrelevant ist da das ursprünge SQL deutlich komplexer war, jedoch auf den ersten Blick technich korrekt erscheint – vor allem in Bezug auf die von ORACLE markierte Position:

SELECT *
  FROM users
 WHERE user_id != 100
   AND ( role_id IN (SELECT role_id
                      FROM userroles as r 
                     WHERE role_id NOT IN( 100 ) ) );

Die Analyse ergibt keine Fehler

  • Alle Klammern sind vollständig
  • Das SQL sieht fehlerfrei aus
  • Das Entfernen oder Ersetzen der äußeren IN-Bedingung löst die Fehlermeldung, lässt den Fehler jedoch nicht erkennen

Ursache

In der hier aufgeführten Query wurde ein Alias in der Subquery gesetzt welcher mit einem AS eingeleitet wurde, die von ORACLE jedoch als Tabellenalias nicht unterstützt werden. Die oben genannte Fehlermeldung führt einen nicht zu dem Problem an dieser Stelle.

Lösung

Die Aliaseinleitung AS entfernen und das SQL erneut ausführen.

Weitere mögliche Ursachen

Sollte die von mir geschilderte Problemlösung bei Dir nicht zutreffen kannst Du Deine Query auf folgende Punkte hin überprüfen:

  • Verwendung eines nicht erlaubten ORDER BY einer Subquerys oder innerhalb eines Joins:
SELECT *
  FROM users
 WHERE user_id != 100
   AND ( role_id IN (SELECT role_id
                       FROM userroles
                      WHERE role_id NOT IN( 100 ) 
                      ORDER BY role_id) );
  • Verwendung eines Joins mit Verweis einer Subquery:
...
LEFT JOIN userroles 
  ON userroles.role_id = ( SELECT max(role_id) 
                             FROM userroles )
...

Literatur zu diesem Thema:

typisch kräuter: Nicht nur Gartenkräuter im Sortiment

Jens May – Betreiber von typisch kräuter! – bietet nicht nur Gartenkräuter wie Rosmarin, Thymian oder Lavendel auf seiner Website an. Bereits seit zwei Jahren verkauft Jens seine Kräuter erfolgreich im Neuwieder Ladenlokal und nun seit Anfang 2014 auch auf seiner Website typischkraeuter.de zu einem in dieser Qualität recht günstigen Preis.

Produktbewertung Samsung EX2F

Ich habe mir Ende des Jahres 2013 die Samsung  EX2F gegönnt um unsere alte Kamera endlich gegen eine kompaktere einzutauschen. Jedoch war mir wichtig, dass diese in einem Smart-Modus für einen Schnappschuss immer ein relativ gutes Bild abliefert und mir dennoch ausreichend Freiheit anbietet um Fotos mit individuellen Einstellungen zu knipsen, wie man es von einer Spiegelreflexkamera gewohnt ist.

Mit 295 Gramm liegt diese Kamera noch so gerade eben gut in der Hand und bietet neben den heute üblichen 12,8 Megapixel allerhand Komfort:

  • Ausklappbares 3 Zoll (7,6 cm) Display, dass eingeklappt gut geschützt auch grobere Stöße verträgt
  • Versenkbarer Blitz
  • Einfacher Wahlhebel für Aufnahmemodus
  • Stativ- und Blitzanschluss
  • Selbstauslöser
  • Verschiedene Bildbearbeitungsfunktionen und Direktfilter
  • WLAN und Facebook-Funktionen

Weniger Positiv aufgefallen sind mir folgende Dinge:

  • Bei näherer Betrachtung erkennt man trotz CMOS-Chip dennoch ein Bildrauschen, auch bei hellen Aufnahmen
  • Die Menüführung ist an manchen Stellen nicht so intuitiv.
  • Einige Knöpfe wurde mit mehreren Funktionen belegt, während andere nur eine einzige Funktion vertreten, die man jedoch selten oder in meinem Fall sogar nie braucht.

Meine ersten Himmelsbilder mit unterschiedlichen Gegenlicht aufgenommen mit der Samsung EX2F sowie weitere Makro- und Portraitaufnahmen liefern einen akzeptablen Eindruck:

Zusammenfassend bin ich mit dieser Digitalkamera zufrieden, da dieses Modell nun bereits mehrere Jahre alt ist und dazu noch erfolgreich weiter entwickelt wurde.

Samsung EX2F Digitalkamera

Screen auf der Linux-Konsole benutzen

Mittels screen ist man unter Linux in der Lage – verbunden über Putty und eine lange Serverlaufzeit ohne Neustart vorausgesetzt – ein schier endloses Linuxleben in ein und der selben Konsole zu führen.

Dies hat den Vorteil, dass längere Befehlsausführungen in einer eigenen Sitzung laufen können ohne diese Verbindung dauerhaft aufrecht erhalten zu müssen. Auch führt eine gescheiterte Netzwerkverbindung nicht dazu, dass die gesamte Sitzung abgebrochen wird sondern lediglich die Verbindung zu der Screen-Sitzung. Screen auf der Linux-Konsole benutzen weiterlesen

Umstellung mysql auf mysqli

Mit PHP 5.5.0 werden die alten mysql-Funktionen als deprecated markiert und in einer künftigeren – mit dem heutigen Stand jedoch nicht näher spezifizierten Version – gänzlich entfernt. Daher sollte eine Umstellung dessen in den eigenen Projekten mittelfristig eingeplant werden. Dafür habe ich an dieser Stelle eine Umfängliche Schritt-für-Schritt Anleitung zusammengestellt.

MySQL: Das umfassende HandbuchDie Umstellung der mysql_*-Funktionen auf mysqli_*-Funktionen geht relativ reibungslos vonstatten, sofern man eine zentrale Verarbeitung der Datenbankabfragen implementiert hat. Ist dies nicht der Fall so wird sich der hier aufgeführte Aufwand um die Anzahl der zu behandelnden Stellen zuzüglich der notwendigen Tests in ungefähr multiplizieren. Umstellung mysql auf mysqli weiterlesen