Cuando ejecutamos procedimientos muy pesados en Oracle APEX, en algunas ocasiones dependiendo el tiempo de ejecución del procedimiento, se nos puede presentar un error como el siguiente:

Al mismo tiempo, este error también puede mostrar un mensaje como el siguiente durante la ejecución del procedimiento en la interfaz gráfica de Oracle APEX:

Solución:
Este error se debe a que el ORDS tiene un parámetro llamado jdbc.statementTimeout este parámetro por default tiene un valor de 900 segundos y especifica cuánto tiempo puede permanecer una conexión prestada (en uso) antes de que se considere abandonada y se reclame, si el procedimiento que ejecutamos es demasiado pesado, se superará el tiempo y esto hará que se muestre el error 504 gateway time-out.
Es por ello que debemos aumentar ese valor de 900 segundos a un valor mayor.
Para implementar la solución del error, debemos ir al archivo default.xml dentro de la ruta de instalación del ORDS y añadir la siguiente entrada:
<entry key="jdbc.statementTimeout">5000</entry>
En este caso lo aumentaremos a 5000, sin embargo, dependiendo el peso y tiempo de duración del proceso, este valor puede variar.
De manera que se vea así:

Se debe reiniciar el ORDS para que los cambios se apliquen.
Adicionalmente, en caso de que el ORDS esté desplegado en un Tomcat server o algún otro application server, sería bueno revisar la configuración de time out del servidor, ya que es posible que eso este bloqueando la ejecución de la sentencia y no sea un tema únicamente de la configuración del ORDS sino también del application server.
Nota: Para mayor información sobre este y otros parámetros del ORDS puede consultar el siguiente URL:
https://docs.oracle.com/database/ords-17.3/AELIG/about-REST-configuration-files.htm#AELIG7203