Tipp des Monats

02.
November
2023

Seit Oracle 9i gibt es die Möglichkeit anzugeben, ob die Datenbank die Längenangabe bei CHAR und VARCHAR2 als Byte oder als Zeichenanzahl interpretiert. Dies bezeichnet man als Character Length Semantics. Wozu dient die Angabe und welche Auswirkungen hat sie?

13.
Juli
2022

Gerade bei größeren Abfragen ist es immer sinnvoll, Text zu "sparen“, wenn dies ohne zu große Komplexität und Performance-Einbußen möglich ist. Bis einschließlich 19c konnte man dies hauptsächlich über PL/SQL-Funktionen und Views in SQL abbilden. Hierbei funktionieren Views nur auf Tabellenebene und klassische PL/SQL-Funktionen führen in der Regel zu einem Kontext Switch. Mit dem in 20c hinzugekommenen SQL Macros gibt es hier nun eine weitere Möglichkeit.

11.
November
2019

Muniqsoft Consulting unterstützt ihre Kunden bei allen Belangen rund um die Oracle Datenbank. Auch mit speziellen Themen, die grundsätzlich nicht zu den typischen DBA-Aufgaben gehören wie z. B. „Oracle Text“, sind wir vertraut. Dieser Tipp beschreibt den Lösungsweg eines Problemfalls, der bei einem Kunden aufgetreten ist. Wenn Sie bereits grundlegende Kenntnisse mit „Oracle Text“ haben, dann springen Sie bitte direkt zu Punkt 3. Für die anderen Leser erklären wir zuerst, was „Oracle Text“ ist und wie man damit umgeht. Unter dem letzten Punkt finden Sie Links auf weitere von uns verfasste Artikel zum Thema „Oracle Text“.

01.
Mai
2019

Records sind in PL/SQL geläufiger als Objekttypen. Nur das Handling war bisweilen etwas mühsam, da jedes Feld einzeln zugewiesen werden musste. Da wünschte man sich doch gelegentlich etwas Analoges zum Konstruktor bei Objekttypen. Mit Version 18c geht dieser Wunsch nun in Erfüllung. :)

02.
Juli
2018

Webservices sind aus der modernen Welt des Datenaustausches nicht mehr wegzudenken. Und so haben Aufrufe auch vermehrt Einzug gehalten in PL/SQL-Routinen. Dieser Artikel soll eine kleine Übersicht über Aufrufvarianten via UTL_HTTP geben.

02.
Januar
2017

In diesem Tipp zeigen wir eine Möglichkeit zur Bewertung verschiedener potentieller Gefahren in der Oracle Datenbank, welche individualisiert überprüft werden können. Da wären SQL Injection-anfällige Eingaben oder auch die Gefährlichkeit der Rechte bzw. Rollen von Datenbanknutzern.

03.
April
2015

Diesen Monat widmen wir uns dem Thema Schutz vor dem unbeabsichtigten Löschen von wichtigen Objekten.

21.
Oktober
2013
06.
Juni
2012

Der Export von Tabellen als csv-Files ist immer wieder ein Thema in unseren PL/SQL- und Packages-Kursen, weil die meisten gerne mit Excel arbeiten. Deshalb gebe ich unseren Teilnehmern immer eine einfache Prozedur mit, über die man Inhalte beliebiger Tabellen (solange sie keine LOB-Spalten oder ähnliches enthalten) mittels UTL_FILE als semikolon-separierte Ascii-File exportieren kann. Der Einsatz von UTL_FILE ist nicht der schnellste Weg, aber man kann diese Prozeduren sehr gut in Datenbank-Jobs einbinden oder für andere PL/SQL-Programme  verwenden.

03.
Februar
2012

Der Result Cache ist ein - leider auf die Enterprise Edition beschränktes - Feature, das mit Version 11g eingeführt wurde. Er ist sowohl in SQL für Select-Befehle als auch in PL/SQL für Funktionsaufrufe nutzbar. Die Idee dahinter ist in beiden Fällen, dass das Ergebnis bei der ersten Ausführung gespeichert wird und bei weiteren Aufrufen der Befehl selber nicht mehr ausgeführt, sondern das Ergebnis aus dem Cache abgerufen wird. Um Tom Kyte zu zitieren: "Everyone knows the fastest way to do something is – to not do it".

02.
August
2011

Der Vergleich und die Synchronisation von Tabellen waren schon einmal Gegenstand eines Monatstipps im Mai 2009. Damals beschränkte sich der Vergleich jedoch auf bis zu 4 Spalten. Die hier vorgestellten Packages für Oracle 10g und 11g ermöglichen den Vergleich aller Spalten.

03.
Juli
2011

