[ 
https://issues.apache.org/jira/browse/IGNITE-1993?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15052722#comment-15052722
 ] 

Nikolay Tikhonov commented on IGNITE-1993:
------------------------------------------

I've tested your pull request on Oracle 12C. When table exists in database your 
changes are working well, but if table doesn't exist then 
TcpDiscoveryJdbcIpFinder tries to execute query ("create table if not 
exists...") and fails with the same error (SQLSyntaxErrorException: "ORA-00922: 
missing or invalid option"). Did you test this scenario? You can change jdbc 
driver for TcpDiscoveryJdbcIpFinderSelfTest and check the ip finder with Oracle.

I think that checking the metadata it's good idea, but it will not work without 
changes init query (CREATE_ADDRS_TABLE_QRY). I propose to implement both of 
these ideas.

Thoughts?

> JDBC discovery uses non-standard SQL when creating table (not compatible with 
> Oracle)
> -------------------------------------------------------------------------------------
>
>                 Key: IGNITE-1993
>                 URL: https://issues.apache.org/jira/browse/IGNITE-1993
>             Project: Ignite
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: ignite-1.4
>         Environment: Oracle database
>            Reporter: Nigel Westbury
>              Labels: easyfix, patch
>             Fix For: 1.4
>
>         Attachments: IGNITE1993.patch
>
>
> The SQL used by TcpDiscoveryJdbcIpFinder to create the table (defined by 
> CREATE_ADDRS_TABLE_QRY) uses 'if not exists' clause.  However this clause is 
> not supported by Oracle and causes SQLSyntaxErrorException: "ORA-00922: 
> missing or invalid option" to be thrown.  This prevents JDBC discovery from 
> being used with an Oracle database.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to