Replacing mod_plsql with Oracle Rest Data Services - oracle

We are in the process of upgrading an application running on Oracle 10g and oracle HTTP server to Oracle 12C.
Due to mod pl/sql being deprecated we have chosen following combination.
oracle 12c + ORDS 3.0 and tomcat. (we are not using APEX)
A major functionality of our application is uploading files via website to the documents table in the database schema.
While doing that we are getting error "500 Internal Server Error" which has been experienced by others on this link https://community.oracle.com/thread/3891751
If anyone has got a sucessfull file upload into Documents table via Oracle Rest Data Services config I would like to know.

As far as I could prove, it is not possible to upload files with ORDS without having APEX installed. You will have to install APEX even if you do not use it in your application.
You can try another gateway but most are deprecated, I have started to develop one in Java without APEX dependencies. When I have it ready I will publish it in github.

You might want to have a look at the latest ORDS release as explained my own question related to this topic:
File uploads in a non-Apex PL/SQL application migrated to ORDS

Related

Sql Script file (apex_epg_config.sql) is missing in Oracle Apex 20.2

I have Oracle Apex 20.1 Installed on Oracle Linux 6.10 Server with Oracle Database 12.2. Recently I am trying to update into Apex 20.2 but this script file (apex_epg_config.sql) is missing in zip folder.
When I load the site then giving me this error:
There is a problem with your environment because the Application Express files are not up-to-date! The
files for version 20.1.0.00.13 have been loaded, but 20.2.0.00.20 is expected. Please verify that you
have copied the images directory to your application server as instructed in the Installation Guide.
How to solve this error?
The embedded PL/SQL Gateway (EPG) along with mod_plsql are no longer supported for Oracle APEX. This deprecation was announced in APEX 20.1.
Oracle REST Data Services (ORDS) is the only supported and documented Web listener for APEX. The configuration instructions are here. ORDS includes an embedded Web server, so in addition to being supported with Apache Tomcat and WebLogic Server, you can also run ORDS standalone.
I had the same problem after upgrading from APEX 18.2 to 20.2. I solved the problem by not executing this script. It seems that it isn't needed any longer. Update succeeded without running this script.
Attention: There is a pitfall: After upgrading you must clear your browser cache (only images). When I cleared the browser cache, the error message disappeared.

Can the installation of Oracle APEX on LINUX be accomplished if Oracle DB resides on separate system?

Wonder if this can be achieved. Install Oracle APEX onto a Linux VM and have Oracle DB residing on a separate server to point to it. Is it possible to install Oracle APEX without Oracle currently installed on the same box? Can't find any documentation on the Oracle site for this setup.
No. Application Express (APEX) runs out of the database itself. APEX is a collection of PL/SQL packages and tables.
Now the web tier could most definitely be moved to another machine (linux even). That would be something like Oracle REST Data Services and Apache Tomcat.

Unable to connect to Oracle using SSMA for Oracle

I'm trying use Microsoft SSMA for Oracle to migrate a database onto Azure SQL, but I can't get it going. I've double checked the server name, server port, Oracle SID, password... everything. No matter the type of entry screen I use, I can't get it to connect to the on-premise Oracle instance.
I'm pretty sure the login information is all correct, and I should have a working connector to Oracle since I connect to it from TOAD on a daily basis. I tried installing Oracle libraries per previous posts but not sure if I did it successfully because the issues still remains.
What are the troubleshooting steps I should take in order to make this work?
Log in screen:
      
