Beginning Oracle Application Express 5 is OUT!

Doug Gault APEX, PERSONAL 10 Comments

After a few grueling months, late nights, long weekends and some cursing into my sleeve, it’s finally out.

Beginning Oracle Application Express 5 is the updated version of the book which not only includes an all new guided tour of the APEX 5 Page builder, but also takes you through developing an entire system from soup to nuts.

My thanks to all the people at A-Press for being patient while the initial versions of APEX 5 were still being released. (FYI – Writing a book against beta and early adopter versions isn’t the smartest decision!). Also thanks to my technical reviewer Warren Capps. Again he was an invaluable resource and caught things that I would not have thought about.

I hope that this book helps not only guide those new to Oracle APEX, but also helps some of those that want to get fast tracked on APEX 5.0.

The book can be found at the APRESS Site or on Amazon.



Comments 10

  1. Hey Doug, loaded tables and tried to run the app from you 5 book. I keep getting this error message when I try to run the app: (HELP):

    Technical Info (only visible for developers)
    is_internal_error: true
    apex_error_code: APEX.REGION.UNHANDLED_ERROR
    ora_sqlcode: -1422
    ora_sqlerrm: ORA-01422: exact fetch returns more than requested number of rows
    component.type: APEX_APPLICATION_PAGES 107713000000001 Home
    ORA-06512: at "WAYNER.GET_STATUS", line 7
    ORA-06512: at line 3
    ORA-06512: at "SYS.DBMS_SYS_SQL", line 2107
    ORA-06512: at "SYS.WWV_DBMS_SQL", line 1033
    ORA-06512: at "APEX_050000.WWV_FLOW_DISP_PAGE_PLUGS", line 988
    begin DECLARE
    l_count NUMBER;
    l_status_id NUMBER := get_status('OPEN');
    IF :APP_USER != 'nobody' THEN
    SELECT count(*)
    INTO l_count
    FROM tickets
    WHERE assigned_to = :APP_USER
    AND status_id = l_status_id;

    htp.p('Welcome to the APEX Issue Tracking System, '
    || :APP_USER || ''
    || 'You have ' || l_count || ' Open tickets.
    || 'Select an option from the list');

    htp.p('Welcome to the APEX Issue Tracking System'
    || 'Select an option from the list');
    END IF;


  2. Wayne,

    From the error messages it looks like the data may have been loaded incorrectly. It LOOKS like the culprit might be the statuses ticket_statuses table. It should have 3 rows in it and there should be no duplication. OPEN, PENDING and CLOSED.

    Check that to make sure the correct number of rows is present.


  3. Somehow i can't leave a comment here, comes out with an error, so trying again and hope it doesn't end up duplicate.

    Are the examples of your book still valid for APEX 5.1?

    I am trying it now and getting 2 errors on chapter 6.
    1) page 201 – cannot convert BLOB to varchar2.
    2) Contact Us page – is_internal_error: false
    ora_sqlcode: -6550
    ora_sqlerrm: ORA-06550: line 1, column 7: PLS-00306: wrong number or types of arguments in call to 'CONTACT_US' ORA-06550: line 1, column 7: PL/SQL: Statement ignored

    Page 201 eorr details:

    Data type BLOB can not be converted to VARCHAR2!

    Contact your application administrator.
    Technical Info (only visible for developers)

    is_internal_error: true
    component.type: APEX_APPLICATION_PAGE_REGIONS 5483360122726869 Manage Tickets

    —– PL/SQL Call Stack —–
    object line object
    handle number name
    2FB8DAF8 935 package body APEX_050100.WWV_FLOW_ERROR
    2FB8DAF8 1003 package body APEX_050100.WWV_FLOW_ERROR
    2FB8DAF8 1395 package body APEX_050100.WWV_FLOW_ERROR
    2FA84E80 1105 package body APEX_050100.WWV_FLOW_PLUGIN_UTIL
    2D795988 3437 package body APEX_050100.WWV_FLOW_INTERACTIVE_GRID
    2D795988 3867 package body APEX_050100.WWV_FLOW_INTERACTIVE_GRID
    2D795988 5409 package body APEX_050100.WWV_FLOW_INTERACTIVE_GRID
    2D795988 5744 package body APEX_050100.WWV_FLOW_INTERACTIVE_GRID
    2FA88464 2923 package body APEX_050100.WWV_FLOW_REGION_NATIVE
    31238C00 2041 package body APEX_050100.WWV_FLOW_PLUGIN
    2FA9EC54 1396 package body APEX_050100.WWV_FLOW_DISP_PAGE_PLUGS
    2FA9EC54 1875 package body APEX_050100.WWV_FLOW_DISP_PAGE_PLUGS
    2FA9EC54 982 package body APEX_050100.WWV_FLOW_DISP_PAGE_PLUGS
    2FBF73B8 2393 package body APEX_050100.WWV_FLOW_PAGE
    2FBF73B8 2620 package body APEX_050100.WWV_FLOW_PAGE
    3126C8EC 4922 package body APEX_050100.WWV_FLOW
    31058F4C 173 procedure APEX_050100.F
    3116ACF4 30 anonymous block

    Thanks in advance,

  4. Mobile Zone:

    First, let me say that APEX 5.1 has changed MOST of the wizards. They've done a lot of work to try to make the wizard steps more straight forward but that has changed the order in many of them.

    Overall the ideas of what is in the 5.0 book should work, but you can't just "Follow the bouncing ball" like you could with 5.0.

    WRT your error. Can you let me know which step in Chapter 6 you were on? (Page number in the book and step?)

    The page numbers you're referencing aren't matching what's in the book. While that isn't necessarily a problem in itself, It's difficult for me to know what step you're on .


  5. Sorry the page numbers i was referring to was the application pages. The details about my steps are below.

    I completed chapter 6 example: "Master – Detail Report and Form" on page # 127. Where you created 3 application pages 200, 210 and 220. My wizard did not create Detail page 2 – 220. I understand the wizard has changed, so i just went ahead without creating page 220.

    Page # 135, I saved all the changes except 2 that i couldn't find it or didn't work is listed below.

    At this point, when i "RUN", page 200 works and on clicking to see the detail page 210, it throws that BLOB error.

    (a. CSS-Style: font size – can't find that option, b. move status column after column Ticket_ID – it moves only in edit mode but does not change on the application page after i run it).

    I tried to retrace my steps as much as i could remember.

    Thanks and appreciate your time,

  6. Alright.. Now that I know where things are going wrong, I can give you an explanation:

    The new Master Detail wizards have changed such that they now create an interactive grid instead of a detail report and a separate (third) page on which to edit the details. Interactive Grids don't seem to support file upload for individual records of the grid, and it is because of that fact you are getting the error.

    In my view you have two choices:

    1. Remove the BLOB column from the Interactive Grid and replace it with some sort of link of button that would call a Modal dailog that would allow you to upload an attachment.

    2. Revert the Interactive Grid to a Classic Report. Then you would have to create the Details Form (Page 220) separately (you can use a wizard for this) and then manually link the details report on 210 to the edit form on 220.

    Suffice to say that there is no "easy way" to get past this without having some knowledge already under your belt. It looks like enough has changed in the Master Detail wizard that the exercises in the book aren't really going to work without some serious massaging.

    That's the challenge we face as authors when writing about a rapidly growing and morphing development platform – Your work is far to quickly rendered out of date.


  7. Thank you so much for your quick reply.

    Yes, i do agree with you about the challenges created by the fast changing platforms. Since i am currently just learning APEX, i think it makes more sense for me to go back to APEX 5.0 and follow your book and get to a level where i can make those changes suggestd by you.

    Thanks once again for your time,

  8. Hi Doug,

    I have created a form on a procedure as it mentioned at page 122. After running the App I tried to send an email, I got the success message but I'm not receiving an email on my Gmail account.
    (I have modified your stored procedure and already put my email)


  9. Mohamed,

    It is possible that the server you're working on isn't set up to forward emails, or that there may be come type of ACL problem.

    Without having access to your serve, I can't really help troubleshoot as there are so many things that play into this.

    Sorry I can't be of more help.

Leave a Reply