Oracle 12C Table Properties -> java.sql.SQLSyntaxErrorException: ORA-00904: "T"."INMEMORY": invalid identifier
svn# 55445 - This was caused because the in memory feature was released in 12.2. The code was checking for 12.0 and greater which caused the in memory clause to be added to the extraction query for release 12.0. That column was not available in 12.0 so the query errored. Supporting Oracle documentation
Hi All,
I think we should not fix this exception. Please find the below details for why I think so:
Oracle In-memory was first introduce in 12.1.0.2.0. Before that one patch was provided by Oracle i.e. 12.1.0.1.0 which does not include this feature. This feature is then included in the subsequent releases i.e. 12.2.0.1.0.
Current ADS does not differentiate between the different patches provided by DB vendors which means 12.1.0.1.0 & 12.1.0.2.0 will be treated same by ADS and we code according to the latest patch considering that customer is using the latest patch.
The support for In-memory was added to ADS in VA#9627. While adding support we added it for all the versions of Oracle released after 12.1.0.1.0 though the feature is introduce in 12.1.0.2.0. For this we modified the current SQL according to 12.1.0.2.0. This is the reason an exception is being thrown for 12.1.0.1.0 since the SQL fails to execute for 12.1.0.1.0.
The fix added in this issue here moves the supports for In-memory feature for the version 12.2.x.x.x from 12.1.x.x.x which I don't see completely correct since 12.1.0.2.0 supports this feature. Please refer the very first para on PDF-page#6(doc page#1) of this documentation.
Can we revisit this issue one more time?
Hi All,
I think we should not fix this exception. Please find the below details for why I think so:
Oracle In-memory was first introduce in 12.1.0.2.0. Before that one patch was provided by Oracle i.e. 12.1.0.1.0 which does not include this feature. This feature is then included in the subsequent releases i.e. 12.2.0.1.0.
Current ADS does not differentiate between the different patches provided by DB vendors which means 12.1.0.1.0 & 12.1.0.2.0 will be treated same by ADS and we code according to the latest patch considering that customer is using the latest patch.
The support for In-memory was added to ADS in VA#9627. While adding support we added it for all the versions of Oracle released after 12.1.0.1.0 though the feature is introduce in 12.1.0.2.0. For this we modified the current SQL according to 12.1.0.2.0. This is the reason an exception is being thrown for 12.1.0.1.0 since the SQL fails to execute for 12.1.0.1.0.
The fix added in this issue here moves the supports for In-memory feature for the version 12.2.x.x.x from 12.1.x.x.x which I don't see completely correct since 12.1.0.2.0 supports this feature. Please refer the very first para on PDF-page#6(doc page#1) of this documentation.
Can we revisit this issue one more time?
Hi Ajinkya,
You are correct that the inmemory feature was released in 12.1.0.2.0. Unfortunately, our version comparison resolution only lets us compare major and minor version. The metadata revision is going to be zero so the only real way to get the patch level is to translate the metadata product version. This is probably reliable for Oracle but I would not want to count on it. That said, not fixing the issue throws an exception for any release of 12.1 that doesn't have inmemory. Throwing an exception is not acceptable in this case. I think providing inmemory support from 12.2 forward is an acceptable solution.
Hope that helps, Tom
Hi Ajinkya,
You are correct that the inmemory feature was released in 12.1.0.2.0. Unfortunately, our version comparison resolution only lets us compare major and minor version. The metadata revision is going to be zero so the only real way to get the patch level is to translate the metadata product version. This is probably reliable for Oracle but I would not want to count on it. That said, not fixing the issue throws an exception for any release of 12.1 that doesn't have inmemory. Throwing an exception is not acceptable in this case. I think providing inmemory support from 12.2 forward is an acceptable solution.
Hope that helps, Tom
@nhilam:
This issue is verified and tested on Aqua Data Studio 19.0 - 42 build. There are no errors in the 'View Log' window after opening table properties.
Screenshot: https://www.screencast.com/t/JQET6ANvrjHJ
@nhilam:
This issue is verified and tested on Aqua Data Studio 19.0 - 42 build. There are no errors in the 'View Log' window after opening table properties.
Screenshot: https://www.screencast.com/t/JQET6ANvrjHJ
Verified on ADS 19-beta-46
Yurii please Close.
Verified on ADS 19-beta-46
Yurii please Close.
Issue #15434 |
Closed |
Fixed |
Resolved |
Completion |
No due date |
Fixed Build ADS 19.0.0-beta-38 |
No time estimate |
svn# 55445 - This was caused because the in memory feature was released in 12.2. The code was checking for 12.0 and greater which caused the in memory clause to be added to the extraction query for release 12.0. That column was not available in 12.0 so the query errored. Supporting Oracle documentation