Error 1:
Unable to find specified provider.
Compatible Oracle Data Access Connectivity libraries were not found on the machine. You can install them from Oracle product media or download it from Oracle web site.
Error 2:
Connection to Oracle failed.
ORA-01017: invalid username/password; logon denied
Error 3:
Connection to Oracle failed.
Network Naming: No LDAP server detected or configured
After a few more days of debugging, I was finally able to get SSMA to work. This answer helps to document my solution for personal use, as well as hopefully answer anyone else's question in the future.
After looking at the list of prerequisites to have SSMA running, I saw that I needed to have a correct Oracle client running. After some internal discussion, it was likely that the Oracle client SSMA needed was different than the one my computer already had for TOAD. The .Net provider for the TOAD connectors was probably not useful for SSMA.
We run Oracle 11g but I had to install Oracle 12c because 11g did not support Windows 10 apparently. Not too much of a roadblock here.
I found this guide to install Oracle client 12c pretty helpful. Shoutout to my alma mater.
Unfortunately the installer kept freezer, but using this former post, I was able to bypass it with the windows command:
setup.exe -ignoreprereq -J"-Doracle.install.client.validate.clientSupportedOSCheck=false"
After that, I saw different error messages when trying to connect SSMA. I kept trying different options with my logins until it worked. Provider: OLEDB Provider, Mode: Standard.
After being granted the appropriate permissions, I was finally able to access our internal tables and objects.
It was a pretty annoying question with a lot of rabbit holes along the way, but it was definitely worth it, being able to translate all our Oracle schemas to Azure SQL with a few clicks. Hope this helps!
Make sure to validate all steps mentioned below before going to install Microsoft SQL Server Migration Assistant for Oracle.
Make sure you have already installed SQL Server instance that will host the migrated database. Also keep in mind that you are not installing SQL Server Express edition to host the migrated database.
You must have sysadmin account to install SQL Server Migration Assistant for Oracle.
Make sure to install SSMA for Oracle on the server that will host newly migrated database on SQL Server.
It is recommended to install Oracle client software on your target system where SQL Server Instance is running.
Make sure your windows server has Microsoft Windows Installer 3.1 or a later version. Port 1434 should be open.
For more details, You can reference: How to Install SSMA for Oracle to Migrate Oracle Database to SQL Server.
Here's the Azure Database Migration Guide: Migrate Oracle to Azure SQL Database. As you prepare for migrating to the cloud, verify that your source environment is supported and that you have addressed any prerequisites. This will help to ensure an efficient and successful migration.
Connect to Oracle with Oracle Client Provider.
Azure also has other way can help you migrate Oracle database to Azure SQL database, such as with Azure Data Factory. If you still has the connect error. I think you can try to use it. Please reference this tutorial: Copy data from and to Oracle by using Azure Data Factory.
Hope this helps.

CloudFoundry UAA with Oracle DB

The supported databases listed in the UAA documentation seem to be MySQL, PostgresSQL and HSQL.
I noticed this pull request from 2013 which provided Oracle DB support for UAA - https://github.com/cloudfoundry/uaa/pull/39 but am unable to find any documentation related to UAA with Oracle DB
Has anyone used UAA with an Oracle DB ?
We currently do not support Oracle. We picked three open source databases for this open source project to stick with and that way have somewhat manageable CI pipelines.
We would however consider contribution if there was a willingness to maintain it.

Can OracleXE's APEX access another Oracle Database (10g) on the same Server, or is it Restricted to those Users/Tablespaces in the XE Database?

My work uses Oracle 10G and is planning on installing Apex. In the meantime, I have downloaded Oracle XE and have taught myself APEX on it; however, I can only access users/tablespaces that I have made in the XE database. What I would like to do is use the XE's Apex to access the users/tablespaces in the production databases of my work.
My colleague says that this should be possible because my workstation is connected to the server, and that there should be a way to configure access from my XE's Apex to the 10g's databases, such as by setting up an appropriate DAD.
I see nothing in the Apex user interface to allow this. I've read every word of the Apex documentation but nothing registered.
XE uses the embedded PL/SQL gateway, as opposed to 10/11G which uses either an Apex Listener or an HTTP Server with the mod_plsql plugin.
Thank you,
Matthew Moisen
I have done this before where we didn't have access to the actual database hosting the data to be worked with save for the standard port 1521 listener access. Apex at the time was new enough to the organization that the DBA's also had a voodoo taboo on using their database server as a webserver gateway as well. You can use your database instance with APEX installed as a "middle tier" or app server with the following steps:
Set up an account on your 10g database that is accessible remotely via dblink.
Set up dblinks to your 10g database table on your workstation with XE installed, use the account and connection information for the 10g database as set up in (1). Note, you may have to update a TNS names file or explicitly indicate your host/networking settings within the dblink itself.
For simple sanity and simplicity in coding your apex projects, set up synonyms for all your dblinked objects (i.e., table1 for table1#dblink) so you're not referencing the dblinks directly in your apex code. Making changes later will be easier if you adhere to this.
That's it. One proviso is that you need to know that LOBs will not work with the out-of-the-box functionality of APEX driven DML operations while using dblinks. This may have changed with the newest version. One workaround you may consider is trying to use a stored procedure which passes your LOB data as a input parameter which will do your DML operation for you.
Otherwise, this approach works nicely. The place where I implemented this model has several production level apps, a test and a development tier all using servers hosting APEX separately from the actual data sources. We used Oracle Standard Edition One (for the support), but Oracle XE should work as well since APEX is the platform in common between either Oracle version.

Resources