You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-user@db.apache.org by Jeremiah Jahn <je...@goodinassociates.com> on 2005/02/07 23:51:51 UTC
setNull on prepared statement not working?
Am I on crack or shouldn't this work?
insertPreparedStatement.setNull(5,Types.NULL); where column is a
timestamp column.
This is with the latest official release(10.0.2.1). running on java 5
and linux.
SQL Exception: An attempt was made to get a data value of type 'TIMESTAMP' from a data value of type '0'.
at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java)
at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java)
at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Util.java)
at org.apache.derby.impl.jdbc.EmbedConnection.newSQLException(EmbedConnection.java)
at org.apache.derby.impl.jdbc.ConnectionChild.newSQLException(ConnectionChild.java)
at org.apache.derby.impl.jdbc.EmbedPreparedStatement.dataTypeConversion(EmbedPreparedStatement.java)
at org.apache.derby.impl.jdbc.EmbedPreparedStatement.setNull(EmbedPreparedStatement.java)
at com.goodinassociates.evidencetracking.functionaltests.DatabaseTestHelper.prepareEventTable(DatabaseTestHelper.java:383)
at com.goodinassociates.evidencetracking.functionaltests.DatabaseTestHelper.prepareCaseEvidenceTable(DatabaseTestHelper.java:500)
at com.goodinassociates.evidencetracking.main.MainControllerTest.testMain(MainControllerTest.java:40)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:421)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:305)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:186)
Be different: conform.
Re: setNull on prepared statement not working?
Posted by Kathey Marsden <km...@sbcglobal.net>.
Jeremiah Jahn wrote:
>shouldn't this work?
>
> insertPreparedStatement.setNull(5,Types.NULL); where column is a
>timestamp column.
>
>
You would want to do it like this:
insertPreparedStatement.setNull(5,Types.TIMESTAMP);
The type should be the type of the column.
Kathey
Re: setNull on prepared statement not working?
Posted by Mamta Satoor <ma...@Remulak.Net>.
>From a quick look at what you have posted, your setNull should look like following
insertPreparedStatement.setNull(5,Types.TIMESTAMP).
If you look at java.sql.Types, you will see that Types.NULL is int 0 under the covers
and the error you are getting is because Derby is trying to extract TIMESTAMP value
from 0.
Mamta
Jeremiah Jahn wrote:
> Am I on crack or shouldn't this work?
>
> insertPreparedStatement.setNull(5,Types.NULL); where column is a
> timestamp column.
>
> This is with the latest official release(10.0.2.1). running on java 5
> and linux.
>
> SQL Exception: An attempt was made to get a data value of type 'TIMESTAMP' from a data value of type '0'.
> at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java)
> at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java)
> at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Util.java)
> at org.apache.derby.impl.jdbc.EmbedConnection.newSQLException(EmbedConnection.java)
> at org.apache.derby.impl.jdbc.ConnectionChild.newSQLException(ConnectionChild.java)
> at org.apache.derby.impl.jdbc.EmbedPreparedStatement.dataTypeConversion(EmbedPreparedStatement.java)
> at org.apache.derby.impl.jdbc.EmbedPreparedStatement.setNull(EmbedPreparedStatement.java)
> at com.goodinassociates.evidencetracking.functionaltests.DatabaseTestHelper.prepareEventTable(DatabaseTestHelper.java:383)
> at com.goodinassociates.evidencetracking.functionaltests.DatabaseTestHelper.prepareCaseEvidenceTable(DatabaseTestHelper.java:500)
> at com.goodinassociates.evidencetracking.main.MainControllerTest.testMain(MainControllerTest.java:40)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at junit.framework.TestCase.runTest(TestCase.java:154)
> at junit.framework.TestCase.runBare(TestCase.java:127)
> at junit.framework.TestResult$1.protect(TestResult.java:106)
> at junit.framework.TestResult.runProtected(TestResult.java:124)
> at junit.framework.TestResult.run(TestResult.java:109)
> at junit.framework.TestCase.run(TestCase.java:118)
> at junit.framework.TestSuite.runTest(TestSuite.java:208)
> at junit.framework.TestSuite.run(TestSuite.java:203)
> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:421)
> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:305)
> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:186)
>
> Be different: conform.
>
> ------------------------------------------------------------------------------------------------------------------------
> Name: signature.asc
> signature.asc Type: application/pgp-signature
> Description: This is a digitally signed message part
Re: setNull on prepared statement not working?
Posted by Jeremiah Jahn <je...@goodinassociates.com>.
It was the crack then...! I guess postgres and the as400 are just more
forgiving.... thanx for the help.
-jj-
On Mon, 2005-02-07 at 15:11 -0800, Sunitha Kambhampati wrote:
> Jeremiah Jahn wrote:
>
> > insertPreparedStatement.setNull(5,Types.NULL); where column is a
> >timestamp column.
> >
> >This is with the latest official release(10.0.2.1). running on java 5
> >and linux.
> >
> >
> Actually, if you are trying to set null on a column with type timestamp
> , I think it should be
>
> insertPreparedStatement.setNull(5,Types.TIMESTAMP);
>
> http://java.sun.com/j2se/1.4.2/docs/api/java/sql/PreparedStatement.html#setNull(int,%20int)
>
> Hope this helps,
> Sunitha.
>
>
>
>
The truth is what is; what should be is a dirty lie. -- Lenny Bruce
Re: setNull on prepared statement not working?
Posted by Sunitha Kambhampati <ks...@gmail.com>.
Jeremiah Jahn wrote:
> insertPreparedStatement.setNull(5,Types.NULL); where column is a
>timestamp column.
>
>This is with the latest official release(10.0.2.1). running on java 5
>and linux.
>
>
Actually, if you are trying to set null on a column with type timestamp
, I think it should be
insertPreparedStatement.setNull(5,Types.TIMESTAMP);
http://java.sun.com/j2se/1.4.2/docs/api/java/sql/PreparedStatement.html#setNull(int,%20int)
Hope this helps,
Sunitha.