With Application Express, coding is declarative. That means that no code is generated or compiled. You interact with wizards and property sheets. Since the SQL language is used to define reports and charts, some knowledge of SQL is helpful. If procedural logic is needed, you can write snippets of code using PL/SQL. Declarative code yields fewer differences between developers and this consistency makes Application Express applications easy to maintain and manage.
The Application Express engine renders applications in real time from data stored in database tables. When you create or extend an application, Oracle Application Express creates or modifies metadata. When the application runs, the Application Express engine then displays the page or processes the page submission based on the metadata. This means that multiple developers can edit the same page and changes can be seen immediately when running the application. No compilation or deployment is necessary.
Examples of declarative programming in Oracle Application Express:
Forms
Using wizards, you can easily create forms on tables or on a stored procedure. When creating a form on a table, these wizards provide automatic management of insert, update, and delete as well as lost update detection. Once you create a form, you can rearrange form fields (called form items) using a visual representation, enabling you to quickly achieve the layout you want.
Interactive Reports
To create an interactive report, developers either select a table or provide a SQL statement. They can then restrict the capabilities available to end users (such as turning off download, not allowing a column to be hidden) if desired. The end user is presented with the report and the functionality is the same across all reports in the application (for example, how to filter, highlight, subscribe and save custom views).
Session State
Oracle Application Express transparently manages session state in the database. There is no SET and GET, Oracle Application Express handles it all for you. Application developers can access session state using simple substitutions as well as standard SQL bind variable syntax. Creating a process to clear session state for a page is as simple as a few clicks of the mouse and specifying the desired page.