When you are working with global package arrays (
apex_application.g_f50) in Oracle Application Express (APEX), the following package procedure
apex_global_arrays can help in reducing development time especially time spent in the bugs and features department.
PROCEDURE print(maxlength NUMBER DEFAULT 20);
maxlength truncates the value of each table cell at the given number. You can call the procedure in a separate
On Submit application process. In this way the table is rendered even when succeeding
On Submit processes fail. Define once, execute everywhere. And of course, you can call it in
page process as well.
A picture says more than a thousand words. Below is an example of an updateable report based on the
After pressing submit, the following output is shown. Compare the
g_f01 array with the checkboxes above. The
g_f01 array is not sparse like the
g_f08 (commission) array. Also, when an array value does not exists, no table cell is printed, i.e.
g_f05(9); King does not have a manager.
The source can be found here.
Due to the name change of HTMLDB into APEX the public synonyms
htmldb_applicationpoint both to the
wwv_flowpackage where the associative arrays are declared. The global package arrays are also known as referencing arrays in APEX documentation or associative arrays in the PL/SQL language.
On apex.oracle.com you have to enter the debug mode after the page is submitted in order to render the table. On Oracle XE, you have to enter debug mode before submitting the page.
- You can install APEX_GLOBAL_ARRAYS in the parsing schema or in a separate schema. You can find the parsing schema of your application on application definition page. When you choose for a separate schema you have to grant execute right to the parsing schema and create a (public) synonym for APEX_GLOBAL_ARRAYS.