Wenn SQL Plus aber nun keine Lust hat, ja was mach ich dann?
Für ein Projekt, an dem ich am Rande beteiligt bin, müssen die SQL-Scripts für die Datenbank so geliefert werden, dass sich diese mit SQL Plus ausführen lassen.
Ich hatte den Part, ein paar materialisierte Sichten anzulegen, die mit ein paar Fenster-Funktionen arbeiten - liess sich leider nicht automatisieren.
Im SQL-Developer konnten diese ohne Probleme angelegt werden. Nur SQL Plus weigerte sich standhaft, das gleiche zu tun.
Was war die Ursache: Ich habe bei den Zeilen mit den Fensterfunktionen bewusst eine zusätzliche Leerzeile eingefügt, um so aus meiner subjektiven Sicht die Lesbarkeit zu verbessern.
Wie im folgenden Pseudo-Skript war das Ganze realisiert:
SQL für SQL Plus (Pseudo-SQL)
SELECT DISTINCT
Feld1,
Feld2,
Feld3,
Feld4,
Feld5,
COUNT( Feld7) OVER (PARTITION BY Feld1,
Feld2, Feld3, Feld4, Feld5, Feld6, Feld9)
Count_Feld7, -- comment
SUM( Feld10) OVER (PARTITION BY Feld1,
Feld2, Feld3, Feld4, Feld5, Feld6, Feld9 ORDER BY Feld9)
Sum_Feld10, -- comment
Feld9
FROM table ;
Was für mich und den SQL-Developer verwertbar war, erzeugte bei SQL Plus mit dem Aufruf @Dateiname.sql aber die Fehlermeldung:
SP2-0734: Unbekannter Befehl ab "Feld... " - restliche Zeile ignoriert.
Das Problem entstand durch die Leerzeilen, die eigentlich die Lesbarkeit verbessern sollten. Nach der Entfernung dieser Zeilen war auch SQL Plus gewillt, das Skript auszuführen.
Eigentlich schreiben wir das Jahr 2010, aber im Moment fühle ich mich gerade, dank Oracle, mind. 25 Jahre jünger.
- 0 Kommentar(e)


Mein Kommentar