title: org.hsqldb.HsqlException: data exception: invalid character value for cast
body: <p>I have a table in an HSQL database which has an identity(integer) column.  I'd like to support querying against the column using an arbitrary string(potentially non-numeric).  However, the HSQL JDBC driver tries to cast the query parameter to an integer and throws an exception.  The Oracle driver seems to support this case fine.</p>
  
  <p>Any ideas to alter this behavior in the hsql driver?</p>
  
  <p>org.hsqldb:hsqldb:2.3.0</p>
  
  <p>The table:</p>
  
  <pre><code>CREATE TABLE some_table(id IDENTITY NOT NULL);
  </code></pre>
  
  <p>The query:</p>
  
  <pre><code>final String query = "SELECT * FROM some_table WHERE id=?";
  
  String id = "abc";
  jdbcTemplate.query(query, new PreparedStatementSetter() {
      @Override
      public void setValues(PreparedStatement ps) throws SQLException {
          ps.setString(1, id);
      }
  }, someMapper);
  </code></pre>
  
  <p>The exception:</p>
  
  <pre><code>org.springframework.dao.DataIntegrityViolationException: PreparedStatementCallback; SQL [SELECT * FROM some_table WHERE id=?]; data exception: invalid character value for cast; nested exception is java.sql.SQLDataException: data exception: invalid character value for cast
      at org.springframework.jdbc.support.SQLExceptionSubclassTranslator.doTranslate(SQLExceptionSubclassTranslator.java:80)
      at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)
      at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
      at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:605)
      at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:639)
      at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:668)
      .
      .
      .
  Caused by: java.sql.SQLDataException: data exception: invalid character value for cast
      at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
      at org.hsqldb.jdbc.JDBCUtil.throwError(Unknown Source)
      at org.hsqldb.jdbc.JDBCPreparedStatement.setParameter(Unknown Source)
      at org.hsqldb.jdbc.JDBCPreparedStatement.setString(Unknown Source)
      at org.apache.commons.dbcp.DelegatingPreparedStatement.setString(DelegatingPreparedStatement.java:135)
      at org.apache.commons.dbcp.DelegatingPreparedStatement.setString(DelegatingPreparedStatement.java:135)
      at com.stackoverflow.SomeDao$2.setValues(SomeDao.java:39)
      at org.springframework.jdbc.core.JdbcTemplate$1.doInPreparedStatement(JdbcTemplate.java:644)
      at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:589)
      ... 33 more
  Caused by: org.hsqldb.HsqlException: data exception: invalid character value for cast
      at org.hsqldb.error.Error.error(Unknown Source)
      at org.hsqldb.error.Error.error(Unknown Source)
      at org.hsqldb.Scanner.convertToNumber(Unknown Source)
      at org.hsqldb.types.NumberType.convertToType(Unknown Source)
      ... 40 more
  </code></pre>