View Single Post

   
  #3 (permalink)  
Old 04-08-2008, 06:18 PM
John Smith
 
Posts: n/a
Default Re: Out of Memory / There is already an object named "X" in the database.

Mark Parsons wrote:
> Find the section of code that creates the FIXING table, then work back from
> that to see if/where the FIXING table should be dropped (or perhaps you
> don't need to create the FIXING table? perhaps just truncate it?)


code that creates the FIXING table:
String lsTempQuery2 =
"SELECT DISTINCT AC, AL, IL, DATE" +
"INTO tempdb..FIXING " +
"FROM F_DB " +
"WHERE M_FXNG_VALUE <> 0 " +
// "AND DATE= \"2/2/2006 12:00:00.000 AM\" " +
"ORDER BY AC ";

which gives the
com.sybase.jdbc2.jdbc.SybBatchUpdateException: JZ0BE:
BatchUpdateException: Error occurred while executing batch statement:
There is already an object named 'FIXING' in the database.

at
com.sybase.jdbc2.jdbc.ErrorMessage.raiseBatchUpdat eException(ErrorMessage.java:698)
at
com.sybase.jdbc2.jdbc.SybStatement.batchLoop(SybSt atement.java:1330)
at
com.sybase.jdbc2.jdbc.SybStatement.sendBatch(SybSt atement.java:1139)
at
com.sybase.jdbc2.jdbc.SybStatement.executeBatch(Sy bStatement.java:1099)
at
com.sybase.jdbc2.jdbc.SybStatement.executeBatch(Sy bStatement.java:950)
at prc1.main(prc1.java:79)
com.sybase.jdbc2.jdbc.SybBatchUpdateException: JZ0BE:
BatchUpdateException: Error occurred while executing batch statement:
There is already an object named 'FIXING' in the database.

at
com.sybase.jdbc2.jdbc.ErrorMessage.raiseBatchUpdat eException(ErrorMessage.java:698)
at
com.sybase.jdbc2.jdbc.SybStatement.batchLoop(SybSt atement.java:1330)
at
com.sybase.jdbc2.jdbc.SybStatement.sendBatch(SybSt atement.java:1139)
at
com.sybase.jdbc2.jdbc.SybStatement.executeBatch(Sy bStatement.java:1099)
at
com.sybase.jdbc2.jdbc.SybStatement.executeBatch(Sy bStatement.java:950)
at prc1.main(prc1.java:94)

I have tried

String lsTempQuery1 =
"DROP TABLE tempdb..TMP_TABLE , tempdb..XY, tempdb..FIXING";

// ....

loStatement.addBatch( lsTempQuery1 );
loStatement.addBatch( lsTempQuery2 );
loStatement.addBatch( lsTempQuery3 );
loStatement.addBatch( lsTempQuery4 );

loStatement.executeBatch();
loStatement.clearBatch();

but my program simply hangs with no output. I don't see how the "DROP
TABLE" line (i.e. lsTempQuery1 ) can cause my program to hang.

question #3)
uncommenting the DATE line gives:
com.sybase.jdbc2.jdbc.SybBatchUpdateException: JZ0BE:
BatchUpdateException: Error occurred while executing batch statement:
Invalid column name '2/2/2006 12:00:00.000 AM'.

at
com.sybase.jdbc2.jdbc.ErrorMessage.raiseBatchUpdat eException(ErrorMessage.java:698)
at
com.sybase.jdbc2.jdbc.SybStatement.batchLoop(SybSt atement.java:1330)
at
com.sybase.jdbc2.jdbc.SybStatement.sendBatch(SybSt atement.java:1139)
at
com.sybase.jdbc2.jdbc.SybStatement.executeBatch(Sy bStatement.java:1099)
at
com.sybase.jdbc2.jdbc.SybStatement.executeBatch(Sy bStatement.java:950)
at prc1.main(prc1.java:79)
com.sybase.jdbc2.jdbc.SybBatchUpdateException: JZ0BE:
BatchUpdateException: Error occurred while executing batch statement:
Invalid column name '2/2/2006 12:00:00.000 AM'.

at
com.sybase.jdbc2.jdbc.ErrorMessage.raiseBatchUpdat eException(ErrorMessage.java:698)
at
com.sybase.jdbc2.jdbc.SybStatement.batchLoop(SybSt atement.java:1330)
at
com.sybase.jdbc2.jdbc.SybStatement.sendBatch(SybSt atement.java:1139)
at
com.sybase.jdbc2.jdbc.SybStatement.executeBatch(Sy bStatement.java:1099)
at
com.sybase.jdbc2.jdbc.SybStatement.executeBatch(Sy bStatement.java:950)
at prc1.main(prc1.java:94)

I have verified that DATE is a datetime type field; and that the query
works "alone", but not when embedded in the java program.

Reply With Quote