Previous Next JavaScript must be enabled to correctly display this content

## 6 Deprecated in Previous Releases

The following section lists features which were deprecated in a previous release but have not been fully removed or desupported from Oracle APEX.

Oracle strongly recommends that developers start to modify their applications as described in this section. Use APEX Advisor to scan existing applications for deprecated attributes.

### 6.1 Deprecated APIs

As of APEX 24.2, the following APIs are deprecated:

- `APEX_LANG.MESSAGE` is deprecated. Instead, use `APEX_LANG.GET_MESSAGE` to support named substitution parameters.
- `APEX_PLUGIN_UTIL.EXECUTE_PLSQL_CODE` is now deprecated. Instead, use `APEX_EXEC.EXECUTE_PLSQL` Signature 1 or Signature 2.
- In `APEX_UTIL`, the following APIs are deprecated:
  - `custom_calendar`
  - `increment_calendar`

As of APEX 24.1, the following APIs are deprecated:

- The `APEX_APPROVAL` package is deprecated. Use `APEX_HUMAN_TASK` instead.
- The `URL_ENCODE` function in `APEX_UTIL` is now deprecated. Instead, use the built-in database function `UTL_URL.ESCAPE`.
- The `apex_plugin_util.print_display_only` API is deprecated. Instead, use `apex_plugin_util.print_read_only`.
- The `ABORT` function in `APEX_AUTOMATION` is now deprecated. Instead, use `TERMINATE` to terminate a currently executing automation.

### 6.2 Deprecated Dynamic Action Event

As of APEX 24.1, the APEX Dynamic Action event "Page Unload" is deprecated because the underlying browser event `unload` is deprecated. For more information, see Window: unload event.

### 6.3 Deprecated Plug-In Attribute

As of APEX 24.1, when editing a region plug-in, the Substitute Attribute Values switch is now deprecated. When you move to the Procedure interface, this switch disappears. To perform substitutions on the attribute value, use `apex_plugin_util.replace_substitutions`.

### 6.4 Number Field Substitutions

As of APEX 24.1, dynamic substitutions for Min/Max Value attributes for the Number field page item, including `&P1_MIN.`, are deprecated. This will be fixed in a future release by allowing developers to declaratively pick an item to use for Min/Max Value attributes.

### 6.5 Quick SQL Deprecated Functionality

Deprecated Settings

As of APEX 23.2, the following Quick SQL settings are deprecated:

- Data Language (`#language:"DE"`): No longer generates sample data into different languages (German, Korean, Japanese, Spanish).
- Tags Framework (`#tags:true`): No longer generates tag framework objects (table, trigger, sync procedure).
- On Delete (`#ondelete:"cascade"`): No longer supports system-wide `ondelete` settings. Handle these settings through the new `/cascade` column directive.
- Longer Varchar2 (`#longVC:true`): No longer supports artificially shortening or increasing `VARCHAR2` size.
- Tenant ID (`#tenantID:true`): No longer supported.

Deprecated Directives

As of APEX 23.2, the following Quick SQL directives are deprecated:

- `/select`: No longer generates a SQL `SELECT` statement after generating data for each table.

### 6.6 Deprecated Object Browser Features

As of APEX 23.1, some functionality in Object Browser is deprecated:

- The Model tab for tables is removed.
- The Create Materialized View Wizard is removed. Create materialized views by using a `CREATE MATERIALIZED VIEW` statement in SQL Commands or SQL Scripts. You can still view materialized views in Object Browser.

### 6.7 Preventing Double Escaping of LOV Display Values

As of APEX 23.1, APEX prevents double escaping of LOV display values.

By default, APEX automatically HTML-escapes Lists of Values (LOV) display values as necessary. To ensure backward compatibility with legacy apps, APEX checks whether the LOV query already includes a utility function to escape the display value. If it does, APEX avoids double-escaping the value when displaying it in a Select List, Popup LOV, Shuttle, Display Only item, or similar components.

Oracle recommends removing redundant inline escaping calls from your LOVs. In a future version of APEX, this prevention mechanism may be removed, which could cause some display values to appear double-escaped.

