Oracle SQL String Split in mehrere Zeilen/Rows

Auch mit dem besten Datenbankmodell gibt es Importe und Situationen in denen in einem Feld mehrer Werte durch Separatoren getrennt hinterlegt sind.

Um diese Werte in Zeilen umzuwandeln gibt es genügend Varianten im Internet zu finden: z.b. auf Stackoverflow. Die meisten Lösungen arbeiten dabei mit regulären Ausdrücken und der Funktion „regexp_substr“. Die gehen einfach von der Hand, wirken sich bei größeren Datenmengen, wie sie in einem Datawarehouse vorkommen, aber durchaus auf die Performance aus. Um nicht mit Kanonen auf Spatzen zu schießen, läßt sich das Splitten alternativ mit einfachen Stringfunktionen lösen. Weiterlesen

Veröffentlicht unter Datenbanken, Oracle | Hinterlasse einen Kommentar

Azure Datawarehouse: SQL Server Management Studio Verbindung

Als erster Teil einer kleinen Serie zum Thema Azure Warehouse beschäftigte ich mich heute mit der Verbindung des SQL Server Management Studios (kurz SSMS) zum Azure Datawarehouse. Weiterlesen

Veröffentlicht unter SQL | Hinterlasse einen Kommentar

ORA-12899: Aber mein String ist doch nicht zu lang?

Mit dem Fehler ORA-12899 möchte die Datenbank sagen, dass eine Zeichenfolge nicht in die gewünschte Varchar2 Spalte passt. In der Regel ist der String auch wirklich viel zu lang für die Spalte und der Fehler liegt woanders.

In vielen anderen Fällen ist vielleicht eine Eigenheit des Varchar2 Datentyps unter Oracle die Ursache. Weiterlesen

Veröffentlicht unter Datenbanken, Oracle | Hinterlasse einen Kommentar

Oracle 12c: EM Database Express – Seite nicht gefunden

Nach der Installation der eigentlichen Datenbank und der Konfiguration im letzten Schritt, bietet der Oracle 12c Installer vollmundig den Link zum EM Database Express an.

Beim Klick auf den Link gibt es aber nur die Fehlermeldung „404 Seite nicht gefunden“. Weiterlesen

Veröffentlicht unter Oracle | Hinterlasse einen Kommentar

Neue Downloads verfügbar!

Ab sofort finden Sie im Download Bereich das neue Tool „jeperti.Mailer“ zum Versand von EMails  – schnell und einfach. z.B. aus der Kommandozeile heraus.

Veröffentlicht unter Allgemein | Hinterlasse einen Kommentar

Oracle SQL – zufällige Testdaten

Neue Logiken im DWH Umfeld möchten erst einmal getestet werden. Um nicht nach mehreren Stunden Laufzeit festzustellen was schief gelaufen ist, macht es Sinn den neuen Algorithmus erst einmal an einem Subset von Daten auszuprobieren.

Die Einschränkung nach fachlichen Keys ist zumeist nicht sehr interessant. Nicht fortlaufende oder zusammengesetzte Primary Keys erschweren die Selektion darauf. Überhaupt würden vielleicht fortlaufende Nummern gar keinen repräsentativen Teil der Daten wiederspiegeln; die Daten für einen Test also gar nicht taugen. Weiterlesen

Veröffentlicht unter Datenbanken, Oracle | Verschlagwortet mit , , , , | Hinterlasse einen Kommentar

Raspberry PI 3 : Mono Installation

Um auf dem Raspberry mit .Net Apps arbeiten zu können muss zuerst die entsprechende Laufzeitumgebung installiert werden. Unter Linux ist dies die freie Umgebung Mono. Im Vergleich zum Original bringt sie ein paar Einschränkungen mit, die aber bei der Programmierung auf dem Raspi nicht weiter ins Gewicht fallen sollten.

Zur Installation genügt auf dem auf Debian basierenden Raspbian der Aufruf des Paketmanagers auf der Konsole:

sudo apt-get install mono-complete

Nachdem nun die eigene .Net App auf den Raspy kopiert wurde lässt sie sich einfach starten:

mono APP-NAME.exe

Grundsätzlich funktioniert die Installation auch über:

sudo apt-get install mono

Dies produziert dann beim Start  einer eigenen App eine Menge Assembly Not Found Exceptions.

Veröffentlicht unter .Net, IOT | 3 Kommentare

Raspberry PI 3 – Inbetriebnahme

Ist der Raspberry PI 3 erst einmal ausgepackt, muss das Betriebssystem noch installiert werden. Das Raspian Linux auf Debian Basis befindet sich auf der offiziellen Rasberry Website zum Download. Eine gute Installationsanleitung ist dort ebenfalls vorhanden.

Weniger direkt dokumentiert ist, dass das Filesystem noch erweitert werden muss. Das Image, das nun gerade aufgespielt wurde, füllt nicht die ganze SD-Karte aus. Das Filesystem muss auf Betriebssystem-Ebene erweitert werden. Passsiert dies nicht ist die SD Karte schon nach den ersten Aktionen voll. Weiterlesen

Veröffentlicht unter IOT | Kommentare deaktiviert für Raspberry PI 3 – Inbetriebnahme

Datenbankinterview: Slow by Slow

Wenn man statt einer einzigen Datenbankabfrage viele kleine Statements absetzt, ähnelt das direkt einem Interview. Fragen über Fragen.

Im Allgemeinen versucht man mit einer Abfrage das Problem möglichst umfassend zu erledigen. Sind also 500 Datensätze zu aktualisieren schreibt man ein einziges statt 500 Update Statements. Hier auch ein wunderbarer Blog Eintrag zu genau diesem „Slow by Slow“ Thema. Und was wenn das einzige Statement nicht möglich ist ? z.B. wenn das Problem nur iterativ/rekursiv zu lösen ist?

Weiterlesen

Veröffentlicht unter Oracle | Kommentare deaktiviert für Datenbankinterview: Slow by Slow

ORA-01950: keine Berechtigung für Tablespace ‚USERS‘

Beim Anlegen einer Tabelle weist die Fehlermeldung

ORA-01950: keine Berechtigung für Tablespace ‚USERS

auf fehlende Grants für den Tablespace hin.

Dies kann einerseits wirklich an Berechtigungen liegen, oder aber es ist einfach kein Limit für den User auf dem Tablespace gesetzt. Bei einem neu angelegten User kann das durchaus vergessen worden sein.

Die Anweisung


grant unlimited tablespace to USER_NAME

gibt auf alle Tablespaces unlimitierte Rechte. Dies ist natürlich nur in einer Testumgebung zu empfehlen.

In der Produktion sind hier definierte Quotas zu empfehlen.

Veröffentlicht unter Oracle | Kommentare deaktiviert für ORA-01950: keine Berechtigung für Tablespace ‚USERS‘