Andrea,

It looks like this is an optimizer issue in Oracle - ie. that it is
applying the TO_TIMESTAMP to all the records first, rather than just
those that match the metadata_field_id.

I've tried rewriting the query so that it uses an inline view to obtain
all the metadata records for the date accessioned field, and then apply
the TO_TIMESTAMP to that... but bizarrely that doesn't seem to be
working either.

For now, I suggest that you separate out:

SELECT metadata_field_id  FROM metadatafieldregistry  WHERE element =
'date' AND qualifier = 'accessioned'

As a distinct query, store the result in a variable, and then replace
the:

metadata_field_id = ( 
SELECT metadata_field_id  FROM metadatafieldregistry  WHERE element =
'date' 
  AND qualifier = 'accessioned')

with a "...metadata_field_id = " + variable + "..."

That should at least make it work. File a bug report, and add list a
reference to it under Bug Fixes / To Do here:

http://wiki.dspace.org/index.php/Next_Release_Status

and I'll address it properly for the 1.5 release when I check / add-in
the Oracle support.

G


On Tue, 2007-09-11 at 10:32 +0000, Andrea Garrido Fernández wrote:
> Sorry, I have realized that the query that doesn't work is :
> 
> SELECT COUNT(*) AS num FROM item WHERE in_archive = 1 AND withdrawn = 0  AND 
> item_id IN ( SELECT item_id FROM metadatavalue WHERE metadata_field_id = ( 
> SELECT metadata_field_id  FROM metadatafieldregistry  WHERE element = 'date' 
>   AND qualifier = 'accessioned')  AND TO_TIMESTAMP( TO_CHAR(text_value), 
> 'yyyy-mm-dd"T"hh24:mi:ss"Z"' ) > TO_DATE('2007-09-01', 'yyyy-MM-dd')  AND 
> TO_TIMESTAMP( TO_CHAR(text_value), 'yyyy-mm-dd"T"hh24:mi:ss"Z"' ) < 
> TO_DATE('2007-10-21', 'yyyy-MM-dd') )  AND item_id IN ( SELECT item_id FROM 
> metadatavalue WHERE text_value LIKE '%Thesis or Dissertation%' AND 
> metadata_field_id = ( SELECT metadata_field_id  FROM metadatafieldregistry  
> WHERE element = 'type'  AND qualifier IS NULL) )
> 
> This query gives me error in dspace and in my sql+ worksheet.
> 
> Sorry and thank yoy very much,
> Andrea Garrido
> 
> 
> 
> 
> 
> >From: Graham Triggs <[EMAIL PROTECTED]>
> >To: Andrea Garrido Fernández <[EMAIL PROTECTED]>
> >CC: dspace-tech@lists.sourceforge.net
> >Subject: Re: [Dspace-tech] Problem with statistics
> >Date: Tue, 11 Sep 2007 09:42:50 +0100
> >
> >Hi,
> >
> >Well, the relevant part of this is the only thing that's not in
> >English!! But the context is clear enough - it's having trouble parsing
> >a valid date.
> >
> >Can you confirm that the start / end dates that you are passing to the
> >script are of the form 'yyyy-mm-dd'.
> >
> >If your input is valid, then you've got a problem with one of the
> >metadata value fields. You'll need to check the text_value of all the
> >dc.date.accessioned entries (probably metadata_field_id=11). It looks
> >like the offending item is of the correct format (yyyy-mm-ddThh:mi:ssZ),
> >but contains invalid data.
> >
> >G
> >
> >On Mon, 2007-09-10 at 08:49 +0000, Andrea Garrido Fernández wrote:
> > > Hi:
> > > I have a problem when I try to execute the perl scripts for generating
> > > statistics.
> > > When I try to run the LogAnalyser class with a start or end date, I have 
> >an
> > > error like this:
> > >
> > > java.sql.SQLException: ORA-01841: el valor (completo) del año debe 
> >estar
> > > entre -4713 y +9999, y no debe ser igual a 0
> > >
> > >   at
> > > 
> >oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
> > >   at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
> > >   at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
> > >   at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:745)
> > >   at
> > > 
> >oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:216)
> > >   at
> > > 
> >oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:966)
> > >   at
> > > 
> >oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1062)
> > >   at
> > > 
> >oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPreparedStatement.java:850)
> > >   at
> > > 
> >oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1134)
> > >   at
> > > 
> >oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3339)
> > >   at
> > > 
> >oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3384)
> > >   at
> > > 
> >org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:92)
> > >   at
> > > 
> >org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:92)
> > >   at 
> >org.dspace.storage.rdbms.DatabaseManager.query(DatabaseManager.java:259)
> > >   at
> > > 
> >org.dspace.storage.rdbms.DatabaseManager.querySingle(DatabaseManager.java:384)
> > >   at
> > > 
> >org.dspace.storage.rdbms.DatabaseManager.querySingle(DatabaseManager.java:395)
> > >   at 
> >org.dspace.app.statistics.LogAnalyser.getNumItems(LogAnalyser.java:1264)
> > >   at 
> >org.dspace.app.statistics.LogAnalyser.processLogs(LogAnalyser.java:535)
> > >   at org.dspace.app.statistics.LogAnalyser.main(LogAnalyser.java:327)
> > > 
> >------------------------------------------------------------------------------------------
> > >
> > > I have tried many things, incluiding the solution given in this forum
> > > before, using  the  REGEXP_REPLACE , but I find it impossible because 
> >oracle
> > > don´t recognize this expression.
> > > Colud yo help me, please? I am a bit lost.
> > > Thanks,
> > > Andrea
> > >
> > > _________________________________________________________________
> > > Dale rienda suelta a tu tiempo libre. Mil ideas para exprimir tu ocio 
> >con
> > > MSN Entretenimiento. http://entretenimiento.msn.es/
> > >
> > >
> > > 
> >-------------------------------------------------------------------------
> > > This SF.net email is sponsored by: Microsoft
> > > Defy all challenges. Microsoft(R) Visual Studio 2005.
> > > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
> > > _______________________________________________
> > > DSpace-tech mailing list
> > > DSpace-tech@lists.sourceforge.net
> > > https://lists.sourceforge.net/lists/listinfo/dspace-tech
> >This email has been scanned by Postini.
> >For more information please visit http://www.postini.com
> >
> 
> _________________________________________________________________
> Acepta el reto MSN Premium: Correos más divertidos con fotos y textos 
> increíbles en MSN Premium. Descárgalo y pruébalo 2 meses gratis. 
> http://join.msn.com?XAPID=1697&DI=1055&HL=Footer_mailsenviados_correosmasdivertidos
> 
This email has been scanned by Postini.
For more information please visit http://www.postini.com


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
DSpace-tech mailing list
DSpace-tech@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dspace-tech

Reply via email to