[ 
https://issues.apache.org/jira/browse/GROOVY-7105?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Pascal Schumacher closed GROOVY-7105.
-------------------------------------
    Resolution: Not A Problem

I'm closing this after Johns analysis. Thanks!

> Oracle Thin Driver Fails with an Exception in Groovy 2.3.x
> ----------------------------------------------------------
>
>                 Key: GROOVY-7105
>                 URL: https://issues.apache.org/jira/browse/GROOVY-7105
>             Project: Groovy
>          Issue Type: Bug
>          Components: groovy-jdk, SQL processing
>    Affects Versions: 2.3.0
>            Reporter: Charlie Hubbard
>            Priority: Blocker
>
> Trying to load the Oracle driver in Groovy fails with the following error:
> java.lang.NoClassDefFoundError: oracle/xdb/XMLType
>       at java_sql_Connection$getMetaData.call(Unknown Source)
>       at db_test.printMetaData(db_test.groovy:9)
>       at db_test.printMetaData(db_test.groovy)
>       at db_test$printMetaData$0.callCurrent(Unknown Source)
>       at db_test.run(db_test.groovy:45)
> Caused by: java.lang.ClassNotFoundException: oracle.xdb.XMLType
>       ... 5 more
> This works in Groovy 2.1.x.  This is loading the thin driver which doesn't 
> require extra libraries.  It appears that Groovy loads Oracle's OCI driver 
> which requires these additional jar files and fails.
> {code}
> import groovy.sql.Sql
> import java.sql.ResultSet
> import java.sql.DatabaseMetaData
> void printMetaData( Sql sql, catalog = null, schema = null ) {
>     try {
>         DatabaseMetaData metadata = sql.connection.getMetaData()
>         
>         ResultSet rs = metadata.getCatalogs()
>         while( rs.next() ) {
>            String catalogName = rs.getString("TABLE_CAT")
>            println("${catalogName}")
>         }
>         rs.close()
>         
>         rs = metadata.getSchemas()
>         while( rs.next() ) {
>            String catalogName = rs.getString("TABLE_CAT")
>            String schemaName = rs.getString("TABLE_SCHEM")
>            
>            println("${catalogName}.${schemaName}")
>         }
>         rs.close()
>         
>         def types = [ "TABLE" ]
>         rs = metadata.getTables( catalog, schema, null, types.toArray( new 
> String[types.size()]) )
>         while( rs.next() ) {
>            String catalogName = rs.getString("TABLE_CAT")
>            String schemaName = rs.getString("TABLE_SCHEM")
>            String tableName = rs.getString("TABLE_NAME")
>            println("${catalogName}.${schemaName}.${tableName}")
>         }
>         rs.close()
>     } finally {
>         sql.close()
>     }
> }
> oracle = Sql.newInstance("jdbc:oracle:thin:@//localhost:1521/PDB1", 
> "someUser", "somePassword", "oracle.jdbc.driver.OracleDriver")
> printMetaData( oracle )
> {code}



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

Reply via email to