Oracle Application Express

From Wikipedia, the free encyclopedia
Jump to: navigation, search
Oracle Application Express
Oracle Corporation Logo
Developer(s) Oracle Corporation
Stable release 4.2.5 / April 9, 2014 (2014-04-09)
Operating system Linux and Windows
Type Oracle database development environment
License Oracle Technical Network License (Proprietary)

Oracle Application Express (Oracle APEX, previously named Oracle HTML DB) is a software development environment running inside the Oracle database. Oracle Application Express is a no-cost option of all Oracle Database editions, from Express Edition (XE) to Enterprise Edition (EE). Starting from Oracle 11g, Oracle APEX is installed by default as part of the core database install.

APEX can be used to quickly build complex web applications. The APEX development environment is itself browser-based.


Oracle Application Express can be installed in an Oracle 9.2 or higher database, and starting from Oracle 11g it will be preinstalled along with the database. APEX 4.0 and higher can be installed on an Oracle or higher database.

Product Name Version Released Notes
HTML DB 1.5 2004 First release [1]
HTML DB 1.6 2004 Added themes [1]
HTML DB 2.0 2005 Added SQL Workshop [1]
Application Express 2.1 January 2006 HTMLDB was renamed to APEX. Version 2.1 of APEX was bundled with the free Oracle Express Edition (XE) database.
Application Express 2.2 2006 Packaged Applications [1]
Application Express 3.0 2007 This version featured several new features, including PDF Printing, Flash charting and Access Application Migration [1]
Application Express 3.0.1 July 2007 This version could also be installed into an Oracle XE database.
Application Express 3.1 Spring 2008 This included a new major feature known as Interactive Reporting (enabled end-users to customize a report without programmer intervention, using techniques such as filtering, sorting, group-by, choosing displayed columns, etc. The user can even save multiple versions of their customized reports. The programmer can limit which features are enabled). Also added support for BLOB data type [1]
Application Express 3.2 2009 Forms conversion [1]
Application Express 4.0 June 2010 Some notable features are declarative Dynamic Actions (which allow reacting to changes on a page without the developer having to write custom Javascript) and Plugins (which allow developers to create custom components such as items, regions and processes, that can be re-used across pages and applications). Also added Websheets and RESTful Web[1]
Application Express 4.1 August 2011 Notable new features included improved (customized) error handling, use of ROWID for updates, a data upload feature for end-users, and improved WebSheets (a hybrid of a spreadsheet and a Wiki, built using Apex itself).
Application Express 4.1.1 February 2012 Notable new features included new theme (cloudy) and various templates.
Application Express 4.2 October 2012 Notable new features such as application builder for mobile, mobile and responsive themes, and HTML5 support.
Application Express 4.2.1 December 2012 Bug Fixes.
Application Express 4.2.2 April 2013 Bug Fixes, Improved PDF printing, new Survey Builder packaged application
Application Express 4.2.3 September 2013 This is a cumulative patch set for Application Express 4.2.0, Application Express 4.2.1, and Application Express 4.2.2
Application Express 4.2.4 December 2013 This is a cumulative patch set for Application Express 4.2.0, Application Express 4.2.1, Application Express 4.2.2 and Application Express 4.2.3
Application Express 4.2.5 April 2014 This is a cumulative patch set for Application Express 4.2.0, Application Express 4.2.1, Application Express 4.2.2, Application Express 4.2.3 and Application Express 4.2.4


Historically speaking, Application Express has gone through many name changes since its inception in 2000. A reasonably complete history of the names includes:

  • Flows
  • Oracle Platform
  • Project Marvel
  • Application Express (APEX)

One popular misconception is that Application Express is merely a new version of Web DB. Mike Hichwa created Web DB, a successful web front-end for Oracle,[2] but the development of Web DB started to move in a direction that diverged from Mike's vision. When tasked with building an internal web calendar, Mike enlisted the help of Joel Kallman and started "Flows". They co-developed the Web Calendar and Flows, adding features to Flows as they needed them to develop the calendar. In the earliest days of Flows, there was no front-end for it, so all changes to an application were made in SQL*Plus via inserts, updates and deletes. In some ways APEX is an evolution of Web DB, but it was developed with new code and no upgrade path.

