Getting Started with Oracle Apex
It is always a good idea to understand the architecture of the technology your are using or planning on using. It is important for various reasons:
- You will know what technical skills you will need to develop
your Apex Applications, - You will know what type of operational support skills you will need to support
your hardware and software (Infrastructure), - How to make your Application scalable and highly available,
- How to make sure data gets backed up (Don't forget restore)
- I'm sure there is more reasons. Let us know if can think of some good reasons.
In the following sections we will try to give you some guidance on getting start with Oracle Apex.
Apex History
The Oracle Application Express product was renamed from HTMLDB. This has caused a lot of confusion and on the odd occasion still do!
So if you encounter the Oracle HTMLDB product then know it is an old version of Oracle Apex. Note that the HTMLDB versions are not supported anymore by Oracle.
What is Oracle Apex ?
In a nutshell, Apex is a web development and run time tool that is hosted inside the Oracle Database. It allows you to quickly develop and run web applications and is targeted at small to medium applications. Saying that, I've witnessed some large, enterprise level applications being build. The product targets the area of Excel spreadsheets and MS Access databases. The advantage Apex has is that it runs inside the Oracle database and data is easy to share and more secure. You can even have your own custom authentication models.
For a more detailed description go to "What is Apex".
Strengths and Weaknesses of Apex
| Strengths |
|---|
| The Oracle Database is very scalable and are able to handle large current user count. |
| Wizard driver application development for forms, reports and charts. |
| Security is completely customizable. Each page,button or form item can have a conditional display. |
| Inbuilt session management. |
| Easy page preview and debugging. |
| Fully supported Oracle product and free with any version of the Oracle Database. The Oracle database must be licensed. |
| All data and code are backed up with the Oracle Database Backup. |
| Development and Run time is all browser based. |
| Easy to change the look and feel of applications. |
| Weaknesses |
|---|
| Skills required to manage the Oracle Database performance and continuity(Backup &Restore) |
| More advanced applications require specialized SQL and PL/SQL programming skills. |
| Restoring only certain table or Apex pages is very difficult to do as the Oracle Database needs to always be in a consistent transactional state. There is the table flashback options if there are sufficient number of flashback logs. |
| No east Apex application and/or page versioning. |
| No easy option to migrate applications through the lifecycle of application development. |
If you any strengths and/or weaknesses that you would like us to add then send it to us
at and we will validate and add them.
What does Oracle Apex Architecture Look Like ?
There are current two Web Server possibilities:
- Apache web server with the Oracle mod_plsql module. The mod_plsql module allows the Apache server to connect to the Oracle Database and call a PL/SQL code module. See Figure 1 below,
- The PL/SQL embedded gateway. With this option the Database listener get configured to listener for normal database connections and also HTTP connections.

Figure 1: Apache Web Server with mod_plsql.

Figure 2: PL/SQL Gateway
One other concept that is normally difficult to understand is that of workspace, Apex users and database user/schema.
Basically the workspace and apex users are Apex product concepts. That is the Oracle database does not know anything about what an Apex user is. The link is that an Apex workspace is linked to a database schema. Apex users are defined and limited to the Apex workspace it was defined in.
To get to your data you can use two methods. The first is to connect to your Apex Development workspace that is pointing to your data schema. The second is to use a client/server tool (SQLDeveloper) to connect directly to your data schema.
The following diagram tries to show this as this can be a difficult concept to understand, but an important one.

Figure 2: Apex Connections
For more detail on this Apex concept go the content section of this site.
What Skills are Needed ?
For basic development you will only need to know the Oracle Apex Product. As with all development applications there are basic and advanced development functionality.
More advanced development would be AJAX and Web Services.For advanced development you will also need to know the Oracle PL/SQL language.
We would strongly recommend that have good understanding of the SQL language
and how to construct some performance SQL.
You can find the database information also on the Oracle Technology site. Here is a quick link to the Oracle RDBMS 10.2 documentation.
You may from time to time need HTML, JavaScript and CSS knowledge.
When To Use Apex ?
When deciding a technology to use you should gather and document what your requirements are. Then evaluate the available technologies against these requirements.
Oracle Apex can be used for almost anything because it has a capable development environment (PL/SQL) behind it. If you are not going to stick with the standard wizard build forms, interactive reports and reports then you will need to do PL/SQL programming. Building a specialized program will take much longer than using the wizards. The time to develop increases dramatically when the complexity increases.
So if you have the skills and resources then we thinks you should be able to build any type of application.
Terminology You Need to Know !
Workspace: A Development area that keeps Apex users and applications separate and secure.
An installation of Oracle Apex can contain a number of workspaces.
Internal Workspace: The Internal Apex workspace is a special workspace that allows the Apex Administrator to create new workspaces, managers user and configure the Apex environment.
Table space: This is a logical bucket that contains your tables and indexes. Table spaces are made up of one or more physical data files.
Database User: This is the basic database security mechanism for the Oracle Database. This user exists only in the database and Apex itself does not really know about this. I say really because in the back end Apex do handle the workspace to user mapping. A user can be assigned certain system privileges like to create a table and object privileges. So the user can insert or update a record in a table.
Schema: A schema is a database user that have a number of data object, like table, under the user.
Apex User: The database do not know about the Apex user. They only exists in the Apex Flow tables and Apex code. Apex users can be given different levels of Apex privileges. See the next section.
Apex Developer: An Apex developer can make changes to page of the application.
Workspace Administrator: An Administrator can has more privileges than the developer and can perform tasks like create Apex user and Apex Developers.
Apex vs Java/.Net ?
Java and .Net has some wider functional capabilities than the Apex application and being an open source platform has given Java and .Net a big head start in Enterprise Level applications. Yes, Apex was not originally intended for Enterprise Level applications but is quickly gaining in reputation on the enterprise level as a suitable candidate.
Where To From Here ?
A good place to start is to go to the Oracle Apex site : apex.oracle.com. There you can find things like
What is Apex, demonstrations and Examples. If you cannot wait to start development then you can request your very own workspace account from apex.oracle.com. Here is quick link.
If want to get a feel for what application look like then check out the pre packages applications here.
You could even download the application and modify them to suite your requirements and needs. How great is that.
If you want to migrate your access database to Oracle Apex then following the Migration section on apex.oracle.com.
Have a look at the Developer Basics page to give you a kickstart with developing Apex Pages.
