Storing files in Oracle XE with Oracle Application Express

If you are running Oracle APEX that comes with Oracle XE installation, chances are that you are still making use of Embedded PL/SQL gateway, which essentially uses Oracle XML DB HTTP component. In reality this means that all your files are stored in the database itself.

Simply dragging your files to the /images directory of apex will not have any effect as one would have hoped; frequent changes to your javascript files or images is quite common during development and therefore can be very annoying sometimes.

Oracle XML DB HTTP component is part of XDB protocol server that support the following protocols, FTP, WebDAV, and HTTP(S). By enabling FTP protocol, it allows developers instant access to the files stored in the database and all the changes made to the files are immediately noticeable in apex.

Do note that Oracle stated that

for security reasons, FTP is disabled, by default. This is because the IETF FTP protocol specification requires that passwords be transmitted in clear text.

Author Dietmar Aust wrote an instruction on how to enable ftp server in Oracle XE. The procedure is straightforward and easy to perform!

Ajin$ sqlplus system@xe
SQL> exec dbms_xdb.setftpport('2121');
SQL> alter system register;
SQL> exit

You can use your favorite FTP client such as Transmit to access the ftp server. Enter the port 2121 of the server into the port field of the ftp client. The server’s FTP credentials are the same as those for SQL*Plus. Now simply drag the files to the /i/ directory. Once all the files are uploaded they will be visible on installed apex web address.

  • Oracle. "Accessing the Repository using Protocols" Oracle XML DB Developer's Guide. N.p.: Oracle, 2014. 28-9. Print. 11g Release 2 (11.2).
  • Aust, D. "Where Are the /images of Application Express in OracleXE?" Web log post. Where Are the /images of Application Express in OracleXE? N.p., 16 Mar. 2006. Web. 09 Oct. 2014. <http://daust.blogspot.nl/2006/03/where-are-images-of-application.html>.