Switching 'Database type' from Oracle 11g to Oracle 12c can cause errors — Oracle Analytics

Oracle Analytics Cloud and Server

Welcome to the Oracle Analytics Community: Please complete your User Profile and upload your Profile Picture

Switching 'Database type' from Oracle 11g to Oracle 12c can cause errors

Received Response
21
Views
6
Comments
Mark.Thompson
Mark.Thompson Rank 6 - Analytics Lead

I am working with an OBIEE system in which there is a column named GROUP (an Oracle reserved word), and in which there are tables in the physical layer with spaces in the names (no, not aliases, actual database tables).  When I began working with this OBIEE system, the 'Database type' was 'Oracle 11g', and it ran fine.  I could run a 'View Data' on the GROUP column, and on the physical layer table that had spaces in the name.

In the database object in the physical layer, I changed the 'Database type' to 'Oracle 12c', and immediately I could not perform a View Data on the GROUP column, nor on the physical layer table with spaces in the name.  The error says:  ORA-00936: missing expression. It now seems to want double-quotes around the reserved object name, and around the table name with spaces.  But here's the weird part:  If I switch back to the Oracle 11g database type, it still fails with the same message.  There doesn’t seem to be a way to make it work again, short of actually putting double-quotes around the appropriate object names in the physical layer, or falling back to a backup copy of the rpd.

Again, the error will be triggered immediately upon switching to Oracle 12c as the database type, and it will remain an error even if I immediately switch it back to Oracle 11g, even before saving the repository.

Has anyone else seen this behavior?

Answers

  • Hi Mark,

    Do you still have a copy of the RPD with the old "11g" database before you changed it?

    I would say you maybe changed some database features (properties of the DB object in the RPD, the "features" tab) to make the 11g work fine, and when you changed to 12c you got the default 12c database features. When you then revert back to 11g you get again the default 11g features, this can explain why it doesn't work anymore.

    So ideally you may want to look into a old working RPD (using the "11g" db) and compare the database features with the ones of the new "12c" and you maybe find one or few which were set to allow that.

  • I guess that's your thing.

    Capture.PNG

    By default both 11g and 12c database types will set the "IDENTIFIER_QUOTE_CHAR" to empty (the default value), but I had a RPD around where in 11g it was set to double quote. The name sounds interesting and can be the one you look for. Check the value of this one in your old working RPD and then set the same value in the RPD once you change the database type (any change revert back to defaults, so you need to set it every time you change the type).

  • Mark.Thompson
    Mark.Thompson Rank 6 - Analytics Lead

    Gianni, you are exactly right.  I had looked at the database properties yesterday, and I just missed that property.  It seems so obvious.  THANK YOU!

  • Database properties are ... easy to miss : too many and not the simplest to manage ...

    So you can maybe close the thread if you solved, by marking if required, for others having the same/similar question? Right now it's stilll This question is Not Answered.

  • Mark.Thompson
    Mark.Thompson Rank 6 - Analytics Lead

    It appears (in this undocumented system) that the problem was observed and fixed using that double quote.  However, I do notice that I need to set the double-quote AND change the database type back to Oracle 11g.  Setting the double-quote and leaving the database type set to 12c still throws an error.  So, there may be something else in the properties.  I will check.  But in the meanwhile, we are up and running again. 

    i do not see the 'Mark as Correct' button.  I will give you your proper acknowledgement once I find it.

  • Mark.Thompson
    Mark.Thompson Rank 6 - Analytics Lead

    I would love to close the thread and give you the appropriate credit.  The 'Mark as Correct' button is simply not here.