A popular application developed in Application Express is the AskTom application developed by Thomas Kyte. Oracle's Metalink support site had been running on APEX, but was eventually replaced by an Oracle ADF version.[3] Oracle's online store also runs on APEX.


  • As an application framework, it can be difficult to customize an application outside of a set of expectations about how an APEX application is supposed to operate. However, given that pages are built from customizable templates, anything that is possible to achieve with HTML, CSS and Javascript is also theoretically possible to achieve with APEX, although it requires more work than using the built-in templates.


  • DBAs familiar with PL/SQL can use their skill set to develop web applications
  • Easy to create mock-ups using pre-built themes
  • Easy to deploy (end user opens a URL to access an APEX application)
  • Scalable (can be deployed to laptops, stand-alone servers, or Oracle RAC installations)
  • Server-side processing and validations
  • Strong and supportive user community (especially Oracle APEX forum)
  • Basic support for group development
  • Free hosting of demo applications provided by Oracle
  • Apex applications can run on the free Oracle Express Edition (XE) database
  • Individual components of an application can be retrieved or identified using SQL, facilitating customized reports
  • Easily adheres to the SQA development/test/production model (while not exposing DB passwords)
  • Helps put the focus on the DB model supporting a solution (verses coding in Java, .NET or PHP - you only need JavaScript)
  • Easily supports a standardized theme across application sets (and the changing of that theme)
  • Semi-technical end users can build their own web pages and reports


  • Large installation size. The unzipped installation files for Apex 4.1 that includes 9 different languages for the "Application Builder" interface is 747 megabytes. The English-only version is 147 megabytes. Apex is installed on the database server; developers and users only need a web browser to build and use applications.
  • Primary keys can be at most two separate fields. However since version 4.1 Application Express supports the use of ROWID for updates, inserts and deletes as an alternative to specifying primary keys. Prior to version 4.1 APEX assumed by default that all tables would use generated keys such as from sequences or triggers, therefore, if a table had more than two key columns then the default DML processes could not be used.
  • Pages in APEX can display at most 200 items and forms cannot handle more than 200 database items. Compare this to the Oracle Database where tables can have up to 1000 columns. Pages must be designed to work around this limitation, for example by using multiple pages, tabular forms, or Ajax for on-demand updates.
  • APEX applications are created using Oracle's own tools and only can be hosted in an Oracle database, making an implementer susceptible to vendor lock-in.
  • Very few webhosts offer APEX (Oracle Database) on their hosting service package (most of them offer PHP + MySQL or ASP + Microsoft SQL Server). As a result, APEX applications are limited in their choice of webhosts.
  • Projects requiring multiple developers to touch the same web page will need to communicate their intentions with each other. There is no built in version control and all components must be edited through the web interface. Page locking can help guard against physical dependencies.

APEX Security[edit]

There is a common misconception that the abstracted nature of APEX applications results in a relatively secure user environment. However, APEX applications suffer from the same classes of application security flaws as other web applications based on more direct technologies such as PHP, and Java.

The main classes of vulnerability that affect APEX applications are: SQL injection, Cross-site scripting (XSS), and Access Control.

APEX applications inherently use PL/SQL constructs as the base server-side language. As well as accessing data via PL/SQL blocks, an APEX application will use PL/SQL to implement authorization, and to conditionally display web page elements. This means that generally APEX applications suffer from SQL injection when these PL/SQL blocks do not correctly validate and handle malicious user input. Oracle implemented a special variable type for APEX called Substitution Variables (with a syntax of &NAME.) and these are not safe and lead to SQL Injection. Where the injection occurs within a PL/SQL block an attacker can inject an arbitrary number of queries or statements to execute. Escaping special characters and using bind variables is the right way to code to ensure no XSS and SQL injection.

Cross-Site Scripting vulnerabilities arise in APEX applications just like other web application languages. Oracle provide the htf.escape_sc() function to escape user data that is displayed within a rendered HTML response. The reports that APEX generates also provide protection against XSS through the Display As setting on report columns. Originally the default was for reports to be created without any escaping of the columns, although recent versions now set the column type to escape by default. Column definitions can be queried programmatically to check for columns that do not escape the value.

To control access to resources within an APEX application a developer can assign authorization schemes to resources (such as pages and items). These must be applied consistently in order to ensure that resources are appropriately protected. A typical example of inconsistent access-control being applied is where an authorization scheme is set for a Button item, but not the associated Process that is performed when the button is clicked. A malicious user can perform the process (through JavaScript) without requiring the actual Button to be accessible.

Since APEX 4.0, the Application Builder interface provides some limited assessment of the security posture through the Advisor utility.

Same in Above Details.

Using Oracle Application Express (Apex) with Oracle Database Express Edition (XE)[edit]

Oracle Application Express can be run inside Oracle Database Express Edition (XE), a free entry-level database. If Oracle Apex is running inside Oracle Database Express Edition the functionality of Apex itself is not limited, but limits in the database engine may prevent what can be used in Apex. Also, Oracle XE has limits for CPU, memory and disk usage. (.[4]

See also[edit]


  1. ^ a b c d e f g h "APEX Overview". Oracle Corporation. Retrieved 16 September 2012. 
  2. ^ "Michael Hichwa". Apress. "Michael Hichwa is the original developer and architect of Oracle Application Express (APEX), aka HTML DB. Michael created APEX as a 100% rewrite of an earlier browser-based application development tool he also created, called Oracle WebDB. He had invaluable technical assistance and guidance from Tom Kyte and the addition of Joel Kallman as a co-developer. Michael and Joel have led APEX developments efforts since 1999" 
  3. ^ Introducing My Oracle Support
  4. ^ "Limitations of the Express Edition". Oracle Corporation. Retrieved 22 May 2013. 


External links[edit]