Die FOR-Schleife in Oracle war bisher im Vergleich zu anderen Sprachen recht begrenzt in ihren Möglichkeiten. Mit Version 21c hat sich das drastisch geändert. Die neue Version bringt eine Menge an Erweiterungen. In diesem Tipp soll die neue Vielfalt anhand einfacher Beispiele erläutert werden.
Es gab und gibt Beschränkungen, mit denen man immer wieder klarkommen muss. Die ein oder andere davon entfällt aber auch im Laufe der Jahre, was einem möglicherweise im Alltag entgeht. Dieser Tipp möchte ein paar kleine aber feine Neuerungen aus den Versionen 12.2 und 18c herausgreifen, die vor allem Entwickler interessieren dürften.
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“.
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. :)
Wie oft möchte man den einen oder anderen Netzwerkparameter aus den Dateien tnsnames.ora, listener.ora oder sqlnet.ora von einem Unix Server auslesen?...Was also tun?
Manchmal umfassen Applikationen nicht nur viel Quelltext, sondern auch sehr viele Views, in denen u. a. auch Funktionen aus diversen Packages verwendet werden.
Der SQL Developer als Oracle-proprietäres Tool erfreut sich mittlerweile großer Beliebtheit. Entwickler, die den SQL Developer auch zum Debuggen nutzen, werden bei 12c-Datenbanken jedoch erst einmal eine neue Hürde überwinden müssen.
Wer je Daten für eine Web-Applikation bereitstellen musste, kennt das Problem der Pagination. In der Regel holt das Frontend ja nur die Daten, die auf eine Seite passen, und erst wenn mehr angefordert werden, werden auch mehr geholt.
Die Heat Map zeichnet auf Blockebene den Datenzugriff und die Veränderungshäufigkeit auf.
Mit diesem Wissen kann man Daten, die selten verwendet oder verändert werden, an Ort und Stelle komprimieren und auf einen anderen Tablespace (auf ein langsameres und billigeres Medium) verschieben.
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:
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...
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:
Die häufigsten Einsatzfälle dürften sein: eine Suche unabhängig von Groß-/Kleinschreibung zu machen, indem man einen Index auf UPPER(spalte) legt, oder - normalerweise nicht indizierte - NULL-Werte für die Indizierung zugänglich zu machen durch NVL(spalte, ...).
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.
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
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?
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?
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.
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:
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.
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.
Cookies erleichtern die Bereitstellung unserer Dienste. Mit der Nutzung unserer Dienste erklärst du dich damit einverstanden, dass wir Cookies verwenden.