Bug im CSV-Export der Interactive Report Region
- Peter Raganitsch
- Kategorie: Oracle APEX, Tipps & Tricks | Tags: CSV, IRR
Gleichermassen beliebt bei Entwicklern und Anwendern, hat uns Oracle mit der Interactive Report Region ein sehr einfaches und sehr mächtiges Werkzeug in die Hand gegeben.

Der Benutzer kann sich anzuzeigende Spalten aussuchen, Sortieren, Summen bilden, CSV-Dateien exportieren und noch so einiges mehr.
Will man einen CSV-Export der angezeigten Daten sehen, so muss man zwei Dinge beachten:
- es werden maximal 65535 Zeilen exportiert
- Filter/Sortierungen auf nicht exportierte Spalten ziehen nicht
Beide Punkte sind dem Oracle Application Express Development Team als Bug gemeldet worden, idealerweise wird dazu auch das Oracle APEX-Forum verwendet, somit findet man alle Infos, Fragen und Fehlermeldungen zentral an einer Stelle gesammelt.

Gerade für Entwickler ist das Forum eine der wichtigsten Anlaufstellen für Fragen und für die Suche nach Antworten auf knifflige Probleme.
Nun zurück zu unserem CSV-Export:
CSV-Export ist beschränkt auf 65535 Zeilen
Frühere Version von Microsoft Excel waren auf eine maximale Zeilenanzahl von 65535 Zeilen begrenzt, seit der Version 2007 wurde dieses Limit auf 1 Mio. gehoben ( Quelle ).
APEX dürfte sich weiterhin an der 2^16 Grenze orientieren, denn egal wieviele Datensätze in ihrem Report enthalten sind, es werden maximal 65535 davon in die CSV-Datei geschrieben.

Filter/Sortierungen auf nicht exportierten Spalten werden ignoriert
Sie kennen diese Situation sicher: in der Interactive Report Region geben Sie dem Benutzer soviele Spalten wie möglich, damit sich dieser den Report nach Belieben gestalten kann.
In der CSV-Export-Datei benötigen sie allerdings nur ein paar bestimmte Werte, deswegen werden die nicht benötigten Spalten ausgeblendet.

Sortiert der Benutzer den Report in der Bildschirmansicht allerdings nach einer nicht zu exportierenden Spalte oder er setzt auf so einer Spalte ein Filterkriterium an, dann stimmt die Anzeige auf seinem Bildschirm nicht mit dem Inhalt der CSV-Datei überein, denn beim Export werden die Spalten (Dank der Condition) einfach ignoriert.


Im angezeigten Beispiel hat der Benutzer in der Spalte “Order Month” auf April eingeschränkt, in der exportierten Datei ist von dieser Einschränkung allerdings nichts zu sehen, da die Spalte “Order Month” im CSV-Export ausgenommen ist.
Conclusio
CSV-Export ist eine feine Sache, bisher mussten wir dafür einen eigenen Batchjob schreiben, nun ist mit ein paar Klicks ein Interactive Report zusammengestellt, der auch gleich CSV-Daten exportieren kann.
Allerdings muss man sich der Stolperfallen bewusst sein, dann sind ihre Benutzer auch sehr schnell glücklich und zufrieden.