Mit Version 11.2.0.2 wurde das altbekannte Package UTL_SMTP erweitert. Die wichtigste Neuerung liegt darin, dass jetzt auch SSL-verschlüsselte Mails verschickt werden können. Daneben wurde die Authentifizierung am Mailserver vereinfacht, dafür gibt es jetzt einen eigenen Aufruf.

02.
Juni
2011

Bereits seit der Version 10.1 kann man mit einer (undokumentierten) Funktion den Inhalt von Betriebssystemordnern auslesen. Diese Prozedur wird vom RMAN bei folgendem Befehl verwendet:

02.
Mai
2011

Mit Version 11g Release 2 wurde ein sehr nützliches Feature zur Überwachung von Datenbank-Jobs eingeführt: die automatische Mailbenachrichtigung. Die Einrichtung ist denkbar einfach: Zunächst muss ein Administrator den zu verwendenden Mailserver einmalig konfigurieren.

04.
Dezember
2010

Um den Inhalt von Tabellen in XML-Files zu überführen, gibt es eine ganze Reihe von Möglichkeiten, u.a. die Verwendung der SQL-XML(SQLX)-Funktionen wie XMLElement, XMLAgg, XMLForest etc., das Package DBMS_XMLGen und die Erzeugung von XML-Daten über das sog. DBUriServlet. In diesem Monatstipp sollen die beiden letztgenannten Methoden kurz vorgestellt werden...

04.
Oktober
2010

Seit Jahren stellt sich mir immer wieder das gleiche Problem:
Wie kann ich eine Aktion x-Mal in der Datenbank ausführen?
z.B. Wie kann ich 100 Indizes in einen anderen Tablespace verschieben?
Bisher war meine Lösung immer:

04.
Juli
2010

In einem<link http: www.muniqsoft.de tipps monatstipps jahr-2002 maerz-2002.htm internal-link> früheren Beitrag<link http: www.muniqsoft.de tipps monatstipps jahr-2002 maerz-2002.htm internal-link> wurde das Tracing einer Datenbank-Session bereits generell beschrieben, daher soll hier nicht näher auf die Grundlagen eingegangen werden. Neben den dort vorgestellten Methoden gibt es seit Version 10g noch das Package DBMS_MONITOR, das diverse Möglichkeiten zum Tracing bietet.

03.
Februar
2010

Seit der Version 7 bietet Oracle die Möglichkeit der Volltextsuche. Die frühen Optionen mußten noch separat installiert werden und in der Oracle -Version 8i war die Textsuche in das kostenpflichtige Zusatzmodul interMedia integriert. Seit Version 9i ist Oracle Text jedoch fester Bestandteil der Datenbank, auch in der Express Edition.

02.
November
2009

Jeder hat schon mal von den LOB-Datentypen gehört, die für die Speicherung von großen Textdateien bzw. binären Dateien geeignet sind. In der Oracle Datenbankversion 10g können sie Daten bis zu 128 Terabyte pro Feld aufnehmen ((4GB-1) * DB-Blockgröße).
Das Einfügen von Bildern in Tabellen ist allerdings nicht über einfachen Insert möglich, sondern nur über PL/SQL-Prozeduren und das Package DBMS_LOB.

04.
Mai
2009

Es gibt eine ganze Reihe von Tools zum Vergleich einzelner Oracle-Datenbankobjekte oder ganzen Schemata auf dem Markt (einige der meistgenannten sind in [1] zusammen gefasst).
Viele dieser Tools vergleichen aber nicht die Inhalte, sondern nur die Definitionen der Datenbankobjekte.

02.
März
2009

Sie wollten schon häufiger Datenbankdateien von einem Server A auf den Server B kopieren und waren aber gerade nicht in der Lage sich lokal mit einem der Server zu verbinden und anschließend den anderen zu mounten? Oder es war Ihnen schlichtweg zu umständlich? Dann haben wir hier vielleicht eine ganz praktische Lösung für Sie.

02.
Februar
2009

In diesem Tipp des Monats schauen wir uns mal die Speicherbelegung der Tabellen und Indizes an.
Es gibt zwar seit Version 10g einen Advisor, der einem die Speicherbelegung der Segmente anzeigt; wir wollen hier aber eine Ausgabe in Tabellenform für mehrere Objekte erzeugen.
Wie heißt es so schön: Es gibt kaum eine Information, die man nicht aus einer Oracle-DB herausholen kann, man muss nur die richtige (Öl)-Quelle anzapfen.

01.
Januar
2009

Viele Applikationen verwenden die Möglichkeiten zur Mailversendung aus Oracle heraus, sei es mit UTL_SMTP, sei es mit UTL_MAIL. Bis Version 10g reichte es, wenn der Eigentümer der Sende-Prozedur das EXECUTE-Recht auf das jeweilige Package hatte. Soll auf 11g migriert werden, so erfordert dies einen zusätzlichen administrativen Aufwand.

02.
September
2008

