Skip to main content

OOW 2009 : Monday

Still suffering from the jet lag I woke up at 6 AM today. Due to all kinds of other 'obligations' I only attended one session today about "How to get 10x improvement of your PL/SQL Application performance time". And that one was all about TimesTen (a.k.a. IMDB - In Memory Database Cache). The session started with a small - alas pre-recorded - demo that indeed showed a 10x performance benefit. But before you all start to move all your applications to TimesTen, be aware that there are 'some' limitations:
- Not all standard PL/SQL packages are available in TimesTen
- You can't call PL/SQL from SQL
- You can't use triggers in TimesTen
- You can't join between tables in TimesTen and the 'real' database
So due to this limitations, you can't run all PL/SQL applications (like APEX!) in a TimesTen database. However it would be extremely cool if you could use TimesTen for APEX (imagine APEX running 10x faster!). So maybe somewhere in the future, but not with the current release.
Next a had a (long) lunch with 16 Logica attendees from all over the world, very well organized by my US colleagues.
After that, I headed to the demogrounds, to take a close look at APEX 4.0. Mark and Anthony where so kind to show me a (private) deep dive into the new features, like enhanced tabular forms (with field validations), Team Development (a sort of integrated packaged application for registering enhancements and bugs, assignments etc), Dynamic Actions and Plug-Ins. This all looks very promising and opens up a whole new set of functionality, that would require a lot of handcraft in the current version. APEX 4.0 is (still) planned for production somewhere in 2010 (I hope it will be in the first quarter!).
Next I went to a hotel where a bus picked me up for a ride to the HP Pavilion in San Jose to see my first ice hockey game: San Jose Sharks v.s Phoenix Coyotes. Very nice to see that sport live in an American ambiance! Thanks to my French colleagues for organizing this!
At the moment of writing this - Tuesday morning - it is very rainy and windy in San Francisco. Rather different from my previous visits at OOW, where the sun always shined... Time to get my umbrella!

Comments

Rutger said…
Hey Roel,

Apex 10 times faster? Is that even possible :P Nice to hear it is rainy over there, because the sun is shining in this part of the world... Too bad there's no Apex 4 demo ground though :) I expect a full report when you get back X)

Greets

Popular posts from this blog

Fix Interactive Report headers issue when using a Region Display Selector

When you have multiple Interactive Reports (IR) on your page and use a Region Display Selector to mimic tabs, you might notice some weird behaviour in the IR headings if you switch tabs. The headings are not positioned correctly and you get an extra empty row under the headings. It just looks weird and ugly. But if you resize your browser window, it all looks fine again (until you switch to another tab..) So can we fix this by creating a Dynamic Action that mimics that "browser window resize" event? Yes we can! Create a Dynamic Action that fires on Click of the jQuery selector li.apex-rds-item a . That should fire a JavaScript snippet :  apex.event.trigger(this.triggeringElement, "apexwindowresized"); So now a click on a tab not only switches from one IR to another but also fires that event that will "autofix" the IR headers. A simple solution for an annoying problem. This applies to APEX 5.0, I assume it will be solved in 5.1.

How to create neatly formatted Excel documents using PL/SQL?

If there is a requirement to produce output from an application into Excel, you would probably create a CSV (Comma Separated File) with the data and start Excel to show the data - at least that's what I did...until now. The drawback of this solution is that you could only produce data and no nice layout. But Excel is also capable of opening HTML-files and using this you could create Excel files with data and magnificent layout! Let me give an example: 1. Create a procedure to show the data in formatted in an HTML table. CREATE OR REPLACE PROCEDURE display_emp_list IS v_emp_count NUMBER(5); v_empno NUMBER(8); v_ename VARCHAR2(50); v_job emp.job%TYPE; v_sal emp.sal%TYPE; v_bg_color VARCHAR2(10) := ''; CURSOR c_emp IS SELECT empno, initcap(ename), job, sal FROM emp ORDER BY ename; BEGIN SELECT COUNT(*) INTO v_emp_count FROM emp; owa_util.mime_header('application/ms-excel', FALSE); htp.p('Content...

APEX ReadOnly Pages - The easy way

If your Oracle APEX Application requires different types of access - full access or readonly - for different types of users, you can specify a Read Only Condition on Page level (or Region, Item, Button, etc.).  You can set an Authorization Scheme on Application level, so it'll be applied to all pages. So if you have an Authorization Scheme named 'User Can Access Page' defined by a PL/SQL function like this: return apex_authorization.user_can_access_page ( p_app_id  => :APP_ID , p_page_id => :APP_PAGE_ID , p_user    => :APP_USER );  then you can code all the logic in the database using the APEX Repository, your own tables or a combination to define whether a user has access to that page or not. But alas it is not possible to define something similar Application wide for a Read Only condition. You can specify an Authorization Scheme 'User has Read Only Access' using a similar signature as the one above and use that on each and e...