0

I am looking for a little bit of help here. We had a web-service defined and I created some new URI templates and these are working as expected as when I call them from the apex application they are returning the JSON object as expected. The problem is I was looking at the log files in Tomcat, we have a lot of entries for ORA-06564: object does not exist for all the new URI templates I created.

17-Sep-2018 00:09:48.199 SEVERE [ajp-apr-8009-exec-1]
oracle.dbtools.apex.Procedure.resolveNameNew ORA-06564: object XXX does not exist
ORA-06512: at "SYS.DBMS_UTILITY", line 156
ORA-06512: at line 1
java.sql.SQLException: ORA-06564: object XXX does not exist
ORA-06512: at "SYS.DBMS_UTILITY", line 156
ORA-06512: at line 1

I am just wondering if I have not defined something or I missed something in the ORDS configuration.

Does someone have some idea in regards?

Adrian P
  • 844
  • 8
  • 13
Diego
  • 1
  • 1
  • How is the application making the call to the database? Does any of the SQL executed by the application match up to the errors you're seeing in the log? It could be a number of things - might be trying to return objects that don't exist, might be trying to return objects that it doesn't have access to, etc. Would also recommend defining an exception handler to see what might be causing the issue. – 1991DBA Sep 18 '18 at 17:53
  • The application is making the call through a Talend Job that calls a RESTfull API. The SQL is executed correctly and I can find the data in the destination database. That is the strange thing..... – Diego Sep 19 '18 at 15:05
  • Is there a way for you to add an exception handler to that job? I've never used Talend, but I know that it's a database migration tool. If you can just isolate where/which part of your code isn't working as expected, it will be a big help in troubleshooting. The ORA-06512 is generic and only really tells you that there is an issue. Finding out where an issue occurs is the first step to finding out why it occurs. – 1991DBA Sep 20 '18 at 19:23
  • The problem is that an exception handler is already present in my Job, but the job itself is not causing any issue. I guess that the communication to the ORDS (Apex) through Talend goes well, and the error message is triggered when the ORDS communicate with the database... It seems like the user that execute the URI present in the Apex does not have some sort of grant... How can I check that the desired URI is granted for that user? – Diego Sep 21 '18 at 09:29
  • The ORA-06512 signifies that wherever the exception is occurring, it's not being picked up by the exception handler that's already present. It's possible that the application tries to run some queries when first connected, similar to what you might see with an application like Toad. I can't speak for your environment, but that might be a start. Your documentation should hopefully let you know if that application user needs additional privileges, but you may just need to work with a DBA to capture everything that user tries to run on connection to determine where the problem lies. – 1991DBA Sep 21 '18 at 13:39

1 Answers1

-1

ORA-06564: object does not exist, The named object could not be found. Either it does not exist or you do not have permission to access it.

Resolution: The database user that you were trying to access from the application does not have enough privilege's. Please execute the below grant to give permission to your database object.

GRANT EXECUTE ON "YOUR DB OBJECT" TO DBUSERID;