To identify whether any of your LOVs are impacted, run the following queries:

    select *
      from apex_application_lovs
     where lov_type = 'Dynamic'
       and (   upper(list_of_values_query) like '%HTF.ESCAPE_SC%'
            or upper(list_of_values_query) like '%APEX_ESCAPE.HTML%'
            or upper(list_of_values_query) like '%WWV_FLOW_ESCAPE.HTML%' );

    select *
      from apex_application_page_items
     where lov_named_lov is null
       and (   upper(lov_definition) like '%HTF.ESCAPE_SC%'
           or upper(lov_definition) like '%APEX_ESCAPE.HTML%'
           or upper(lov_definition) like '%WWV_FLOW_ESCAPE.HTML%' );

If the queries returns no rows, then no action is required. Otherwise, check the LOV definition and/or page items, remove any manual escaping, and test your applications to ensure that the values still appear as intended.

### 6.8 Display Only Item with Format HTML (Unsafe) Deprecated

As of APEX 23.1, Format HTML sanitizes the HTML content on the client before displaying it. This simplifies the display of user-provided HTML, including the content of HTML-based rich text editors.

To maintain backward compatibility with existing applications, all current Display Only page items using the Format HTML option will be migrated to HTML (Unsafe) to preserve their current behavior. However, going forward, this option is deprecated, and displaying "unsafe" HTML, such as script tags or `javascript:` expressions, `onclick` attributes, and others, is no longer possible, as this content is stripped away.

Although it is not recommended to display unsafe HTML content, you can still choose to display it.

### 6.9 Deprecated Functions and Procedures

As part of moving existing APIs from `APEX_UTIL` to `APEX_APPLICATION_ADMIN`, some comments changed. As of APEX 23.1, the following functions and procedures are deprecated:

- `set_build_option_status`
- `get_build_option_status` (two times, overloaded)
- `set_application_status`
- `get_application_status`
- `set_global_notification`
- `get_global_notification`
- `set_app_build_status`

### 6.10 Deprecated APEX Item Markup

Future releases of APEX may include fixes and improvements to the accessibility, usability, and functionality of various items that require changing the markup or using custom elements (web components). These changes may create more dynamic behaviors for items, and will be done in a way that minimizes impact to items and forms in existing apps.

As of APEX 22.2, the `apex.item` namespace and item interface are the only supported APIs for customizing and programmatically working with items. APEX discourages customizations that rely on undocumented item markup or CSS classes, as these may not work as expected in future releases.

Assumptions about the HTML markup used by each of the native APEX items may not hold in the future. Item customization through Advanced attributes (CSS Classes), Custom Attributes, JavaScript code, and CSS rules that assumes particular markup could break.

For example, you could make the text area item character counter bold by adding class `important-text` to the Advanced: CSS Classes attribute of a text area and then add a custom CSS rule like:

    .important-text.apex-item-textarea + .apex-item-textarea-counter {
        font-weight: bold;
    }

This currently works, but may not in the future because it relies on undocumented class names and the counter element directly following the `textarea` element. It is also not a best practice to add event handlers in Custom Attributes.

Future releases may document new custom element markup, classes, and CSS variables to allow more supportable customization.

### 6.11 Deprecated jQuery Date Picker

As of APEX 22.2, jQuery Date Picker is now deprecated and cannot be used for new pages or applications. The old jQuery Date Picker JavaScript APIs are not supported.

Oracle recommends replacing all old Date Pickers with the new Date Picker.

### 6.12 Previously Deprecated APIs

As of APEX 22.1, the `APEX_IR.GET_REPORT` API is deprecated. Instead, use `APEX_REGION.OPEN_QUERY_CONTEXT` to get interactive report data.

### 6.13 Deprecated Legacy Web Service References

As of APEX 22.1, SOAP style Web Service references and legacy support for REST style Web Services references are deprecated.

### 6.14 jQuery UI Deprecated

As of APEX 20.1, jQuery UI is deprecated. Oracle recommends that customers update third-party APEX plug-ins and custom JavaScript code to remove any jQuery UI references. Native APEX components that use jQuery UI will continue to function, but support will be removed in a future release.

Oracle ships a custom bundle of JQuery UI 1.13.2 that includes only the modules that APEX needs. Oracle no longer ships individual widgets or any jQuery UI CSS files.