Oracle Application Express (APEX) Interview Questions
June 20, 2010
Posted by on
Oracle Application Express (APEX) is a rapid application development tool developed by Oracle for developing rich database centric applications. It first started as HTMLDB and later renamed as Application Express, though it is often shorten as APEX. APEX is a free feature that can be enabled from Oracle database v 9.2 onwards. It means, Oracle Application Express can be installed with the free version of Oracle 10g Express Edition. It is easy to create and run web applications which look professional and scalable. Of recent there is increased interest on APEX skills.
I had an opportunity to interview few people for evaluating their APEX skills. Following is the selected set of questions I used in that interview. The difficulty level is basic to intermediate level. The main idea is to identify the promising people who had real experience on APEX. I have added links to the concepts, documentation.
Following is the list of necessary, desirable skills for APEX developer position.
- Experience on PL/SQL, SQL.
- Experience with Oracle HTTP Server / Oracle Application Server / Oracle XDB.
- Experience with Oracle HTMLDB, Oracle HTML Web toolkit.
- Experience on packages, procedures, functions, views and triggers.
Basic APEX Skills
Now, the interviewer could be asking questions on specific skills related to Application Express.
- What are versions of APEX you have worked with?
- What kind of applications you have created?
- When to go for APEX?
- When not to go for APEX?
- Name few Oracle APEX applications you know.
- How will you know APEX is installed? Where does it in installs in DB? (FLOWUSER_0320)
- What are features on Oracle APEX application builder?
- Explain the URL structure of an application.
- How will you debug an application? (Debug flag)
- How will you make changes to application in Oracle SQL Developer?
- What are the other options for web application development.
What is the building blocks / components or APEX applications? (Pages, Items, Regions, Validations, Computations, Shared Components, Lists, Theme, Authentication and Authorization). The interviewer might be interested in knowing how much a developer knows about each of these components. After all, the APEX interview evaluation will be mostly about these.
Interview Questions on Page Rendering
Now the questions on fine processing of pages
Interview Questions on Page Processing
- Where / How will you add Logo / pictures? How will you control them?
- Notification message, Success message regions?
- Where will you add logout or custom links?
- How will you pass value of one item from one page to another?
- How will you code dynamic PL/SQL regions (HTP.P code)?
- What are different caching methods available? (Page, for item, for user session, for application)
- How can you clear caches programmaticaly? (APEX_UTIL.CLEAR_APP_CACHE, APEX_UTIL.CLEAR_PAGE_CACHE, APEX_UTIL.CLEAR_USER_CACHE)
Interview Questions on Application Processes
List of Values
- What are available options to develop list of values? (Static, Dynamic).
- How will you use lists which can be shared across applications?
- How will you create tree list?
- How will you show default value for an item?
- How are items named and referenced?
- How will you process multiple items or array of items?
- Why / How will you use PL/SQL dynamic content?
- How will you add validations to an item?
Interview Questions on Reports, Forms & Charts
- What are the various reports possible? (SQL/Interactive)
- How will you use RTF / PDF report options?
- How will you create parameterized reports?
- How will you create editable column link? or “Link Column”.
- How can you use filter options?
- How will you add CHECK BOX option as a column in report? (APEX_ITEM.CHECKBOX)
- How can you integrate other reporting options?
- What are the different kind of forms available?
- What are the various charts available?
Interview Questions on Shared Components
- How will you configure objects that are dependent on environment?
- How will you enable end users customization (Customization for regions)?
- How will you deploy application? (as SQL files)
- Import / Export options.
- How will you disable developer toolbar?
Interview Questions on Continuous Development
- How will you make continuous changes to applications?
- How will you deploy changes in single page / item?
- What is the use of authorization?
- What are the other ways of authorization?
- Where can you apply authorization? Custom defined authorization?
Interview Questions on Security
- What are the security options available for APEX applications?
- How will you disable SQL injections?
- How will you use check sums? APEX_ITEM.MD5_CHECKSUM. Check sums in URLs.
- How will you ensure strong password? APEX_UTIL.STRONG_PASSWORD_VALIDATION
- How will you find how many users clicked a HREF? APEX_UTIL.COUNT_CLICK. APEX_WORKSPACE_CLICKS View has the report.
Interview Questions on Sessions
- How will you find the application session state? Within SQL (APP_SESSION)?
- What are the ways to get the session values? (&SESSION., :APP_SESSION, v(‘SESSION’) or nv())
- Session is synchronous or asynchronous? Asynchronous
- Does not use dedicated database connections are made and maintained?
- How will you validate whether the session is valid? APEX_CUSTOM_AUTH.IS_SESSION_VALID
- How will you submit jobs / back ground processes in Oracle APEX? APEX_PLSQL_JOB.SUBMIT_PROCESS
- What is optimistic / pessimistic locking?
- What is stateless transaction?
- How will you login into APEX admin module? (Internal workspace)
- Differentiate Application Admin and Workspace Admin.
- Who are the users and their privileges?
- Name few important APEX functions? (APEX_UTIL, APEX_MAIL, APEX_ITEM, APEX_CUSTOM_AUTH, APEX_LDAP)
- How can you setup application wide notifications? Login notification?
- What is needed to configure OBIEE for report integration.
Interview Questions on Metadata
- How is APEX Application components stored inside DB?
- What is Oracle Application Express Engine? (session state management, auth & authori, page flow, validations processing, page rendering and processing)
- How will you find the logged in user? APP_USER.