Die regulären Ausdrücke waren schon einmal Thema eines Monatstipps (April 2004), als sie mit der Oracle Version 10g als Neuerung erschienen waren. 

Diesmal soll es vor allem um einfache Anwendungsbeispiele für die Funktionen REGEXP_LIKE, REGEXP_SUBSTR und REGEXP_REPLACE gehen.

02.
Mai
2008

Es kommt immer wieder vor, dass bei einem DML-Trigger für Überprüfungen oder Protokollierungen Daten aus der zu ändernden Tabelle benötigt werden. Ein normaler Row Trigger scheidet dann in der Regel aus, weil man sonst in das Problem mit den Mutating Tables läuft...

04.
Februar
2008

Bereits seit Version 9.2 ist es prinzipiell zulässig, Collections für Bulk DML zu verwenden, die als Datentyp einen Record haben. Sinnvolle Einsatzmöglichkeiten dafür gab es aber nur beim INSERT-Befehl, da der Record nur als Ganzes angesprochen werden durfte, aber nicht einzelne Felder daraus. Das bedeutete: Wollte man aus Performance-Gründen mit Bulk Update oder Delete arbeiten, musste man (auch in 10g) für jede einzelne Spalte eine eigene Collection befüllen.

02.
Februar
2008

Wir hatten vor kurzer Zeit in einem Projekt das Problem, einen Ref Cursor auszuwerten, von dem nicht bekannt war, wie viele Spalten er zurückliefert. Dies ist aber notwendig, um eine entsprechende Anzahl an Parametern (bzw. Records/Arrays) zu definieren.

04.
Oktober
2007

Haben wir uns nicht alle schon mal darüber geärgert, dass auf NULL

Spalten nur mit der folgenden Klausel abgefragt werden kann:

04.
September
2007

Wollten Sie immer schon mal eine Ausgabe, die nur wenige Spalten besitzt, Platz sparend ausgeben?

 

 

03.
Juli
2007

Oracle bietet ab Version 8i die Möglichkeit, aufgrund von bestimmten Sessionkriterien den Zugriff auf bestimmte Daten einzuschränken (Application Context). Dadurch können viele statische Views eingespart werden.

06.
Mai
2007

APEX (formerly known as HTMLDB) ist inzwischen in aller Munde, aber einige entwickeln weiterhin mit dem Basis-Package htp..

03.
April
2007

Haben Sie sich auch schon mal gewünscht, dass SQL*Plus einen Monat als schönen Kalender darstellt? Mit der folgenden Funktion können Sie sich den aktuellen Monat (Default) oder einen beliebig anderen Monat anzeigen lassen

05.
März
2007

In unseren Schulungen werden wir immer mal wieder zu dem Datentyp LONG befragt.

 

04.
Februar
2007

Reports in Application Express basieren in der Regel auf einem Select-Befehl. Gelegentlich kommt es aber vor, dass man die Werte in Form eines Arrays vorliegen hat und diese als Report anzeigen will. Was tun?

01.
Dezember
2006

Ab und an müssen Datenbankuser gelöscht werden. Gibt es also eine Möglichkeit diesen Befehl zu beschleunigen? 

06.
September
2006

Dynamische Selects zu schreiben ist dank Ref Cursoren mittlerweile ziemlich einfach geworden. Was aber tut man, wenn man die Spaltenliste des Select-Befehls nicht kennt?

05.
April
2006

Hatten Sie auch schon einmal das Problem, dass Sie einen Datensatz gesucht haben, aber nicht wussten, in welcher Spalte dieser steht? Wir haben noch eines drauf gesetzt und können sogar Werte suchen, von denen man nicht weiß, in welcher Tabelle sie stehen.

03.
März
2006

Mit Version 9i wurde die Möglichkeit der nativen Kompilierung eingeführt, die mit Version 10g eine deutliche Vereinfachung erfuhr...

05.
Januar
2006

Bis zur Version9i waren nur folgende Operationen zum Reorganisieren von Tabellen möglich: Tabelle exportieren (evtl. mit COMPRESS=Y) Tabelle löschen, Tabelle evtl. mit neuen Speicherparametern anlegen,Tabelle importieren,Ab Version 8i wurde folgende Operation ermöglicht:

01.
Januar
2006

Mit Version 10g hat Oracle UTL_MAIL herausgebracht, ein neues Package, das wesentlich
mehr Anwendungskomfort bietet. Für die Versionen 10.1.x ist jedoch eine ganze Reihe von
Bugs beschrieben, die spätestens in Version 10.2. behoben wurden, so dass UTL_MAIL erst
ab dieser Version zu empfehlen ist.

Jede Menge Know-how für Sie!

In unserer Know-How Datenbank finden Sie mehr als 300 ausführliche Beiträge zu den Oracle-Themen wie DBA, SQL, PL/SQL, APEX und vielem mehr.
Hier erhalten Sie Antworten auf Ihre Fragen.