Vor einem Jahr habe ich gezeigt, wie Sie den Inhalt einer CSV Datei mittels SQL-Loader in eine Oracle-Datenbanktabelle importieren können. Vor einigen Tagen hatte ich eine ähnliche Aufgabe bearbeitet, jedoch mussten in dem Fall neben den reinen CSV Daten auch Binärdaten in die Datenbank importiert werden. Hier speziell Bilder in ein Feld vom Datentyp CLOB. [...]
Ein Arbeitskollege hat mich auf das Flashback-SQL-Query bei Oracle Datenbanken aufmerksam gemacht. Mittels einer einfachen SQL Abfrage ist es möglich, auf alte Tabellenzustände außerhalb von Transaktionen zuzugreifen. So ist es zum Beispiel möglich, nach einer fehlerhaft formulierten UPDATE-Operation trotz Commit auf den vorherigen Tabellenzustand zurückwechseln zu können. Die Lösung ist die Verwendung des Flashback-Querys: SELECT [...]
Langsam arbeitende Prozesse und Performanceprobleme können dazu führen, dass die Verbindung zum Oracle-SQL-Client verloren geht. Normalerweise wird bei Verlust der Verbindung der in der Oracle-Datenbank gestartete Prozess abbrechen. In seltenen Fällen gibt es Oracle-Sessions, welche sich nicht aufgrund einer getrennten Verbindung nicht abgebrochen werden. Diese Sessions laufen weiter und je nach Job und Jobdauer können [...]
Ein Arbeitskollege hat mir heute einen Trick gezeigt, wie ich einige meiner bisherigen Subquerys in Oracle vereinfachen kann. Für einige spezielle Fälle bei der Ausformulierung weniger WHERE-X-IN-Bedingungen kann ich für X immer nur einen skalaren Wert angeben, welcher jedoch manchmal ein zusammengesetzter String ist, wenn ich mehrere Spalten über dieses Konstrukt auswerten möchte. Ein Beispiel [...]
Nicht gerne gesehen in einem Anwendungssystem sind Fehler in der Datenbank. Besonders gut versteckt sind meist Deadlocks, wenn mehrere Prozesse parallel in der Datenbank Daten bearbeiten. Diese Fehlerart kann in jedem guten Datenbanksystem auftreten und die Methoden zum Analysieren und Beheben der Deadlock-Ursache sind meist die Gleichen. Einen kurzen Überblick über Deadlocks und deren Auffinden [...]
Bisher waren in meinem Blog die Themen Java und Oracle recht getrennt voneinander dargestellt. Um diese zu verbinden, habe ich im Folgenden aufgeführt, wie Sie aus einem Java-Programm heraus eine Datenbankverbindung zu einer Oracle-Datenbank aufbauen können und eine einfache Abfrage absetzen können. Voraussetzungen Um eine Datenbankverbindung (Connection) herstellen zu können benötigen Sie einen Oracle-JDBC-Treiber. Für [...]
Ich habe einige Möglichkeiten zusammengetragen, um Tabellen in Oracle für ändernde Zugriffe zu sperren (nur Lesezugriff, Tabelle ist schreibgeschützt). Sinn dahinter soll sein, die Zugriffsbeschränkung auf Datenbankebene einzuschränken, und nicht wie allgemein üblich, dies über die Softwarelogik machen zu lassen. Die Möglichkeiten unterscheiden sich teilweise bei [...]
Der Oracle Optimizer verwendet bei SQL-Abfragen normalerweise den am besten passenden Index aus. Die laut dem Ausführungsplan (Excecution Plan) angezeigten Kosten für das Statement sind normalerweise recht zuverlässig, jedoch kann es auch den Fall geben, dass Indices mit leichten Abweichungen teils sehr unterschiedliche Laufzeiten haben. Um nicht vorhandene Indizes löschen zu müssen um andere Indizes [...]
In Oracle gibt es für SELECT-Statements die Möglichkeit, mehrere Tabellen mittels INNER-JOIN zu verknüpfen. Im DBMS Oracle ist dies nicht 1:1 auf Update-Statements übertragbar. Anhand folgenden Beispiels zeige ich ein einfaches Update-Statement, welches zwei Tabellen mittels INNER-JOIN verbindet. Beispiel Gegeben sind zwei Tabellen. Eine Personentabelle und eine Adresstabelle. Jede Person wohnt an einer Adresse. Verknüpft [...]
Wie bereits im letzten Artikel ersichtlich, prüfe ich zur Zeit Funktionalitäten der MySQL Datenbank. Analog zu meinem Versuch, Ergebnisse in Oracle in einer Zeile ausgeben zu lassen, habe ich dies in MySQL reproduziert. Um besser zu vergleichen zu können, verwende ich das gleiche SQL: SELECT ergebnistext FROM datentabelle; listet in mehr oder weniger vielen Zeilen [...]