Posts

Trigger - wenn, dann nur für Kleinigkeiten

 Ich verwende Trigger äußerst sparsam, und wenn dann nur für Kleinigkeiten. Hauptanwendung: Sessen-Infos für manuell gepflegte Tabellen festhalten -> Wer hat manuell wann etwas erstellt oder geändert? Schaut für Tabelle L_RUN dann so aus: create or replace trigger L_RUN_INS    before insert    on L_RUN    for each row begin    :new.UPD_DATE := SYSDATE;    :new.UPD_AX_USR := SYS_CONTEXT ('APEX$SESSION', 'APP_USER');    :new.UPD_OS_USR := SYS_CONTEXT ('USERENV', 'os_user'); end L_RUN_INS; / create or replace trigger L_RUN_UPD    before update    on L_RUN    for each row begin    :new.UPD_DATE := SYSDATE;    :new.UPD_AX_USR := SYS_CONTEXT ('APEX$SESSION', 'APP_USER');    :new.UPD_OS_USR := SYS_CONTEXT ('USERENV', 'os_user'); end L_RUN_UPD; /

SQL Plan Directives and extended statistics

Sometimes you will find in the notes of an Explainplan this: Note ----- - dynamic statistics used: dynamic sampling (level=2) - statistics feedback used for this statement - 1 Sql Plan Directive used for this statement This means oracle is doing a little magic - explained in detail in the link below. To check where Plan Directives occur:   select TO_CHAR (d.directive_id) dir_id        , o.owner        , o.object_name        , o.subobject_name col_name        , o.object_type        , d.TYPE        , d.state        , d.reason        , D.CREATED        , D.ENABLED        , D.LAST_MODIFIED        , D.LAST_USED     --, D.NOTES, D.CREATED, ...

Joel Kallman, 1966-2021

Mit großer Bestürzung habe ich gerade erfahren, dass Joel Kallmann verstorben ist. Mir fehlen - ehrlich gesagt - die Worte.  Viele Andere habe Worte gefunden und Erinnerungen hier hinterlassen: https://apex.oracle.com/joel Mein herzliches Beileid gilt seiner Familie.  

APEX: Buttons mit Confirm-Message in Report einbauen

Markus Hohloch hat sehr gut beschrieben, wie ein Button vor dem Start einer Aktion eine Meldung bringt: Die Report-Spalte als Link deklarieren und den Target Type auf “URL” setzen. Die URL muss dann folgendermaßen aussehen: javascript:apex.confirm(htmldb_delete_message, { request:"DELETE_ROW", set:{"P1_DELETE_MY_ID":#MY_ID#} } );   In apex.confirm ist es auch möglich, mehrere Items zu setzen. Außerdem steht mit “showWait” eine weitere Set-Option zur Verfügung, die das übliche Lade-Symbol auf der abgedunkelten Seite anzeigt. Das bietet sich vor allem für länger laufende Prozesse an. javascript:apex.confirm("Wilde Berechnung starten? Das kann dauern!", { request:"INSANE_CALCULATION", set: {"P1_DEPTNO":10, "P1_EMPNO":5433}, showWait:true }); aus: http://markushohloch.de/buttons-mit-confirm-message-in-report-einbauen/  

APEX: APEX Component Settings for Switch

 Um einen Schalter als Schalter darzustellen, ist ggfs. unter Shared Components -> Component Settings das Layout umzustellen.   Quelle: http://www.grassroots-oracle.com/2020/02/apex-component-settings-for-switch.html  

ODI: Parameter für OdiStartScen

Auszug aus Doku:   Usage OdiStartScen -SCEN_NAME=<scenario> -SCEN_VERSION=<version> [-CONTEXT=<context>] [-ODI_USER=<odi user> -ODI_PASS=<odi password>] [-SESSION_NAME=<session_name>] [-LOG_LEVEL=<log_level>] [-AGENT_CODE=<logical_agent_name>] [-SYNC_MODE=<1|2>] [-KEYWORDS=<keywords>] [-<VARIABLE>=<value>]* Parameters Parameters Mandatory Description -SCEN_NAME=<scenario> Yes Name of the scenario to start. -SCEN_VERSION=<version> Yes Version of the scenario to start. If the version specified is -1, the last version of the scenario is executed. -CONTEXT=<context> No Code of the execution context. If this parameter is omitted, the scenario is executed in the execution context of the calling session. -ODI_USER=<odi user> No Oracle Data Integrator user to be used to run the scenario. The privileges of this user are used. If this para...

ODI: Parameter für OdiStartLoadPlan

aus der Doku: Usage OdiStartLoadPlan -LOAD_PLAN_NAME=<load_plan_name> [-LOG_LEVEL=<log_level>] [-CONTEXT=<context_code>] [-AGENT_URL=<agent_url>] [-AGENT_CODE=<logical_agent_code>] [-ODI_USER=<ODI User>] [-ODI_PASS=<ODI Password>] [-KEYWORDS=<Keywords>] [-<PROJECT_CODE>.<VARIABLE>=<var_value> ...] [-SYNC=<yes|no>] [-POLLINT=<msec>] Parameters Parameters Mandatory Description -LOAD_PLAN_NAME=<load_plan_name> Yes Name of the load plan to start. -LOG_LEVEL=<log_level> No Level of logging information to retain. All sessions with a defined log level lower than or equal to this value are kept in the session log when the session completes. However, if object execution ends abnormally, all tasks are kept, regardless of this setting. Note that log level 6 has the same behavior as log level 5, but with the addition of variable and sequence tracking. See Tracking Varia...