Research Article
Oracle Apex Dynamic Actions: Powering Interactivity with Low-Code or No-Code
Authors: Ashraf Syed
Publication Date: August 01, 2025
DOI:
https://doi.org/10.51219/JAIMLD/ashraf-syed/588
Citation:
Citation: Ashraf Syed. Oracle Apex Dynamic Actions: Powering Interactivity with Low-Code or No-Code. J Artif Intell Mach Learn & Data Sci, 2025, 3(3): 1-3.
Copyright:Copyright: ©2025 Ashraf Syed,. This is an open-access article distributed under the terms of the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original author and source are credited.
View : PDF
Abstract
The contemporary landscape of enterprise application development is
increasingly driven by the imperative for rapid delivery and enhanced user
engagement. Low-code platforms, such as Oracle Application Express (APEX), have
emerged as pivotal tools in addressing these demands, empowering both
professional developers and citizen developers to construct robust business
solutions with unprecedented efficiency1.
Traditionally, integrating dynamic and interactive features into web
applications has necessitated extensive client-side scripting (e.g.,
JavaScript) and complex Asynchronous JavaScript and XML (AJAX) implementations,
often posing significant development hurdles and increasing time-to-market.
This paper investigates Oracle APEX Dynamic Actions as a transformative
declarative framework designed to streamline the creation of sophisticated
interactivity with minimal or no coding. By abstracting the complexities of
event-driven programming, Dynamic Actions enable developers to define
responsive UI behaviors, real-time validations and seamless server-side
interactions. This capability significantly accelerates the development cycle,
reduces potential errors, democratizes application creation by empowering a
broader range of users and ultimately enhances the overall user experience. Our
analysis posits that Dynamic Actions are a cornerstone of APEX's ability to
deliver high-fidelity, interactive applications efficiently, solidifying APEX's
position as a leading low-code platform for modern enterprise needs.
Keywords: Oracle APEX, Dynamic Actions, Low-Code Development, No-Code
Development, Web Interactivity, Enterprise Applications, Citizen Development
1. Introduction
The digital transformation
sweeping across industries has placed unprecedented pressure on organizations
to develop and deploy business applications with speed, agility and efficiency2. In this demanding environment,
traditional software development methodologies, often characterized by lengthy
development cycles and high resource requirements, are proving increasingly
inadequate. This challenge has fueled the proliferation of low-code and no-code
development platforms, which aim to democratize application creation by
abstracting away much of the underlying technical complexity3,4. These platforms empower a broader
spectrum of users, from professional developers seeking accelerated delivery to
business users with domain expertise (often termed “citizen developers”), to
contribute directly to software solutions, thereby bridging the gap between
business needs and IT capabilities6.
Oracle
Application Express (APEX) stands as a prominent example within the low-code
landscape. As a feature of the Oracle Database, APEX provides a web-based,
declarative development environment for building scalable, secure enterprise
applications with minimal coding7,8.
Its architecture leverages the robust capabilities of the Oracle Database,
allowing developers to create data-driven applications that are tightly
integrated with their existing data assets. APEX has gained significant
traction due to its ability to rapidly deliver web applications, ranging from
simple data entry forms to complex dashboards and sophisticated business
systems, all while maintaining high performance and security standards1. The core philosophy of APEX revolves
around declarative development, where developers configure components and
define behaviors through intuitive wizards and property editors, rather than
writing extensive lines of code9.
One
of the persistent challenges in modern web application development is the
creation of rich, interactive user interfaces. Users today expect dynamic
feedback, real-time updates and seamless navigation without constant page
reloads. Traditionally, achieving such interactivity involved a deep
understanding of client-side scripting languages like JavaScript, coupled with
frameworks such as jQuery and intricate Asynchronous JavaScript and XML (AJAX)
implementations to communicate with the server without full page submissions8. This process is inherently complex,
error-prone and requires specialized coding skills, which can significantly
slow down development and increase maintenance overhead5. For developers focused on rapid
application delivery or for citizen developers with limited programming
backgrounds, this complexity becomes a major barrier to realizing sophisticated
user experiences. The manual coding of event listeners, DOM manipulation and
AJAX calls is time-consuming and often requires extensive debugging, detracting
from the primary goal of delivering business value efficiently6.
Oracle
APEX directly addresses this challenge through its innovative feature known as
Dynamic Actions. Dynamic Actions provide a powerful, declarative framework that
allows developers to define client-side and server-side interactions in
response to specific events, without the need to write custom JavaScript or
intricate AJAX callbacks7. At its
core, a Dynamic Action is a rule-based mechanism that specifies: when an
event occurs (e.g., a button click, a change in an item's value or a page
load), what conditions must be met for the action to fire and what
actions should be performed (e.g., show/hide an element, set a value, execute
SQL, submit the page)9,10. This
abstraction fundamentally simplifies the process of adding interactivity,
transforming what would traditionally be a coding-intensive task into a
configuration exercise. Dynamic Actions empower developers to create highly
responsive and engaging applications, providing immediate feedback to users and
streamlining workflows with unprecedented ease. They represent a cornerstone of
APEX's no-code/low-code promise, enabling the creation of complex interactive
behaviors through intuitive point-and-click interfaces for many common
scenarios, while still offering avenues for custom code (low-code) when highly
specific requirements arise1,5.
This
paper aims to provide a comprehensive analysis of Oracle APEX Dynamic Actions,
exploring their architectural underpinnings, key components and diverse
practical applications. We will delve into how Dynamic Actions contribute
significantly to the low-code/no-code paradigm, demonstrating their impact on
accelerated development cycles, reduced costs, enhanced user experience and the
empowerment of citizen developers. Furthermore, we will discuss best practices
for leveraging Dynamic Actions effectively, along with considerations for
performance, maintainability and security. By examining their capabilities and
benefits, this research will solidify the understanding of Dynamic Actions as
an indispensable tool for building modern, interactive enterprise web
applications rapidly and efficiently within the Oracle APEX ecosystem.
2. Oracle Apex Architecture and Core Principles
Oracle APEX
operates as a declarative low-code platform, fundamentally shifting the
paradigm of application development from imperative coding to
configuration-driven design. This approach allows developers to define what
an application should do, rather than explicitly detailing how it should
achieve it9,11. The platform's
declarative nature is evident in its rich set of pre-built components, such as
forms, reports, charts and calendars, which can be assembled and customized
through intuitive wizards and property editors. This significantly reduces the
need for manual coding, thereby accelerating the development cycle, minimizing
errors and enabling faster time-to-market for enterprise solutions3,12. The agility fostered by this low-code
environment allows organizations to respond quickly to evolving business
requirements and embrace digital transformation initiatives more readily4. Furthermore, the visual and
configuration-centric development environment empowers “citizen developers”-business
users with deep domain knowledge but limited traditional programming skills-to
actively participate in application creation, bridging the historical gap
between business needs and IT delivery capabilities6.
At the heart of any
web application lies the interplay between client-side and server-side
processing. Client-side processing occurs within the
user's web browser, executing code typically written in JavaScript, HTML and
CSS to handle user interface interactions, display data and manage the visual
presentation13. Server-side
processing, on the other hand, involves the application server and the
database, where business logic is executed, data is retrieved and manipulated
and responses are prepared. In the context of APEX, the Oracle Database serves
as the robust back-end, where application metadata, data and PL/SQL code
reside. Asynchronous JavaScript and XML (AJAX) plays a crucial role in modern
web interactivity, enabling partial page updates without requiring a full page
reload8. This means that
client-side actions can trigger server-side processes, fetch new data or
execute logic and only specific parts of the page are refreshed, leading to a
smoother and more responsive user experience. APEX extensively utilizes AJAX
behind the scenes to facilitate this seamless communication between the browser
and the database.
Web applications are inherently event-driven, meaning their behavior is largely
determined by events triggered by user actions or system states. Event-driven
programming is a paradigm where the flow of the program is determined by
events, such as mouse clicks, keyboard inputs, form submissions or even the
loading of a page14. These events
serve as triggers for specific functions or routines. For instance, a user
clicking a button, changing a value in a text field or hovering over an element
all constitute events. The ability to capture and respond to these events is
fundamental to creating dynamic and interactive user interfaces that provide
immediate feedback and adapt to user input. Before the advent of sophisticated
declarative tools like Dynamic Actions, developers had to manually write
JavaScript event listeners and functions to capture these events and implement
the desired interactive behaviors.
Historically, APEX
developers achieved interactivity through a combination of manual JavaScript,
page processes and explicit AJAX callbacks. While effective, these methods
often involved writing boilerplate code, managing DOM elements directly and
explicitly handling the complexities of asynchronous communication. For
example, to hide a region when a checkbox was unselected, one might write a
JavaScript function called by the checkbox's onChange attribute, which would
then manipulate the region's style property. More complex interactions, such as
refreshing a report based on a select list change, would typically involve
defining an AJAX callback process on the server and then writing client-side
JavaScript to invoke this callback and update the relevant page elements upon
receiving a response. This imperative approach, while offering fine-grained
control, could be time-consuming, prone to errors and difficult for
non-specialists to manage or debug. Dynamic Actions were introduced to abstract
away much of this complexity, offering a declarative, no-code/low-code
alternative for defining common interactive patterns1,7.
3. Dissecting Dynamic Actions
To rigorously assess the effectiveness of various
performance optimization techniques in APEX, a comprehensive experimental
methodology centered around a sample application is designed that mirrors
real-world enterprise scenarios. This section outlines the experimental setup,
the selection and application of optimization techniques, the performance
metrics chosen for evaluation and the detailed procedures for conducting
benchmarks, including code snippets, test iterations and validation steps. By
grounding the approach in empirical testing, this paper aims to provide
quantifiable insights into how these techniques impact APEX application
performance.
Oracle APEX Dynamic Actions
represent a declarative framework that empowers developers to define
client-side and server-side interactivity with
significantly reduced coding effort. Their primary purpose is to enable
sophisticated, event-driven behaviors on a web page through configuration
rather than imperative scripting, thereby making advanced UI/UX features
accessible to a broader range of developers, including citizen developers [1],
[9]. This framework abstracts the complexities of JavaScript, HTML Document
Object Model (DOM) manipulation and AJAX communication into a set of intuitive
properties and actions.
A Dynamic Action is
fundamentally composed of several key elements:
- When:
This section defines the event that triggers the Dynamic Action.
- Event:
This specifies the type of user interaction
or system occurrence that initiates the action. Common events include Click (on
a button or element), Change (when an item's value is altered and focus leaves
the item), Page Load (when the page finishes loading), After Refresh (when a
region or item is refreshed via AJAX) and Custom Event (allowing developers to
define their own events that can be triggered programmatically).
- Selection Type:
This determines the scope or target of the event. Options include Item (a
specific page item like a text field or select list), Button, Region, jQuery
Selector (for targeting any HTML element using standard jQuery syntax) and
JavaScript Expression (for more dynamic targeting). For instance, selecting
Item and choosing P1_MY_CHECKBOX for a Change event means the Dynamic Action
will fire whenever the value of P1_MY_CHECKBOX changes.
- Selector:
Based on the selection type, this identifies the specific page element(s) to
which the event listener is attached. For an Item selection type, this would be
the item's name (e.g., P1_ITEM_NAME). For a jQuery Selector, it could be a CSS
class or ID (e.g., .my-class or #myRegionId).
- Condition:
An optional component that further refines when the action executes.
Even if the event fires, the action will only proceed if this condition
evaluates to true. Conditions can be simple, like "Item is NULL,"
"Item is NOT NULL," "Equal to," or more complex, involving "JavaScript
Expression" or "SQL Expression" for advanced logic. For example,
a "Show" action for a region might only fire if a checkbox is checked
and a text item's value is 'ADMIN'.
- True Actions:
These are the operations performed when the Dynamic Action's "When"
condition is met (or if no condition is specified). APEX provides a
comprehensive list of built-in actions that cover a wide range of common
interactive needs:
- Set Value:
Dynamically sets the value of a page item or HTML element, often based on a
static value, JavaScript expression or SQL query.
- Show/Hide:
Controls the visibility of page regions, items or other elements.
- Enable/Disable:
Manages the active state of input fields and buttons.
- Execute JavaScript
Code: Allows for custom client-side logic to be executed,
providing a "low-code" escape hatch for scenarios not covered by
declarative actions.
- Submit Page:
Initiates a full page submission, similar to clicking a standard submit button.
- Refresh:
Reloads the content of a region (e.g., an Interactive Report or Classic Report)
without a full page refresh, typically via AJAX.
- Alert/Confirm:
Displays JavaScript alert or confirmation dialogs to the user.
- Set Focus:
Directs the user's cursor to a specific page item.
- Add class/Remove class:
Dynamically adds or removes CSS classes from HTML elements, allowing for visual
styling changes.
- Each True Action comes with
specific parameters to configure its behavior, such as the value to set, the
elements to affect or the JavaScript code to execute.
- False actions:
These actions are executed if the Dynamic Action's event fires, but its
"Condition" evaluates to false. This provides a clean way to define
inverse behaviors (e.g., if a checkbox is checked, show an item; if unchecked,
hide it). Using False Actions simplifies logic by keeping related true/false
scenarios within a single Dynamic Action definition.
- Affected elements:
For most actions, developers must specify which elements on the page will be
impacted. This can be done by selecting page items, regions or by providing a
jQuery selector to target specific HTML elements based on their ID, class or
other attributes. This granular control ensures that actions modify precisely
the intended parts of the user interface.
- Execution scope:
Dynamic Actions offer two execution options: "Once" and "Every
Time." "Once" means the action will fire only the first time its
triggering event and condition are met after the page loads. "Every
Time" means the action will fire each time the event occurs and the
condition is true. The "Every Time" option is crucial for dynamic
interactions where behavior needs to be repeatedly applied upon subsequent user
input.
- Server-side logic
integration: A powerful aspect of Dynamic
Actions is their seamless integration with server-side processing,
predominantly through AJAX. Actions like Execute Server-side Code (PL/SQL)
allow developers to run database logic, perform calculations or fetch data
without a full page postback. When Execute Server-side Code is selected, APEX
automatically generates the necessary AJAX callback infrastructure. The results
of this server-side execution can then be returned to the client and used by subsequent
client-side actions within the same Dynamic Action chain (e.g., Set Value based
on the AJAX return). The Submit Page action also triggers server-side
processing, but unlike AJAX, it initiates a full-page refresh, typically used
for saving data or navigating to another page.
The beauty of Dynamic Actions
lies in their spectrum of “no-code” to “low-code” capabilities. Many common
interactive scenarios, such as showing or hiding a region based on a checkbox's
state, enabling a button when a text field is populated or populating a second
select list based on the first (cascading LOV), can be achieved with absolutely
no custom code. Developers simply configure the “When,” “True Actions,” and “Affected
Elements” properties through the APEX UI. However, for more specialized
requirements, Dynamic Actions provide “low-code” flexibility. For instance, an
Execute JavaScript Code action allows developers to write small snippets of
client-side JavaScript or an Execute Server-side Code action enables short PL/SQL
blocks for custom database logic. This hybrid approach ensures that while
complex coding is largely eliminated for standard patterns, the extensibility
needed for unique business requirements remains fully accessible, striking an
optimal balance between rapid development and powerful customization1,7,10.
4. Practical Applications and Use Cases
Oracle APEX Dynamic Actions are
instrumental in building highly interactive and user-friendly web applications
by simplifying complex client-side and server-side interactions into
declarative configurations. Their versatility allows them to address a wide
array of common and sophisticated use cases in enterprise application
development:
- Form validation and
dynamic feedback: Dynamic Actions revolutionize
user input validation by providing immediate, real-time feedback, significantly
improving the user experience and data quality15.
- Real-time validation:
As a user types into a username field, a Dynamic Action can trigger on the
Change event of the item. This can initiate an Execute Server-side Code action
to check the uniqueness of the username against the database. Based on the
server's response, a Show or Hide action can display an inline message
indicating "Username available" or "Username already
taken."
- Showing/Hiding validation
messages: Upon losing focus from an input
field (Blur event), a Dynamic Action can assess if the entered value meets
specific criteria (e.g., email format, minimum length). If the validation
fails, a Show action reveals a predefined validation error message associated
with that field, guiding the user to correct their input without requiring a full-page
submission.
- Conditional display
of fields: In a survey or registration
form, certain fields may only be relevant based on previous selections.
For example, if a user selects "Other" from a dropdown list for
"Country," a Dynamic Action can be configured on the Change event of
the country item. If the value is 'Other', a Show action makes a "Please
Specify" text field visible; otherwise, a Hide action keeps it concealed.
- Dynamic UI adjustments:
Enhancing user experience by adaptively modifying the interface based on user
interactions.
- Showing/Hiding regions,
items or buttons: Beyond simple field visibility,
Dynamic Actions can control entire sections of a page. For instance, a Dynamic
Action on a Change event of a checkbox labeled "Advanced Options" can
show or hide an entire region containing complex configuration settings.
Similarly, buttons can be shown or hidden based on the logged-in user's role or
other application states.
- Enabling/Disabling fields
or buttons: To enforce business
logic, Dynamic Actions can enable or disable input fields or buttons. For
example, a "Submit" button might remain disabled (Disable action)
until all mandatory form fields are populated, detected by Change events on
each input field, combined with a Condition that checks if all values are NOT
NULL.
- Cascading LOVs (List
of Values): A classic use case involves populating
a second select list based on the selection in the first. When a user selects a
"Country" from a dropdown, a Dynamic Action on the Change event of
the "Country" item can execute a server-side PL/SQL process. This
process fetches "States" relevant to the selected country from the
database. The returned data is then used by a Refresh action to update the
"State" select list, providing a seamless and intuitive data entry
experience16.
- Interactive reporting:
Dynamic Actions significantly enhance the interactivity of APEX reports,
turning static data displays into dynamic analytical tools.
- Refreshing reports
based on filter changes: Instead of a full
page reload, when a user changes a filter item (e.g., P1_STATUS or
P1_DATE_RANGE), a Dynamic Action triggered on the Change event of the filter
item can execute a Refresh action targeting the Interactive Report or
Classic Report region. This updates the report results instantly via AJAX,
providing immediate insights without interrupting the user's flow.
- Highlighting rows
based on data conditions: While APEX
Interactive Reports offer built-in highlighting, more complex visual
cues can be achieved with Dynamic Actions. A Page Load Dynamic Action, combined
with Execute JavaScript Code, can iterate through report rows and apply custom
CSS classes to rows or cells based on specific data values (e.g., highlighting
overdue tasks in red).
- Integrating interactive
charts: Charts can be dynamically
updated in response to user selections on other page items. Similar to
refreshing reports, a Change event on a selection filter can trigger a Refresh
action on a chart region, recalculating and redrawing the chart based on the new
parameters.
- User experience
enhancements: Beyond core functionality,
Dynamic Actions enable subtle yet powerful improvements to application
usability.
- Displaying confirmation
dialogs: Before a destructive action,
such as deleting a record, a Dynamic Action on a button's Click event can
display a Confirm dialog. Only if the user confirms will the subsequent actions
(e.g., Submit Page with a delete process) be executed, preventing accidental
data loss.
- Using notifications
(apex.message.showPageSuccess): After a successful
operation (e.g., data submission), a Dynamic Action can display unobtrusive
success messages. An After Submit Dynamic Action, for instance, can use Execute
JavaScript Code to call apex.message.showPageSuccess('Record saved successfully!';,
providing immediate and clear feedback without navigating away from the current
context.
- Providing immediate
feedback for user actions: Simple visual cues
like showing a loading spinner (apex.util.showSpinner) while an AJAX process is
running and then hiding it upon completion, can significantly enhance the
perceived responsiveness of an application. This can be implemented by adding
Show and Hide actions around the Execute Server-side Code or Refresh actions.
- Integration with external
APIs (Low-Code Perspective): Dynamic Actions can
serve as a bridge for integrating with external services, extending APEX
applications beyond their native database capabilities17.
- Triggering AJAX calls
to external REST services: While direct
client-side calls to external APIs might face CORS restrictions, Dynamic
Actions with Execute Server-side Code can act as a proxy. The PL/SQL code can
use APEX_WEB_SERVICE to call external REST APIs, process the response on the
server and then return relevant data to the client-side Dynamic Action for
display or further processing. This allows low-code developers to leverage
external data sources without deep knowledge of web service integration patterns.
- Processing responses
and updating page elements: Once data is fetched
from an external API via a server-side Dynamic Action, the client-side True
Action can use Set Value or Execute JavaScript Code to parse the returned JSON
or XML and update specific page items or regions. This enables real-time display
of external information, such as weather forecasts based on a selected city or
stock prices.
- Complex workflows
simplified: By chaining multiple actions
and conditions, Dynamic Actions allow for the creation of intricate, multi-step
application logic in a declarative manner.
- Chaining dynamic
actions: A single event can trigger a
sequence of actions. For example, changing a product category (Event: Change on
P1_CATEGORY) might first clear the product sub-category list (Set Value to
NULL), then refresh the sub-category LOV (Refresh action on P1_SUB_CATEGORY)
and finally, refresh the product list report (Refresh action on
Product_Report_Region), all within one coherent Dynamic Action definition. This
sequential execution streamlines complex user flows that would otherwise
require extensive imperative coding and intricate callback management.
5. Benefits of Dynamic
Actions
Oracle APEX Dynamic Actions
confer substantial benefits that are central to the platform's efficacy as a
leading no-code/low-code development environment. These advantages collectively
contribute to faster, more efficient and more accessible application
development.
- Accelerated
Development Cycle: Dynamic Actions dramatically
reduce the time required to build interactive features, a critical factor in
today's fast-paced business environment18.
- Significant time
reduction: Implementing common interactive
elements like showing/hiding fields, conditional enabling of buttons or
cascading select lists, which previously demanded manual JavaScript coding and
meticulous DOM manipulation, can now be achieved in minutes through a few
clicks and configurations in the APEX Builder. This declarative approach
bypasses the need for writing, testing and debugging hundreds of lines of code,
leading to a profound acceleration in the development timeline.
- Comparison with traditional
coding methods: In traditional web development
using frameworks like vanilla JavaScript, jQuery or even modern frameworks such
as React or Angular, achieving dynamic behaviors involves explicit coding of
event listeners, functions to modify the Document Object Model (DOM) and
potentially AJAX calls with their associated success and error handling. For
instance, creating a cascading List of Values (LOV) in a traditional
environment would necessitate: writing JavaScript to detect a change in the
parent LOV, constructing an AJAX request to the server, handling the server's
JSON/XML response, parsing the data and then dynamically populating the child
LOV's options while also managing potential loading indicators and error states
[8]. In contrast, APEX Dynamic Actions simplify this to a "Change"
event, a "Refresh" action on the child item and perhaps an
"Execute Server-side Code" for data retrieval, all configured
declaratively. This contrast highlights the immense reduction in boilerplate
code and cognitive load, making development significantly faster.
- Empowerment of citizen
developers: Dynamic Actions democratize
application creation by enabling business analysts and non-traditional
developers to build powerful, interactive applications without extensive
programming knowledge6,19.
- Democratization of application
development: The intuitive, wizard-driven
interface of Dynamic Actions allows individuals with strong domain expertise
but limited coding skills to contribute directly to the development of
sophisticated applications. They can define complex UI logic and data interactions
using a point-and-click interface, translating business requirements directly
into functional application features. This bridges the traditional gap between
business users who understand the "what" and IT developers who handle
the “how.”
- Reduced reliance on
specialized skills: By abstracting away the
complexities of client-side scripting and AJAX, Dynamic Actions diminish the
dependency on highly specialized JavaScript developers for common interactive
requirements. This frees up senior developers to focus on more complex architectural
challenges or custom integrations, while citizen developers can build and
maintain a significant portion of the application's interactive elements.
- Reduced development
costs and maintenance: Less code inherently translates
to fewer bugs and a more straightforward maintenance process, leading to
overall cost savings.
- Fewer bugs and easier
maintenance: Declarative configurations are
less prone to typographical errors or logical flaws compared to hand-coded
scripts. The standardized nature of Dynamic Actions makes it easier to
understand, troubleshoot and maintain application behavior, even by developers
who did not originally create them. When an issue arises, debugging often
involves reviewing declarative settings rather than tracing complex JavaScript
call stacks.
- Standardization of interactions:
Dynamic Actions enforce a consistent pattern for implementing interactive
features across an application. This uniformity reduces design and development
effort, ensures a predictable user experience and simplifies future
enhancements or modifications. Instead of diverse custom scripts, developers
work within a defined, well-understood framework.
- Improved application
performance (Client-Side Focus): Dynamic Actions
contribute to a smoother user experience by optimizing client-side processing
and minimizing full page reloads.
- Minimizing full page
reloads: A primary benefit of Dynamic
Actions is their extensive use of AJAX to perform partial page updates. Instead
of submitting the entire page to the server and redrawing it, Dynamic Actions
enable targeted refreshes of specific regions or items. This reduces network
traffic, server load and improves the perceived speed and responsiveness of the
application, as users experience fewer disruptive page flashes8.
- Optimizing AJAX
Calls: APEX's internal mechanisms for Dynamic Actions are
optimized to handle AJAX requests efficiently. They streamline the
communication between the browser and the database, ensuring that only
necessary data is exchanged. While custom JavaScript could theoretically
achieve similar optimizations, Dynamic Actions provide a robust and tested
framework that handles many performance considerations automatically.
- Consistency and reusability:
Dynamic Actions promote a standardized approach to UI behavior, which enhances
application quality and accelerates development.
- Promoting consistent
UI behavior: By providing a predefined set
of actions and events, Dynamic Actions encourage developers to implement
interactive patterns in a uniform way. This leads to a more consistent and
predictable user interface across different pages and applications, which is
crucial for usability and learnability.
- Ability to copy/Paste
dynamic actions: In APEX, Dynamic Actions can
often be easily copied and pasted between items, regions or even different
pages within the same application or exported and imported between
applications. This reusability significantly accelerates development, as common
interactive patterns (e.g., show/hide a field based on a checkbox) do not need
to be re-created from scratch for each instance.
- Enhanced user
experience: The responsiveness and
intuitiveness fostered by Dynamic Actions lead to a superior overall user
experience.
- More responsive and
intuitive applications: Users expect web applications
to react instantly to their input. Dynamic Actions enable this by providing
immediate feedback and updating the UI in real-time, making applications feel
more desktop-like and less like traditional web forms. This responsiveness
reduces user frustration and increases satisfaction.
- Immediate feedback to
user actions: Whether it's a visual change
(showing/hiding), a value update or a confirmation message, Dynamic Actions
provide instant cues to the user about the outcome of their actions. This
immediate feedback loop is crucial for guiding users through complex forms and
workflows, minimizing errors and enhancing overall usability.
6. Best Practices and
Considerations for Dynamic Actions
To maximize the effectiveness
and maintainability of Oracle APEX Dynamic Actions, developers should adhere to
established best practices and consider potential implications:
- Performance optimization:
- Minimizing the number
of DAs on a single page: While Dynamic
Actions are efficient, an excessive number of complex DAs on a single page can
still impact page load times and client-side rendering performance. Each
Dynamic Action adds event listeners and processing overhead. It's crucial to
consolidate related logic where possible and avoid unnecessary DAs, especially
those firing on frequent events like Key Press [20].
- Efficient use of
selectors: The performance of a Dynamic
Action is heavily influenced by the efficiency of its jQuery Selector or other
element identification methods. Using specific ID selectors (e.g., #myRegionId)
is highly efficient. In contrast, broad class selectors (e.g., .my-class) or
attribute selectors, especially without a precise context, can force the
browser to traverse a larger portion of the DOM, leading to slower execution
times [21]. Always strive for the most specific and unique selector available.
- Avoiding redundant
actions: Review Dynamic Actions to
ensure that multiple actions or DAs are not attempting to perform the same
operation or are triggering unnecessarily. For example, if two Dynamic Actions
conditionally hide the same item under different circumstances, consider combining
them into a single DA with more complex Condition logic and True and False
actions.
- When to use Stop
execution on error: This option, available for
individual actions within a Dynamic Action, determines whether subsequent
actions in the same True or False chain will execute if an error occurs in the
current action. Setting this to 'Yes' can be invaluable during debugging, as it
allows you to pinpoint precisely where an issue is occurring and prevents
cascading errors or unintended behaviors from subsequent actions. For
production, carefully assess whether a failure in one action should halt the
entire chain or if other actions can still proceed.
- Maintainability and readability:
- Meaningful naming
conventions for DAs: Consistent and descriptive
naming is paramount for maintainability, especially in larger applications or
team environments. Dynamic Action names should clearly indicate their purpose,
the item/region they affect and the event that triggers them (e.g.,
DA_P1_STATUS_CHANGE_SHOW_DETAILS, DA_SAVE_BUTTON_CLICK_SUBMIT_PAGE). This
clarity significantly reduces the time required for future debugging,
enhancements or knowledge transfer [22].
- Adding comments to
complex DAs or JavaScript code: For Dynamic Actions
that involve complex conditions, intricate JavaScript code (Execute JavaScript
Code action) or sophisticated PL/SQL (Execute Server-side Code action), adding
inline comments within the code or utilizing the "Comments" field in
the APEX Builder is highly recommended. These comments should explain the
logic, purpose and any non-obvious dependencies, making the DA's behavior
understandable without extensive analysis.
- Organizing DAs
logically: Grouping Dynamic Actions within
the APEX Builder's tree view (e.g., by the page item they affect or by general
page functionality) improves navigation and comprehension. While APEX
automatically groups by Event and Selection Type, further logical grouping
through careful naming or judicious use of shared events can be beneficial.
- Security implications:
- Client-side
validation vs. server-side validation: Dynamic Actions are
excellent for providing immediate client-side validation feedback to users15. However, it is crucial to remember that
client-side validation can be bypassed by malicious users. Therefore, all
critical data integrity and security checks must be duplicated and
enforced on the server-side (e.g., via database constraints, APEX validations
or PL/SQL processes)23.
Client-side validation is for convenience and user experience; server-side
validation is for security and data consistency.
- Preventing XSS
vulnerabilities when using Set Value or Execute JavaScript Code:
When using Dynamic Actions to Set Value into HTML elements or to Execute
JavaScript Code based on user-provided input, there's a risk of Cross-Site
Scripting (XSS) vulnerabilities if the input is not properly sanitized. Always
escape any user-generated content that is displayed or executed as code. APEX
provides utilities like APEX_ESCAPE.HTML in PL/SQL and apex.util.applyTemplate
or apex.util.escapeHTML in JavaScript to help prevent such attacks.
- Debugging dynamic
actions:
- Utilizing browser
developer tools (console, network tab): The browser's
built-in developer tools are indispensable for debugging Dynamic Actions. The
Console tab will display any JavaScript errors or custom debug messages
(console.log). The Network tab allows inspection of AJAX calls initiated by
Dynamic Actions, showing request parameters, response data and timing
information, which is critical for troubleshooting server-side Execute
Server-side Code actions. The Elements tab can be used to inspect the DOM and
see how Dynamic Actions are manipulating elements, classes and styles.
- APEX debug mode:
Enabling APEX debug mode (by appending ?p=APP_ID:PAGE_ID:SESSION:DEBUG:YES to
the URL or using the Developer Toolbar) provides detailed server-side debug
information. This includes traces of Dynamic Action execution, timings for
PL/SQL processes and bind variable values, offering insights into the
server-side component of DAs [24].
- When to Use PL/SQL
vs. JavaScript in DAs:
- Guidelines for
choosing the appropriate action type: As a general rule,
use Execute JavaScript Code for client-side UI manipulations (e.g.,
showing/hiding elements, simple calculations, manipulating client-side arrays,
integrating with third-party client-side libraries). Use Execute Server-side
Code (PL/SQL) for interactions involving database operations (DML, complex
queries), sensitive business logic or when data needs to be retrieved or
processed securely on the server.
- Balancing client-side
responsiveness with server-side data integrity:
While JavaScript actions offer immediate responsiveness, any operation that
impacts data integrity or involves sensitive business rules must have a
server-side component. For instance, a client-side validation for an email
format is good for UX, but the actual uniqueness check and saving of the email
should happen via a server-side process, possibly triggered by a Dynamic
Action.
- Limitations and workarounds:
- Discuss scenarios
where DAs might not be sufficient and require custom JavaScript or PL/SQL:
While powerful, Dynamic Actions cannot cover every conceivable interactive
scenario. For highly custom client-side animations, complex drag-and-drop
interfaces that are not part of built-in components, deep integration with
highly specialized third-party JavaScript libraries or real-time data streaming
technologies (WebSockets), developers may still need to write custom
JavaScript. Similarly, extremely complex, multi-step server-side processes that
require extensive error handling or transaction management are better handled
in dedicated PL/SQL packages callable by a Dynamic Action's Execute Server-side
Code action, rather than in an inline PL/SQL block.
7. Case Studies and
Comparative Analysis
Analyzing practical case studies
or conducting comparative analyses can powerfully illustrate the impact and
efficiency of Oracle APEX Dynamic Actions. These examples demonstrate how
real-world challenges are addressed and highlight the advantages over traditional
development approaches.
- Case study 1:
Streamlining a purchase order approval workflow
- Scenario:
In a simple business application for managing purchase orders, an approval
workflow is implemented. When a user (approver) views a purchase order, they
select an "Approval Status" (e.g., "Approved,"
"Rejected," "Pending Revision") from a dropdown list.
- Dynamic action
implementation:
- Event: Change on the "Approval Status" item (P1_APPROVAL_STATUS).
- Conditions/True Actions:
- If P1_APPROVAL_STATUS is "Rejected":
- Show P1_REJECTION_REASON (text area).
- Enable P1_REJECTION_REASON.
- If P1_APPROVAL_STATUS is "Approved":
- Hide P1_REJECTION_REASON.
- Disable P1_REJECTION_REASON.
- Set Value of P1_REJECTION_REASON to NULL.
- Execute Server-side Code (PL/SQL) to update the approval timestamp in the
database and send an automated email notification to the requester.
- Benefit:
This single Dynamic Action declaratively manages multiple UI elements and
triggers server-side logic based on a user's selection. It significantly
improves user experience by presenting relevant fields only when needed and
automating backend processes instantly. The developer avoids writing manual
JavaScript for element visibility and AJAX calls for database updates and email
notifications.
- Case study 2:
Creating an interactive sales performance dashboard
- Scenario: A sales manager needs a dashboard to visualize sales
performance. The dashboard includes multiple charts (e.g., Sales by Region,
Sales by Product Category) and an Interactive Report displaying detailed sales
transactions. The manager needs to filter all components simultaneously by
"Sales Year" and "Sales Quarter" without full page reloads.
- Dynamic action
implementation:
- Event: Change on P1_SALES_YEAR and P1_SALES_QUARTER (two separate Dynamic Actions or one DA on both items with an
OR condition).
- True
actions:
- Refresh action targeting the "Sales by Region Chart" region.
- Refresh action targeting the "Sales by Product Category Chart"
region.
- Refresh action targeting the "Detailed Sales Report" Interactive
Report region.
- Benefit:
The declarative setup allows for seamless, real-time filtering of multiple data
visualizations and reports. Each chart and report automatically re-execute its
underlying SQL query, which references the P1_SALES_YEAR and P1_SALES_QUARTER items and refreshes only its
content via AJAX. This provides an immediate, highly responsive analytical
experience. Without Dynamic Actions, this would typically involve writing
custom JavaScript to capture filter changes, initiate multiple AJAX requests
and then manually parse and render data into each chart and report element,
which is a far more complex and error-prone undertaking.
- Case study 3:
Generating text with AI
- Scenario:
Generate Text with AI action generates text dynamically based on a
predefined input, using substitution strings or a combination of both. The
action then returns the generated text in a designated page item, such
as P1_RESPONSE, providing an easy and seamless way to present the
AI-generated content within the application. This functionality allows the
application to generate flexible and dynamic text tailored to the specific
needs of the application and user interaction.[25]
- Dynamic action
implementation:
- Event: Change on P1_PROMPT.
- True Actions:
- Generate Text with AI action targeting to update the AI response in
another field P1_RESPONSE.
- Service: Application default.
- Input Value Type: Item
- Item: Select P1_PROMPT
- Use Response Type: Item
- Item: Select P1_RESPONSE
- Benefit: The
declarative setup allows for seamless, real-time filtering of multiple data
visualizations and reports. Each chart and report automatically re-executes its
underlying SQL query, which references the P1_SALES_YEAR
and P1_SALES_QUARTER items and refreshes
only its content via AJAX. This provides an immediate, highly responsive
analytical experience. Without Dynamic Actions, this would typically involve
writing custom JavaScript to capture filter changes, initiate multiple AJAX
requests and then manually parse and render data into each chart and report
element, which is a far more complex and error-prone undertaking.
- Comparison:
Implementing cascading list of values (LOV)
- Problem: Populate a "City" dropdown based on the selection in a
"State" dropdown.
- Oracle APEX Dynamic
Action Approach:
- Configuration:
- Create a page item P1_STATE (Select List).
- Create a page item P1_CITY (Select List) with its LOV query referencing
P1_STATE (e.g.,
SELECT city_name d, city_id r FROM cities WHERE state_id = :P1_STATE).
- Create a Dynamic
Action:
- When:
Event: Change, Selection Type:
Item, Item:
P1_STATE.
- True Action: Action: Refresh, Affected Elements:
Item(s), Item:
P1_CITY.
- Code Reduction: Minimal to no explicit code. The declarative setup
within the APEX Builder handles event listening, AJAX requests, server-side
data fetching and client-side rendering.
- Traditional Web
Development (e.g., Vanilla JavaScript/jQuery with a simple backend):26
- HTML Structure:
- <select id="stateSelect">
- <!-- options
populated on page load -->
- </select>
- <select
id="citySelect"></select>
- JavaScript (jQuery
example):
$(document).ready(function() {
//
Initial load of states (assuming already present or fetched)
//
$('#stateSelect').append('<option
value="...">...</option>');
$('#stateSelect').on('change',
function() {
var
selectedStateId = $(this).val();
if
(selectedStateId) {
$.ajax({
url:
'/api/getCitiesByState', // Backend endpoint
method:
'GET',
data:
{ stateId: selectedStateId },
success:
function(response) {
var
citySelect = $('#citySelect');
citySelect.empty();
// Clear existing options
citySelect.append('<option
value="">-- Select City --</option>');
$.each(response.cities,
function(index, city) {
citySelect.append($('<option></option>')
.attr('value',
city.id)
.text(city.name));
});
},
error:
function(xhr, status, error) {
console.error('Error
fetching cities:', error);
//
Display user-friendly error message
}
});
}
else {
$('#citySelect').empty().append('<option
value="">-- Select City --</option>');
}
});
});
- Backend (e.g.,
Node.js/Python or PHP, connecting to a database):
# Python Flask example (conceptual)
from flask import Flask, request, jsonify
app = Flask(__name__)
@app.route('/api/getCitiesByState')
def get_cities_by_state():
state_id
= request.args.get('stateId')
#
Database query to fetch cities based on state_id
cities_from_db
= [
{'id':
101, 'name': 'City A'},
{'id':
102, 'name': 'City B'}
] #
Example data
return
jsonify({'cities': cities_from_db})
- Conclusion of comparison:
The traditional approach requires explicit HTML, a significant amount of
JavaScript for event handling, AJAX calls and DOM manipulation, plus
server-side code to handle the API endpoint and database interaction. The APEX
Dynamic Action achieves the same functionality with almost zero custom code,
abstracting away the complexities of the underlying web technologies. This
directly demonstrates the profound code reduction and accelerated development
capabilities offered by APEX's low-code framework.
8. Future Trends and
EvolutionThe landscape of low-code
development platforms and Oracle APEX within it, is continuously evolving,
driven by advancements in web technologies and the increasing demand for rapid
application delivery. Dynamic Actions are poised to play a crucial role in
leveraging these future trends.
- Integration with emerging
technologies:
- Artificial
Intelligence (AI) and Machine Learning (ML):
Dynamic Actions can facilitate the integration of AI/ML capabilities into APEX
applications by acting as declarative triggers for server-side processes that
interact with AI/ML models. For instance, a Dynamic Action could be configured
to fire on a Change event of a text area, sending its content to an external AI
sentiment analysis API (via APEX_WEB_SERVICE within an Execute Server-side Code
action) [27]. The returned sentiment score
could then be displayed instantly on the page using a Set Value action.
Similarly, a Dynamic Action could trigger an ML model hosted on Oracle Cloud
Infrastructure (OCI) to make predictions based on user input, with the results
dynamically updating charts or reports on the APEX page [28].
- Blockchain:
While direct client-side interaction with blockchain is complex, Dynamic
Actions can serve as the UI trigger for server-side PL/SQL procedures that
interact with blockchain networks. An Execute Server-side Code action could,
for example, initiate a transaction on a blockchain ledger (e.g., recording an
immutable audit trail) or retrieve data from a smart contract, with the results
being displayed back to the user through client-side actions. This allows APEX
applications to leverage the security and transparency of blockchain without
requiring deep cryptographic knowledge from the developer.
- Internet of things
(IoT): Dynamic Actions can enhance IoT applications built on APEX
by enabling real-time visualization and control. An APEX application could
consume data from IoT devices, stored in the Oracle Database and Dynamic
Actions could refresh charts or gauges on a dashboard at regular intervals
(e.g., using a Set Interval JavaScript action to periodically trigger a Refresh
action) to display live sensor readings or device status [29].
Furthermore, user actions (e.g., clicking a button) could trigger a Dynamic
Action that sends commands to IoT devices via server-side APIs, enabling remote
control from the APEX interface.
- Enhancements in
Future APEX Versions:
- More declarative
actions and richer component integration:
Oracle consistently enhances APEX with new features. Future versions may
introduce even more built-in declarative actions, reducing the need for Execute
JavaScript Code or Execute Server-side Code for increasingly complex scenarios.
This could include more advanced client-side charting manipulations, richer
drag-and-drop capabilities or direct integration with web components (e.g.,
custom HTML elements) that expose their own events, which Dynamic Actions can
seamlessly consume30.
- Improved performance
and optimization: Continued focus on client-side
rendering performance and AJAX optimization will likely see further refinements
in how Dynamic Actions process and manage events, potentially leading to even
faster and smoother user experiences, especially on resource-constrained
devices.
- Advanced debugging
and monitoring tools: As applications grow in
complexity, debugging interactive elements becomes crucial. Future APEX
releases might offer more sophisticated built-in debugging tools specifically
for Dynamic Actions, providing clearer insights into their execution flow, data
changes and potential bottlenecks, further simplifying the troubleshooting
process24.
- The role of dynamic
actions in the evolving low-code landscape:
- Dynamic Actions will continue to
be a cornerstone of APEX's value proposition in the burgeoning low-code
landscape. As businesses demand faster innovation and greater agility, the
ability to rapidly build interactive, data-driven applications with minimal
coding will remain paramount. Dynamic Actions enable citizen developers to take
on more complex tasks, freeing professional developers to focus on specialized
integrations and advanced solutions19.
Their declarative nature ensures that applications remain maintainable and
scalable, adapting to evolving business needs. The framework's flexibility,
allowing for "low-code" escape hatches when "no-code" isn't
enough, ensures its continued relevance for a wide spectrum of development
requirements, solidifying APEX's position as a powerful tool for modern
enterprise application development.
9. Conclusion
Oracle APEX Dynamic Actions
stand as a pivotal innovation within the low-code development
paradigm, fundamentally transforming how interactive web applications are
built. This paper has explored their architectural components, practical
applications and profound impact on the development lifecycle.
- Recap:
We have demonstrated that Dynamic Actions abstract the intricate complexities
of client-side JavaScript and asynchronous AJAX communication into a
declarative, wizard-driven framework. This allows developers to define
sophisticated event-driven behaviors-from real-time form validation and dynamic
UI adjustments to interactive reporting and external API integrations-with
unprecedented ease and efficiency. The core mechanism of When, True Actions,
False Actions and Affected Elements provides a powerful yet intuitive means to
control application interactivity.
- Reiterate importance:
Dynamic Actions are not merely a convenient feature; they are a cornerstone of
Oracle APEX's ability to deliver on its no-code/low-code promise. By empowering
developers to create rich user experiences without extensive imperative coding,
they significantly reduce development time and effort, minimize potential
errors and accelerate time-to-market for critical business applications. This
capability is crucial in today's rapidly evolving digital landscape, where
agility and responsiveness are key drivers of organizational success18.
- Key Takeaways:
The primary benefits derived from leveraging Dynamic Actions include:
- Accelerated
Development: Substantially reducing coding
effort and development cycles.
- Developer
Empowerment: Enabling citizen developers to
build interactive features, thus democratizing application creation and
fostering greater collaboration between business and IT6.
- Cost Efficiency:
Lowering development and maintenance costs due to reduced code complexity and
standardized implementation patterns.
- Enhanced User
Experience: Delivering highly responsive
and intuitive applications that provide immediate feedback and adapt
dynamically to user input, leading to increased user satisfaction and
productivity.
- Maintainability and
Consistency: Promoting standardized
approaches to UI behavior, resulting in more robust and easily manageable
applications.
- Future outlook:
As the low-code ecosystem continues to mature and integrate with emerging
technologies like AI/ML and IoT, Dynamic Actions are well-positioned to evolve
further, offering even more declarative capabilities and tighter integrations.
Their adaptable nature, providing both no-code simplicity and low-code
extensibility, ensures their continued relevance as an indispensable tool for
crafting modern, high-fidelity enterprise web applications within the Oracle
APEX framework. The future of application development is undeniably low-code
and Dynamic Actions are a testament to how intelligent platform design can
empower a broader community to build the applications of tomorrow19.
10.
Acknowledgment
The author thanks the Oracle
APEX community for their extensive documentation, forums and insightful blogs,
which provided foundational insights for this research. The author would also
like to disclose the use of the Grammarly (AI) tool solely for editing and
grammar enhancements.
11.
References
- Robal T, Reinsalu U,
Jürimägi L, et al. Introducing rapid web
application development with Oracle APEX to students of higher education. New
Trends in Computer Sciences, 2024;2: 69-80.
- Parimi SKK. Impact of Low-Code/No-Code Platforms.
Institute of Electrical and Electronics Engineers (IEEE), 2025.
- https://www.researchgate.net/publication/389634372_LowCode_and_NoCode_Platforms_Accelerating_Enterprise_Software_Development
- https://arxiv.org/abs/2112.14073
- Käss S, Strahringer S, Westner M. Practitioners'
perceptions on the adoption of low code development platforms. IEEE Access, 2023;11:
29009-29034.
- http://proxy.library.vcu.edu/login?url=https://www.proquest.com/conference-papers-proceedings/adoption-usability-low-code-no-development-tools/docview/2531366275/se-2
- Kvet M. Rapid Application Development
and data management using Oracle APEX and SQL. 2024 IEEE 22nd World Symposium
on Applied Machine Intelligence and Informatics (SAMI), Stará Lesná, Slovakia,
2024: 000297-000302.
- Schwinger W, Retschitzegger W, Kapsammer E, et al.
Getting Started with Low-Code - A Data-Centric Primer for Oracle APEX. 42nd
International Conference on Organizational Science Development, University of
Maribor, University Press, 2023: 1003-1016.
- da Silva PP. User Interface Declarative Models and
Development Environments: A Survey. Lecture Notes in Computer Science, Berlin,
Heidelberg: Springer Berlin Heidelberg, 2001: 207-226.
- https://docs.oracle.com/en/database/oracle/apex/24.2/htmdb/managing-dynamic-actions.html
- Abdul Razak SF, Phey Ernn Y, Yussoff FI, et al.
Enhancing Business Efficiency through Low-Code/No-Code Technology Adoption:
Insights from an Extended UTAUT Model. Journal of Human, Earth and Future, 2024;5:
85-99.
- Veeramachaneni V. Low-Code and No-Code Development:
Revolutionizing Software Engineering for Citizen Developers and Enterprises.
Neuroquantology, 2022;20: 5612-5617.
- https://medium.com/@Jeremydalee/the-evolution-of-web-development-from-static-pages-to-dynamic-experiences-ee36ac3c9054
- Lukkarinen
A, Malmi L, Haaranen L. Event-driven Programming in Programming Education. ACM
Transactions on Computing Education, 21: 1-31.
- https://docs.oracle.com/en/database/oracle/apex/24.2/htmdb/about-dynamic-action-support-for-calendar.html
- https://docs.oracle.com/en/database/oracle/apex/24.2/htmdb/creating-cascading-list-of-values.html
- https://diveintoapex.com/tag/rest/
- https://synodus.com/blog/low-code/low-code-agile/
- Simon P. Low-Code/No-Code: Citizen Developers and the
Surprising Future of Business Applications. Racket Publishing, 2022.
- Syed A. Performance Analysis of Oracle APEX
Applications in Multi-Tenant Cloud Environments. International Scientific
Journal of Engineering and Management, 2025;4: 1-9.
- https://medium.com/@tapasroger0/performance-optimization-techniques-for-modern-web-applications-85bce595b943
- https://www.oracle.com/application-development/low-code/
- https://content.dsp.co.uk/apex/client-side-validations
- https://www.rittmanmead.com/blog/2024/01/oracle-apex-dynamic-action-plugi-ins/
- https://blogs.oracle.com/apex/post/whats-new-in-apex-242-dynamic-action-generate-text-with-ai
- Pastierik I. Deploying Oracle Machine
Learning AutoML Models for Oracle APEX Analytics. 2024 IEEE 17th International
Scientific Conference on Informatics (Informatics), Poprad, Slovakia, 2024: 499-506.
- Okeke HE, Akinbolajo OD. Integrating AI and automation
into low-code development: Opportunities and challenges. International Journal
of Science and Research Archive, 2023;8: 1094-1109.
- Bagam N. Leveraging Cloud-Based Machine Learning for
Enterprise Solutions. International Journal of Enhanced Research in Management
& Computer Applications, 10: 202.
- Bento AC, Gatti DC, Galdino M. Results
About the Use of Oracle Application Express for IoT Projects. 2022 XII
International Conference on Virtual Campus (JICV), Arequipa, Peru, 2022: 1-5.
-
https://docs.oracle.com/cd/E23903_01/doc.41/e21674/advnc_dynamic_actions.htm#HTMDB27020