Posts Tagged: Oracle


26
Apr 11

Unit Test für Object Types in SQLDeveloper

SqlDeveloper ist eine kostenlose IDE von Oracle für SQL und PL/SQL Entwicklung, sowie Verwaltung der Datenbank. Mitlerweile befindet es sich in der Version 3.0. Leider gibt es in der Version immer noch keine Unterstützung der Unittests für object types. Dies ist ein sehr wichtiges Feature, wer in Oracle objektorientiert programmiert und somit sehr oft Types verwendet.
Dieses Feature wurde bei Oracle angefordert und für Release 3.0 eingeplant, doch bis jetzt ist noch nichts passiert. Bitte Voted für das Feature, damit es auch realisiert wird und der Entwicklung.
Zum Feature request
wiki über SqlDeveloper
Download SqlDeveloper 3.0


1
Apr 11

PL/SQL Challenge vom 31.03.2011

Es war eine super Frage von Jeff Kemp in dem gestrigen PL/SQL Challenge. Die Frage war kurz und verständlich und zwar
was kommt raus?

DECLARE
   d1   DATE := TO_DATE ('09/2011', 'MM/YYYY');
   d2   DATE := TO_DATE ('10/2011', 'MM/YYYY');
   v1   VARCHAR2 (10);
   v2   VARCHAR2 (10);
BEGIN
   v1 := TO_CHAR (d1, 'Month');
   v2 := TO_CHAR (d2, 'Month');

   DBMS_OUTPUT.put_line (
      CASE
         WHEN v1 = 'Sep' AND v2 = 'Oct' THEN 'Short and Sweet'
         WHEN v1 = 'September' AND v2 = 'October' THEN 'Long and Sour'
         ELSE 'Not Short and Not Long'
      END);
EXCEPTION
   WHEN OTHERS
   THEN
      DBMS_OUTPUT.put_line ('Something else entirely');
END;

Auf den ersten Blick sieht der Code recht simpel aus, so dachten ich mit den Arbeitskollegen auch. Ohne das ganze auszuprobieren, wusste ich, dass TO_CHAR (d1, ‘Month’); den vollen Monatsnamen zurückgibt. So war die Variante mit ‘Short and Sweet’ ganz klar ausgeschlossen. Da wir aber eine deutsche Session benutzen, würden wir statt, October, Oktober zurückbekommen.
So habe ich mir überlegt, wenn der Autor nicht erwähnt hat, dass es explizit die englische Session sein müsste, wird ein rerank geben.
Mit Kollegen haben wir zuerst auch nur das Session Problem ausdiskutiert, und haben auf rerank gehoft.
Der Hacken war aber woanders, nämlich wird beim Format ‘month’ in der to_char Funktion, der String auf die Länge 9 gepadded im oberen Beispiel, und somit scheitert beim Vergleich von v2 = ‘October’, da v2 := ‘October ‘ und somit in dem ELSE Zweig landet.

Echt erstaunlich, was es für Kleinigkeiten in einer Sprache geben kann, die man nicht kennt, und evnt. später nicht beachtet.


30
Mar 11

Römische zahlen nur bis 3999 in Oracle

Warum gibt es in Oracle nur von 1-3999 ein Umwandlung von arabischen in römische Zahlen?

SELECT to_char(3999, 'RN') roemisch FROM dual;

Und ich frage mich auch, warum es nirgendwo eine römische 0(null) gibt, hatten die keine?


16
Mar 11

Bachelor Thesis…

Es geht los mit der Bacherlorarbeit. Schneller als erwartet! Der vorläufige Titel lautet: “Test von Geschäftslogikkomponenten in einer Oracle Datenbank”. Genauer gesagt, geht es um Komponententests in der Oracle Datenbank. Näheres kommt dann später….