Posts

Checkbox / APEX Font in Report / Interactive Grid anzeigen - APEX 22.1

Html-Checkboxen sind in APEX ja eigentlich nur Anzeigeelemente. Da diese per se keine Aktionen ausführen (diese ist separat zu programmieren), bietet es sich an, statt dessen Elemente aus dem APEX Font zu nutzen. Am einfachsten sind sowas wie fa-check-square fa-square-o Diese und viele weitere Elemete können z.B. hier rausgesucht werden: https://apex.oracle.com/pls/apex/apex_pm/r/ut/icons Zum Einbinden in einen Report wird eine zusätzliche Spalte genutzt: select K_PARTITION_KEY ID    , 1 CHK    , ...    , case when K_PARTITION_KEY = :P1_PARTITION_KEY        then 'fa fa-check-square'        else 'fa fa-square-o'      end ICON Spalte CHK zeigt später die Checkboxen, Spalte ICON liefert den Namen des Icons aus dem APEX Font. Im Beispiel soll per Klick auf eine Checkbox die entsprechende Zeile markiert werden. (Alle...

DBMS_SCHEDULER und die Sommerzeit, DB-Job richtig timen

Bei der Weiterentwicklung eines Projektes ist aufgefallen, dass ein DB-Job 1 Stunde zu früh ausgeführt wird. Geplant für 06:20Uhr wird er bereits um 05:20Uhr ausgeführt: -- Ausführungshistorie select to_char(l.log_date,'dd.mm.yyyy hh24:mi:ss.ff TZR') "Log Date TZ" &nbsp &nbsp &nbsp &nbsp &nbsp , to_char(r.req_start_date,'dd.mm.yyyy hh24:mi:ss.ff TZR') "Required Start Date TZ" &nbsp &nbsp &nbsp &nbsp &nbsp , to_char(r.actual_start_date,'dd.mm.yyyy hh24:mi:ss.ff TZR') "Actual Start Date TZ" &nbsp &nbsp from ALL_SCHEDULER_JOB_LOG L, ALL_SCHEDULER_JOB_RUN_DETAILS R &nbsp where l.Owner = 'my' &nbsp &nbsp &nbsp and l.job_name = 'myJob' &nbsp &nbsp &nbsp and l.log_id = r.log_id (+) &nbsp order by 1 desc; liefert Log Date TZ Required Start Date TZ Actual Start Date TZ 31.12.2022 05:21 :06.062526 +01:00 31.12.2...

Umgang mit Triggern - To Trigger or not to Trigger

Ein interessanter Artikel von Jürgen Sieben im RedStack-Magazin 05-2022 S.24ff Fazit: Vermeidung von Triggern durch SQL Identity-Column GENERATED [ ALWAYS | BY DEFAULT [ ON NULL ] ] AS IDENTITY [ ( identity_options ) ] Für Dimensionen gern genommen: GENERATED BY DEFAULT ON NULL AS IDENTITY erzeugt eindeutige ID, erlaubt aber feste Singleton (-1 für nicht definiert) vorzugeben. oder default Klausel CREATE TABLE tst ( --> Es können Sequence-Werte genutzt werden. &nbsp&nbsp&nbsp&nbsp d_id NUMBER DEFAULT detail_seq.NEXTVAL, &nbsp&nbsp&nbsp&nbsp m_id NUMBER DEFAULT master_seq.CURRVAL, --> Es können Contexte genutzt werden. &nbsp&nbsp&nbsp&nbsp ax_usr varchar2(32 char) DEFAULT SYS_CONTEXT ('APEX$SESSION', 'APP_USER'), &nbsp&nbsp&nbsp&nbsp db_usr varchar2(32 char) DEFAULT S...

Statistiken entsperren / ORA-20005: object statistics are locked (stattype = ALL)

Aktueller Fall: Nach dem Import eines Schemas aus einer anderen Datenbank (per DataPump) waren alle Tabellen und Daten wie gewünscht vorhanden. Die Statistiken wurden vom alten System übernommen. Dies ist grundsätzlich auch sinnvoll, da die Daten ja unverändert übernommen wurden. Hier waren aber "frische" Statistiken gewünscht. Problem: Es wurden keine neuen Statistiken erstellt. Die Prüfung hat ergeben, dass die übernommenen Statistiken gelocked waren ( stattype_locked = 'All' ). Eine einfache Neuerstellung meldete: ORA-20005: object statistics are locked (stattype = ALL) . Nach dem Entsperren mit dbms_stats.unlock_schema_stats lief die Neuerstellung problemlos durch. Hier der Code dazu: -- Prüfen, ob Statistiken gelocked sind (= stattype_locked nicht leer) select table_name, stattype_locked from user_tab_statistics; -- Statistiken ggfs. entsperren exec dbms_stats.unlock_schema_stats('abc'); ...

How to Read an Execution Plan

Eine kurze Einführung von Chris Saxon zu Execution Plans: https://blogs.oracle.com/connect/post/how-to-read-an-execution-plan

Farbschemata entwickeln / anpassen

Eine tolle Webseite rund um Farbgebung findet sich hier: https://encycolorpedia.de/ Über https://encycolorpedia.de/html kann man direkt benannte html-Farben suchen. Die Liste ist sortierbar nach Farbton, Sättigung und Leichtigkeit. Durch anklicken der Farben bekommt man weitere Vorschläge zu Abstufungen und Komplementärfarben . Am Beispiel " lightyellow " sieht man, wieviel Zusatzinformationen hier geliefert werden.

APEX: Interactive Grid - Spaltengrupppen und einfärben

Zum individuellen Einfärben eines Interactive Grids (IG) bieten sich die Möglichkeiten von CSS an. Zum Färben eines konkreten IG bekommt dieses zur Identifikation eine Static_ID : Advanced / Static ID: Px_IG Sollen alle IGs identisch gefärbt werden, kann dieser Step entfallen. Im CSS sind mehreren Ebenen des IG zu behandeln: Header-Gruppe Header Spalten - allgemein Spalten - readonly Seiten-Ebene Die wesentlichen Definitionen werden auf Seiten-Ebene als Inline-CSS festgelegt: PageX (oberster Knoten) / CSS / Inline /* Spaltengruppen */ #P4_IG .a-GV-headerGroup[data-idx="1"] { background-color: khaki; } /* Edit-Modus: nichtänderbarer Text trotzdem in schwarz (= besser lesber) eigentlich: ALLE Zellen mit Textfarbe schwarz */ #P4_IG .a-GV-cell { color: black; } /* Farbschema-Gruppe 1 - zum Einfärben bestimmter Spalten */ #P4_IG .fs_grp1 { background-color: khaki; } /* Edit-Modus: Hintergrundfarbe für den änderbaren Text */ #P4_IG .fs_grp_edit {...