String Tokenizer with Oracle PL/SQL
This article describes how to tokenize a string, just with plain "out of the box" Oracle SQL. In the IT we often encounter requirements to split a string in parts. With Oracle PL/SQL we have a quite elegant solution for that. |
The solution is based on the ability of oracle to use regular expressions within a SQL statement. In the first example we have comma seperated string, containing the most important crew members of the USS Enterprise:
SELECT regexp_substr(str, '[^,]+', 1, LEVEL) AS splitted_element, LEVEL AS element_no FROM (SELECT rownum AS id, 'Kirk,Spock,Scotty,McCoy,Uhura' str FROM dual) CONNECT BY instr(str, ',', 1, LEVEL - 1) > 0 AND id = PRIOR id AND PRIOR dbms_random.value IS NOT null;
How to Java programming in Oracle Database
This article is about how Java programs can be developed directly in the Oracle database and in particular, it shows an example how to access the file system of the operating system. Since the Oracle version 8, it is possible to write Java code direct within the database. So it would be possible, to write stored procedures with Java instead of using PL/SQL. Nevertheless, the advantages of PL/SQL are the safe and stable processing of mass data, so there is no need to change to Java in this part. But if we have issues who are located outside of the database, we will reach the limits of PL/SQL very quickly. This is the point where Java starts, because the language itself is independent of the operating system and therefore it is predestined for tasks like this. In addition, we can rely on a vast range of finished Java solutions, who can than operate within the Oracle database. Maybe there are a few slightly modifications needed but in general it is not a big deal. However, a weak point of this is the actuality of Java! The version within the database is "lagging" behind the current versions. This is because that a stable Java version is the base of the development of a new database release. While this new release than is productive for years, there are no changes in the internal version of Java, whereas the Java world outside of the Oracle database has already seen significant developments. The result is, that a Oracle version 11.2, which is very common right now (the first release dates from 2007), has the Java Runtime version 1.5.0_10 (2005!) included. The entire source code of the directory list example you will find here! |
Stored Procedures with Java?
The most common language within the Oracle database is still PL/SQL. This is the prefered language to develop Stored Procedures, Packages or Triggers. In order to develop with Java, the Java sources must be uploaded into the database. From this, the classes are extracted and displayed in the Data Dictionary as a schema object. It allows Java sources (.java) and class files (.class) or archives (.jar, .zip) to be uploaded.
Oracle Goodies for XML and JSON
XML and JSON are perfect to manage and transfer structured data on the internet. But in a relational database like oracle the data is stored in tables who can be linked via joins. This article will show how to get a XML or JSON out of a SQL statement which contains a master-detail dependency. For easy use, I put all together in a PL/SQL Package which you will find at the end of the article and in the download area. |
Preparation
In our case study we have two tables to store persons and their phone numbers. Both tables are connected through a foreign key. See the following script for the definition of the tables:
create table ex01_person_tb ( id number, name varchar2(50) ); insert into ex01_person_tb values (1, 'Roger Waters'); insert into ex01_person_tb values (2, 'David Gilmour'); create table ex01_phone_tb ( id number, person_id number, phone_number varchar2(50) ); insert into ex01_phone_tb values (1, 1, '543 454433'); insert into ex01_phone_tb values (2, 1, '512 4776443'); insert into ex01_phone_tb values (3, 1, '521 6454423'); insert into ex01_phone_tb values (4, 2, '212 8332464'); insert into ex01_phone_tb values (5, 2, '312 6736423');
How to create an APEX Plugin
A perfect case study for the development of APEX Plugins is the integration of Google Maps into APEX. The Plugin we will develop here should not only show a part of a map, it should also provide the ability to place multiple markers on the map. The positions of the markers will be passed as a string which contains a JSON object. All the other information will come from settings of the Plugin itself. In the most cases, the GPS position we want to place on the map, came out of the database. Therefor we need a PL/SQL Function which converts this data into a JSON string. All the required functions are described in this article. To see a Demo of the Plugin, click here! |
Basics
Since version 4.0 it is possible to extend the functionality of APEX with the so-called "Plugins". The plugins are used in the APEX Application Builder like ordinary components (eg. items, buttons, forms, etc.). According to there use, Plugins are separated in the following types:
- Region Type Plugins
- Item Type Plugins
- Dynamic Action Plugins
- Process Type Plugins
Plugins are ideal tools to modularize and adapt APEX applications to individual needs. An APEX Plugin is characterized by the fact that all files and programs that are necessary for the plugin are managed together in one place. These are PL/SQL-Programs and/or JavaScript code as well as CSS and image files. This makes it possible to reuse a Plugin and so it is quite easy to install it in another APEX environment.
Joomla 3: Change the Order of Featured Articles
Sometimes, things which seems to be very simple, are in fact very complicated. One of those things are the custom ordering of Featured Articles in Joomla 3.3. It was quite tricky to figure out how it works but I found the key to solve the problem: |
Step 1:
Choose the Menu Item which contains the Featured Articles. In the "Layout" Tab there is an item called "Article Order". In the drop down list, select the entry "Featured Articles Order". This was the obvious part of the problem. Now, the tricky thing is, that there exists an item called "Category Order" which contains the value "Use Global". This setting controls the order of the Featured Articles as well. So to make sure, that the ordering of the Featured Articles is as you like, you have to switch it to "No Order". (Figure 1)
Ein Sommermärchen: Trondheim - Oslo 2014
Norwegen geht tatsächlich auch ohne Regen!
"Styrkeprøven" ist das norwegische Wort für Kraftprobe. Gleichzeitig ist es auch der Name für das legendäre und längste Radrennen Europas, welches über 543km und 3700 Höhenmetern von Trondheim nach Oslo führt und Langstreckenradsportler aus der ganzen Welt regelrecht elektrisiert. Dieses Rennen wurde dieses Jahr zum 48sten Mal ausgetragen.
Nachdem ich bereits 2013 unter widrigsten Bedingungen und bei mehr als 16 Stunden Dauerregen diese Kraftprobe bestanden habe (siehe Bericht vom letzten Jahr), entwickelte sich im Laufe des vergangenen Jahres eine gewisse Hassliebe gegen dieses Rennen. Einerseits hatte ich mächtigen Respekt davor, diese Strecke erneut im Regen und Wind zurücklegen zu müssen. Andererseits hätte es mich unglaublich geärgert, wenn dieses Jahr die Wetterbedingungen gut und ich Zuhause geblieben wäre. Deshalb habe ich mich im April dazu durchgerungen, das Rennen nochmals angehen zu wollen. Ein weiteres Argument was mich zur erneuten Teilnahme bewog war, dass mit Helmut Munz, dem ehemaligen deutschen Meister im 50km Gehen, ein erfahrener Recke auf der Langstrecke mit von der Partie war. Somit waren bereits einige wichtige logistische Fragen geklärt denn ich konnte mich zu 100% darauf verlassen, dass er - auch Dank seiner Mitarbeiterin Frau Pretzsch - die Reise und den Transport perfekt organisiert hatte.
Die Vorbereitung im Winter war in Ermangelung eines klaren Saisonziels nicht optimal. Von Dezember bis Februar habe ich erheblich „geschlampt“, bin wenige Kilometer gefahren und habe dementsprechend auch an Gewicht zugelegt. Den Frühling vor Augen, habe ich dann aber Anfang März wieder „die Kurve bekommen“ und begann mit einem konsequenten Trainingsplan. Die Grundlagen konnte ich über den Winter erhalten, nun musste ich das Training aber noch um einige Spitzen anreichern, um wieder in Form zu kommen. Hier haben mir die Hinweise von Stefan Holzinger (aus dem Vitargo Team) sowie das Studium der öffentlichen Trainingsprotokolle des frischgebackenen RAAM Team-Sieger Axel Fehlau sehr weitergeholfen. Positiv hat sich natürlich auch das gute und stabile Wetter des ganzen Frühjahrs ausgewirkt. Es gab keine ausgesproche Schlechtwetter Periode so dass ein kontinuierliches Verfolgen des Trainingsplanes möglich war.
Die Wasserschlacht am Dovrefjell: Trondheim - Oslo 2013
Styrkeproven - 540 km Nonstop mit dem Rennrad
Meine Trondheim - Oslo Geschichte beginnt mitten im Winter, an Weihnachten 2011. Völlig unerwartet bekomme ich von meiner Frau ein Flugticket nach Oslo mit dem Hinweis geschenkt, dass ich "das" nun endlich mal "machen" könnte. Bei dem "das" handelt es sich um das legendäre Langstreckenrennen "Styrkeproven" und unter "machen" versteht man hier üblicherweise 540 Kilometer Radfahren am Stück. Leider wusste das meine liebe Frau zu dem Zeitpunkt nicht denn sie dachte es ist halt irgend so ein Rennen welches irgendwo in Norwegen stattfindet. Dass "das" nun auch viele Trainingskilometer bedeuten würde, habe ich ihr dann im Verlauf des Abends in homöopatischen Dosen verabreicht. Unglücklicherweise habe ich mir zwei Monate vor dieser wunderbaren Bescherung eine Knieverletzung bei einem Fahrradunfall zugezogen, die sich als ziemlich hartnäckig erwies. Die die daraus resultierende Knie-OP fand im April statt und bis zuletzt hoffte ich rechtzeitig fit zu werden. Letztendlich war das zu optimistisch und so musste ich meine Teilnahme im Mai schweren Herzens absagen. Der Eingriff an sich war erfolgreich und ich konnte Anfang Juni wieder mit dem systematischen Rennradtraining beginnen. Eines war jedenfalls klar: Nächstes Jahr bin ich in Trondheim am Start!
Die Vorbereitung
Das neue 2013 Jahr war kaum ein paar Tage alt, war die Anmeldung für das Rennen schon erledigt. Dies war für mich die Motivation um in das Trainingsprogramm für den Radmarathon einzusteigen. Mein Trainingsplan sah vor, dass ich bis zum Frühlingsanfang ausschließlich Grundlageneinheiten im Umfang von 2-4 Stunden durchführen wollte. Ab März/April sollten dann mehrere längere Einheiten von 150-200km folgen und im Mai sollten es dann noch ein bis zwei 300km Touren sein. Den Plan bezüglich der Grundlagen konnte ich einhalten, das schlechte Wetter von März bis Mai hat meine Vorbereitung erheblich durcheinandergebracht. Die 100-150km Einheiten waren zwar auch bei relativ schlechter Witterung möglich, allerdings hat eine dieser Einheiten mir dann auch eine hartnäckige Bronchitis eingebracht. Die 200er Tour an den Bodensee konnte ich deshalb erst am letzten Aprilwochenende bei sehr mäßigem Wetter durchführen; die gepante 300er Runde sogar erst Anfang Juni, also nur zwei Wochen vor dem Rennen. Trotz des bescheidenen Wetters habe ich von Januar bis Mai ca. 4200 Trainingskilometer zurückgelegt.
Read more: Die Wasserschlacht am Dovrefjell: Trondheim - Oslo 2013