Coding


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?


9
Mar 11

RoR: Rake – Mysql2 Error

Habe mich wieder mal entschlossen mich mit Ruby on Rails auseinander zu setzen, und habe mir das Buch Ruby on Rails 3 besorgt.
Nach knapp einem Kapitel muss ich sagen, dass das Buch mir doch relativ gut gefällt. Es wird an einem praktischem Beispiel erklärt.

Beim erstellen von Datenbanken bin ich auf ein Problem gestossen, dass das

Rake db:create:all

nicht funktioniert, wenn man die database.yml laut Buchbeispiel zusammenstellt. Nach dem ich alle 3 Datenbanken expliziet konfiguriert haben

development:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  pool: 5
  username: root
  password:
  host: localhost
  database: shopping_list_development

test:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  pool: 5
  username: root
  password:
  host: localhost
  database: shopping_list_test

production:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  pool: 5
  username: root
  password:
  host: localhost
  database: shopping_list_production

ging es ohne Probleme weiter. Die Frage warum die bessere Variante nicht funktioniert, habe ich nicht rausgefunden.


1
Oct 10

PL/SQL Challenge von 01.10.2010

Ich hatte ja schon geschrieben, dass ich an dem PL/SQL Challenge. Und heute war wieder die Beginner Frage die uns allen, bzw. den meisten Sorgen bereitet hat. Die Frage war recht einfach, doch welche Antwort soll man den wählen.

Ich hatte die beiden unteren angekreuzt, da ich da nach 5 Minuten hinschauen kein Unterschied bemerkt habe. Doch es gibt ein Unterschied. Wenn man genauer hinschaut heißt es bei dem oberen CURSOR cur AS und bei dem unteren CURSOR cur IS.
AS ist natürlich schwachsinnig, aber so schnell kann man es nicht sehen, da kriegt man schon Augenkrebs:)
Aufjedenfall eine blöde Frage zum Monatsanfang.


17
Sep 10

PL/SQL Challenge Freitag 17 September 2010

Kennt Ihr schon das tägliche PL/SQL Challenge von Steve Feuerstein. Da ich schon seid knapp einem halben Jahr als Datenbankentwickler arbeite und wir Oracle einsetzen, programmieren wir auch in PL/SQL.

Zum Üben und damit der Arbeitstag nicht immer langweilig ist, nehmen wir an dem Challenge teil. Macht wirklich Spass!
Man bekommt Punkte, je nach dem wie schnell man geantwortet hat und was für ein Level der Frage es war(Bginner, Intermediate, Advanced). Die besten können auch Preise gewinnen, wie z.B. Amazon Gutschein oder Ebook.

Ich muss aber echt sagen, dass die Beginner fragen manchmal echt schwerer vorkommen als die Advanced… Aber vielleicht kommt es ja nur so vor:)

Heute war z.B folgende Beginner Frage:

PL/SQL Challenge 17092010

Wenn man schnell Punkte machen möchte, dann kann man bei dieser Frage wirklich einiges falsch machen:) Aufmerksamkeit war gefragt… Vieles Sieht richtig aus, aber es sieht eben nur so aus. Durch Ausschlussverfahren bin ich auf die Antwort 2 gekommen, die ist auch als einzige richtige Lösung.

In der ersten ist der Datentyp falsch, in der zweiten ist die Variable nicht deklariert, beides eigentlich leicht zu übersehen. Und  in der letzten Variante ist die Funktion, NEXTVAL,  nicht vorhanden in der Sprache.
Fast hätte ich die ersten 3 Angekreuzt :)


23
Apr 10

Ruby zum zweiten…

Ups… ist ja schon fast ein Monat her, wo ich versprochen habe etwas zu Ruby “Starter Kit” zu erzählen.
Nun Gut, ich fasse mich kurz. und los..


28
Mar 10

Ruby lernen..

Ich habe mir vorgenommen, meine Kenntnisse aus dem Studium wieder aufzufrischen und etwas vertieft Ruby zu lernen. Und später vielleicht auch in die Welt der Rails Entwickler einzusteigen. Als erste müßte ich aber die Grundkenntnisse auffrischen, da ich seid dem ersten Semester kein Ruby mehr programmiert habe(leider).
Ruby ist eine wunderschöne Sprache die auch für Anfänger, als erste Programmiersprache, geeignet ist.
Für alle die es auch gerne lernen möchten, werde ich am Ende des Beitrages eine kleine Liste mit Büchern, Blogs, Tutorials posten. Diese sind meiner Meinung nach sehr gut geeignet um mit Ruby zu starten. Also…


14
Feb 10

Habe ein Webservice BrowsInfo geschrieben.

Habe heute für mich ein Webservice mit Hilfe von PHP Klasse BrowsCap geschrieben. Folgende Informationen werden aus den Browser Einstellungen ausgelesen.

  • HTTP_USER_AGENT Header
  • Browser Version
  • Betriebssystem
  • Werden Frames unterstützt?
  • Werden Tabellen unterstützt?
  • Werden cookies unterstützt?
  • Wird Java applet unterstützt?
  • Wird Javascript unterstützt?
  • Wird CSS unterstützt?
  • CSS Version

Habe es für meine privaten Zwecke gecodet, wenn es aber jemand gerne nutzen möchte, so bitte.

Meine Tools und Tipps findet Ihr hier.


18
Jun 09

Programming Paradigms – Vorlesungen aus Stanford

27 Vorlseungen über die Programmiersprachen, wie C, C++, Scheme, Assembler, Python etc. von Prof. Jerry Cain vorgetragen, gibt es auf Youtube im offiziellem Stanford University Channel zu sehen.

Playlist Programming Paradigms


16
Jun 09

Überladene Methoden in Java. Was kommt raus?

Interesantes Beispiel zum Thema überladen der Methoden.

public class Test {
    public static void foo(int a, int b) {
        System.out.print("A");
    }
    public static void foo(int... args) {
        System.out.print("B");
    }
    public static void foo(Integer... args) {
        System.out.print("C");
    }
    public static void main(String[] args) {
        foo(0, 1);
        foo((int) 0, 1);
        foo((Integer) 0, 1);
    }
}