سؤال

this is the document link: "Mapping SQL and Java Types"

let's see 8.9.3 JDBC Types Mapped to Java Object Types at row: TIMESTAMP - java.sql.Timestamp

but when I use getObject() with oracle database on a TIMESTAMP column, the return type is oracle.sql.TIMESTAMP, it can not been cast to java.sql.Timestamp

I know that I can use getTimestamp() but I need getObject() for handling any resultset regardless of types.

Is the document wrong or me?

هل كانت مفيدة؟

المحلول

The document is correct, the Oracle JDBC driver is the problem.

There's 2 possible solutions:

First one, use getObject:

oracle.sql.TIMESTAMP ts = (oracle.sql.TIMESTAMP) res.getObject("last_update");
agent.setLastUpdate(new Date(ts.dateValue().getTime()));

The second is to add a VM argument to your app:

-Doracle.jdbc.J2EE13Compliant=true

This will make the driver return java.sql.Timestamp instead of oracle.sql.TIMESTAMP.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top