Ниже приведено исключение только при попытке использовать JBoss JNDI (пул соединений) для вставки / обновления записи, когда выборка работает нормально.
Причина: java.sql.SQLException: недопустимый тип столбца в oracle.jdbc.driver.OraclePreparedStatement.setObjectCritical (OraclePreparedStatement.java:10495) в oracle.jdbc.driver.Oternpatate.OrentStatePratePrepapapa.java: 9974) в oracle.jdbc.driver.OraclePreparedStatementWrapper.java:241) в org.jboss.jca.adapters.jdbc.WrappedPreparedStatement.setObject (WrappedPreparedStatement.java:1064) в com.test.PkgTracker.startTracker * (PkgTracker. 1006 * 100) 67*
ObjTracker.java
private static int[] _sqlType = { oracle.jdbc.OracleTypes.NUMBER, oracle.jdbc.OracleTypes.TIMESTAMP,
oracle.jdbc.OracleTypes.VARCHAR, oracle.jdbc.OracleTypes.VARCHAR, oracle.jdbc.OracleTypes.VARCHAR,
oracle.jdbc.OracleTypes.VARCHAR, oracle.jdbc.OracleTypes.VARCHAR, oracle.jdbc.OracleTypes.VARCHAR,
oracle.jdbc.OracleTypes.VARCHAR, oracle.jdbc.OracleTypes.VARCHAR, oracle.jdbc.OracleTypes.VARCHAR,
oracle.jdbc.OracleTypes.VARCHAR, oracle.jdbc.OracleTypes.VARCHAR, oracle.jdbc.OracleTypes.VARCHAR,
oracle.jdbc.OracleTypes.VARCHAR, oracle.jdbc.OracleTypes.TIMESTAMP, oracle.jdbc.OracleTypes.TIMESTAMP,
oracle.jdbc.OracleTypes.TIMESTAMP, oracle.jdbc.OracleTypes.TIMESTAMP, oracle.jdbc.OracleTypes.NUMBER,
oracle.jdbc.OracleTypes.NUMBER, oracle.jdbc.OracleTypes.VARCHAR, oracle.jdbc.OracleTypes.NUMBER,oracle.jdbc.OracleTypes.NUMBER, oracle.jdbc.OracleTypes.VARCHAR, oracle.jdbc.OracleTypes.VARCHAR,java.sql.Types.CLOB, java.sql.Types.CLOB, oracle.jdbc.OracleTypes.NUMBER, oracle.jdbc.OracleTypes.VARCHAR,oracle.jdbc.OracleTypes.TIMESTAMP };
private static ORADataFactory[] _factory = new ORADataFactory[31];
MutableStruct _struct = new MutableStruct(new Object[31], _sqlType, _factory);
позже _struct используется для установки / получения атрибутов объекта VO.
Исправление:
Это из-за oracle.jdbc.OracleTypes.TIMESTAMP где тип имеет только дату.Хотя все другие типы данных могут гибко конвертировать между Number / BigDecimal / Long, но Date и Timestamp нет.