Posts

Es werden Posts vom April, 2009 angezeigt.

OWB mit aktuellem JRE starten

Vorgehen, um den OWB unter Windows mit aktuellem JAVA zu starten: !!! Wichtig: keine Ahnung, ob das Supportet ist, daher alles ohne Gewähr!!! 1) Aktuelles JRE installieren 2) Im OWB-Home (Bsp: C:\Programme\owb1020\owb\bin\win32) - Sicherungskopien der Datei owbclient.bat erstellen - Sicherungskopien der Datei setowbenv.bat erstellen 3) in Datei setowbenv.bat zwei Zeilen ändern: - Zeile set JAVAPATH= (Bsp.: set JAVAPATH=C:\Programme\Java\jre6) - Zeile set JDK_HOME= (Bsp.: set JDK_HOME=C:\Programme\Java\jre6) - Rest belassen 4) in Datei owbclient.bat folgenden Eintrag ändern: - %JAVAPATH%\jre\bin\java auf ändern (Bsp.: %JAVAPATH%\bin\java) - Rest belassen 5) OWB-Start über owbclient.bat Hintergrund: Mit "seinem" JRE hat sich der OWB nach kurzer Zeit stark mit sich selbst beschäftigt: Bei jedem Maus-Klick - CPU-Auslastung von 100% und totale Blockade des Rechners. Mit dem aktuellen JRE ist das Verhalten bisher nicht aufgetreten.

SQL: isol. und kummulierte Werte ermitteln

Um in Reports isolierte und kummulierte Werte parallel anzuzeigen, läßt sich die analytische Funktion von Oracle nutzen: select QUARTAL, PK_ID, Anz_AKT, sum(Anz_AKT) over (partition by PK_ID, ceil(QUARTAL/10) order by QUARTAL) Anz_KUM from ( select F.PK_ID, F.QUARTAL, sum(F.ANZ_FAELLE) Anz_AKT from FACT_TBL F where F.PK_ID in ('123') group by F.QUARTAL, F.PK_ID, ); Der innere select liefert die je Quartal zusammengefassten Werte, die im äußeren select innerhalb des Jahres ( ceil(quartal/10) ) aufsummiert werden. Das Ergebnis ist z.B. folgende Liste: QUARTAL PK_ID ANZ_AKT ANZ_KUM 20021 6410220 9810 9810 20061 6410220 1719 1719 20062 6410220 3819 5538 20063 6410220 3827 9365 20064 6410220 4233 13598 20081 6410220 1168 1168 Innerhalb eines jeden Jahres werden die Werte aufsummiert. So können mit einer Abfrage elegant isol. und kum.

OWB, Outer Join und between

Heute aufgetreten: Der OWB hat Schwierigkeiten einen Outer Join mit einem between (Bsp. SCN2 oder ähnlich) sauber umzusetzen: Konkret wurden "tAc2 >= tBc2(+)" und "tAc2<= tBc3(+)" auseinander gerissen, wodurch die Logik verändert und das Ergebnis FALSCH(!) wurden. WICHTIG: KLAMMER setzen -> dann klappt' auch mit dem OWB! Bsp: where tAc1 = tBc1(+) and ( tAc2 between tBc2(+) and tBc3(+) ) oder where tAc1 = tBc1(+) and ( tAc2 >= tBc2(+) and tAc2<= tBc3(+) )

Abfrage von Partitionen

Per select * from Tbl_Name partition ( Name_der_Partition); Bsp.: select * from BASIS_VO partition (P20083); kann man direkt eine bestimmt Partition abfragen. Wichtig: Für Oracle ist "BASIS_VO partition (P20083)" der Tabellenname, d.h. der Alias muss DAHINTER : select * from BASIS_VO partition (P20083) A where A.HNR = 1234;