exa-Nico
Community Manager
Community Manager

Background

 In order for the Exasol Database to use a JDBC Driver in IMPORT or EXPORT commands, the JDBC Driver must support the following methods.

If the JDBC driver does not, you might get an error message like:

[42636] ETL-5402: JDBC-Client-Error: Exception while disconnecting: Method not supported (Session: 1484043015261801495)

Explanation

When IMPORTing data from JDBC sources, EXAloader requires that the following methods are implemented by the JDBC driver.

  • java.sql.Connection
    • void setAutoCommit(boolean autoCommit)
    • Statement createStatement()
    • PreparedStatement prepareStatement(String sql)
    • void rollback()
    • void close()
  • java.sql.Statement
    • void setFetchSize(int rows)
    • ResultSet executeQuery(String sql)
    • void close()
  • java.sql.PreparedStatement
    • ResultSetMetaData getMetaData()
  • java.sql.ResultSetMetaData
    • int getColumnCount()
    • int getColumnType(int column)
    • String getColumnName(int column)
  • java.sql.ResultSet
    • ResultSetMetaData getMetaData()
    • boolean next()
    • long getLong(int columnIndex)
    • double getDouble(int columnIndex)
    • BigDecimal getBigDecimal(int columnIndex)
    • String getString(int columnIndex)
    • Date getDate(int columnIndex)
    • Timestamp getTimestamp(int columnIndex)
    • Clob getClob(int columnIndex)
    • boolean getBoolean(int columnIndex)
    • boolean wasNull()
    • void close()

When EXPORTing data into JDBC sources, EXAloader requires that the following methods are implemented by the JDBC driver.

  • java.sql.Connection
    • void setAutoCommit(boolean autoCommit)
    • Statement createStatement()
    • PreparedStatement prepareStatement(String sql)
    • void rollback()
    • void commit()
    • void close()
  • java.sql.Statement
    • int[] executeBatch()
    • boolean execute(String sql)
    • void close()
  • java.sql.PreparedStatement
    • ParameterMetaData getParameterMetaData()
    • void setLong(int parameterIndex, long x)
    • void setDouble(int parameterIndex, double x)
    • void setString(int parameterIndex, String x)
    • void setDate(int parameterIndex, Date x)
    • void setTimestamp(int parameterIndex, Timestamp x)
    • void setBoolean(int parameterIndex, boolean x)
    • void setNull(int parameterIndex, int sqlType)
    • void addBatch()
  • java.sql.ParameterMetaData
    • int getParameterCount()
    • int getParameterType(int param)

In order to use a JDBC driver that doesn't support all required functions, you can write a wrapper for it; in that wrapper, you can e.g. suppress Exceptions or enhance the functionality of the JDBC driver in order to get it to work.

Additional References

Version history
Revision #:
1 of 1
Last update:
‎15-05-2020 01:01 PM
Updated by:
 
Contributors