Managing change around Oracle APEX
Universal Theme (UT)
Scott Wesley
AUSOUG Connect Summit 2024 Perth
Caution: “Humour” ahead
@swesley_perth
www.linkedin.com/in/scottwesley
grassroots-oracle.com
scott.wesley@akkodisgroup.com
2014
(teenies)
2008
2024
Started my Oracle career in Forms & Reports
Recognised as Oracle ACE
Today we all meet in this room
Started learning Oracle APEX
Migrating business workflows from Forms / Excel to Oracle APEX
2000
Career Timeline
(Abridged)
Not to scale
Agenda
No Connor-esque 500 slides today
Spot the Difference!
Demo…
…
(Beverages)
Spot the Difference
Screenshot comparisons �between 20.2 and 23.2
Pretend you’re playing “find the missing semicolon”l
Functional Behaviour
Can’t be screenshotted
Stuff I can’t write off as “embrace the change”
Any other upgrade considerations?
(Unrelated to UT)
Let’s not dig half a hole
Yes
Do we have time?
FOS (DA)
UC (client validation, nested reports)
Alertify
Clockpicker
Plugins
No issues
Improved Dev Builder experience
Native lazy loading
DA labelling
Native alert/confirm dialogs
CLOB session state type
Admin package
Export as JSON
API Process type
Application Working Copies
Image upload (crop/resize)
New items for LOVs
Select Support (single/multi-row)
Create PDF from Word
Server side geocoding
Dev Happiness Ratio
Increased
Custom code looking for unsaved changes in page modals
APEX Behaviours
Modals
Sql expansion (dbms_utility.expand_sql_text)
SQL Macros
pragma udf;
utl_call_stack
l_owner_table varchar2(2*ora_max_name_len+1);
Constructor support
l_rec := my_rec(c1=>10, c2=>sysdate, c4=>true);
l_array := my_array(1=>123, 5=>456, 6=>789);
Dbms_scheduler -> external scripts
PL/SQL Stuff
PDBs
Cloning
Total recall
List partitioning
DBSAT – Security
Create user schema_owner no_authentication
alter system kill cancel sql '123,456@1';
dbms_sqlq.create_quarantine_by_sql_id(sql_id => 'dcrqdagwxagth');
alter system set max_idle_blocker_time = 60;
Password rollover
DBA Stuff
col_a number default seq.nextval
col_b int default on null 1
with function fn_work(..) select...
Select .. fetch first 5 rows only;
Listagg distinct overflow truncate
LATERAL joins
to_number|date(lc_string default null on conversion error)
create sequence sess_seq session;
dba_index_usage
JSON JSON JSON
DB Improvements
SQL Stuff
Other Topics Considered
Talk to me about your �Forms APEX Projects
Thank�you
Slide 26 © Akkodis
CONFIDENTIAL
Title