Hi,

One of the possibilities for this kind of issue to occur may be the case
sensitivity of column names in Oracle.
Can you apply a transformer and check the entity map which actually
contains the keys and their values ?
Also, please try specifying upper case field names for Oracle and try if
that works.
something like

        <entity name="tipodocumento" query="SELECT *NOMBRE* FROM
 tipodocumento where *IDTIPODOCUMENTO* = '${documento.*TIPODOCUMENTO*}'">
            <field column="*NOMBRE*" name="nombre" />
         </entity>

On Tue, Jun 5, 2012 at 9:57 AM, Rafael Taboada <kaliman.fore...@gmail.com>wrote:

> Hi Gora,
>
>
> > Your configuration files look fine. It would seem that something
> > is going wrong with the SELECT in Oracle, or with the JDBC
> > driver used to access Oracle. Could you try:
>
> * Manually doing the SELECT for the entity, and sub-entity
> >  to ensure that things are working.
> >
>
> The SELECTs are working OK.
>
>
>
> > * Check the JDBC settings.
> >
>
> I'm using tha last version of jdbc6.jar for Oracle 11g. It seems JDBC
> setting is OK because solr brings data.
>
>
>
> > Sorry, I do not have access to Oracle so that I cannot try this
> > out myself.
> >
> > Also, have you checked the Solr logs for any error messages?
> > Finally, I just noticed that you have extra quotes in:
> > ...where usuario_idusuario = '${usuario.idusuario}'"
> > I doubt that is the cause of your problem, but you could try
> > removing them.
> >
>
> If I remove quotes, there is an error about this:
>
> SEVERE: Full Import failed:java.lang.RuntimeException:
> java.lang.RuntimeException:
> org.apache.solr.handler.dataimport.DataImportHandlerException: Unable to
> execute query: SELECT nombre FROM tipodocumento WHERE idtipodocumento =
>  Processing Document # 1
> at
> org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:264)
> at
>
> org.apache.solr.handler.dataimport.DataImporter.doFullImport(DataImporter.java:375)
> at
>
> org.apache.solr.handler.dataimport.DataImporter.runCmd(DataImporter.java:445)
> at
>
> org.apache.solr.handler.dataimport.DataImporter$1.run(DataImporter.java:426)
> Caused by: java.lang.RuntimeException:
> org.apache.solr.handler.dataimport.DataImportHandlerException: Unable to
> execute query: SELECT nombre FROM tipodocumento WHERE idtipodocumento =
>  Processing Document # 1
> at
>
> org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:621)
> at
>
> org.apache.solr.handler.dataimport.DocBuilder.doFullDump(DocBuilder.java:327)
> at
> org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:225)
> ... 3 more
> Caused by: org.apache.solr.handler.dataimport.DataImportHandlerException:
> Unable to execute query: SELECT nombre FROM tipodocumento WHERE
> idtipodocumento =  Processing Document # 1
> at
>
> org.apache.solr.handler.dataimport.DataImportHandlerException.wrapAndThrow(DataImportHandlerException.java:72)
> at
>
> org.apache.solr.handler.dataimport.JdbcDataSource$ResultSetIterator.<init>(JdbcDataSource.java:253)
> at
>
> org.apache.solr.handler.dataimport.JdbcDataSource.getData(JdbcDataSource.java:210)
> at
>
> org.apache.solr.handler.dataimport.JdbcDataSource.getData(JdbcDataSource.java:39)
> at
>
> org.apache.solr.handler.dataimport.SqlEntityProcessor.initQuery(SqlEntityProcessor.java:59)
> at
>
> org.apache.solr.handler.dataimport.SqlEntityProcessor.nextRow(SqlEntityProcessor.java:73)
> at
>
> org.apache.solr.handler.dataimport.EntityProcessorWrapper.pullRow(EntityProcessorWrapper.java:330)
> at
>
> org.apache.solr.handler.dataimport.EntityProcessorWrapper.nextRow(EntityProcessorWrapper.java:296)
> at
>
> org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:683)
> at
>
> org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:709)
> at
>
> org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:619)
> ... 5 more
> Caused by: java.sql.SQLSyntaxErrorException: ORA-00936: missing expression
>
> at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:445)
> at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396)
> at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:879)
> at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:450)
> at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:192)
> at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:531)
> at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:193)
> at
> oracle.jdbc.driver.T4CStatement.executeForDescribe(T4CStatement.java:873)
> at
>
> oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1167)
> at
>
> oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1289)
> at
>
> oracle.jdbc.driver.OracleStatement.executeInternal(OracleStatement.java:1909)
> at oracle.jdbc.driver.OracleStatement.execute(OracleStatement.java:1871)
> at
>
> oracle.jdbc.driver.OracleStatementWrapper.execute(OracleStatementWrapper.java:318)
> at
>
> org.apache.solr.handler.dataimport.JdbcDataSource$ResultSetIterator.<init>(JdbcDataSource.java:246
> My config files using Oracle are:
>
>
> db-data-config.xml
> <dataConfig>
>    <dataSource driver="oracle.jdbc.OracleDriver"
> url="jdbc:oracle:thin:@localhost:1521:solr" user="solr" password="solr" />
>    <document>
>        <entity name="documento" query="SELECT
> iddocumento,nrodocumento,asunto,autor,tipodocumento FROM documento">
>             <field column="iddocumento" name="iddocumento" />
>            <field column="nrodocumento" name="nrodocumento" />
>             <field column="asunto" name="asuntodocumento" />
>            <field column="autor" name="autor" />
>             <field column="tipodocumento" name="tipodocumento" />
>             <entity name="tipodocumento1" query="SELECT nombre FROM
> tipodocumento WHERE idtipodocumento = '${documento.tipodocumento}'">
>               <field column="nombre" name="nombre" />
>             </entity>
>        </entity>
>    </document>
> </dataConfig>
>
> schema.xml
> <?xml version="1.0" encoding="UTF-8" ?>
> <schema name="db" version="1.1">
>  <types>
>    <fieldType name="string" class="solr.StrField" sortMissingLast="true"
> omitNorms="true"/>
>    <fieldType name="sint" class="solr.SortableIntField"
> sortMissingLast="true" omitNorms="true"/>
>  </types>
>
>  <fields>
>    <field name="iddocumento" type="sint" indexed="true" stored="true"
> required="true" />
>   <field name="nrodocumento" type="string" indexed="true" stored="true" />
>   <field name="asuntodocumento" type="string" indexed="true"
> stored="true"/>
>   <field name="autor" type="string" indexed="true" stored="true"/>
>   <field name="tipodocumento" type="string" indexed="true" stored="true"/>
>   <field name="nombre" type="string" indexed="true" stored="true"/>
>  </fields>
>
>  <!-- Field to use to determine and enforce document uniqueness.
>      Unless this field is marked with required="false", it will be a
> required field
>   -->
>  <uniqueKey>iddocumento</uniqueKey>
>
>  <!-- field for the QueryParser to use when an explicit fieldname is absent
> -->
>  <defaultSearchField>nrodocumento</defaultSearchField>
>
>  <!-- SolrQueryParser configuration: defaultOperator="AND|OR" -->
>  <solrQueryParser defaultOperator="OR"/>
>
> </schema>
>
> solrconfig.xml
> <?xml version="1.0" encoding="UTF-8" ?>
> <config>
>  <luceneMatchVersion>LUCENE_36</luceneMatchVersion>
>  <!--  The DirectoryFactory to use for indexes.
>        solr.StandardDirectoryFactory, the default, is filesystem based.
>        solr.RAMDirectoryFactory is memory based, not persistent, and
> doesn't work with replication. -->
>  <directoryFactory name="DirectoryFactory"
> class="${solr.directoryFactory:solr.StandardDirectoryFactory}"/>
>
>
>  <updateHandler class="solr.DirectUpdateHandler2">
>    <autoCommit>
>         <maxTime>30000</maxTime>
>       </autoCommit>
>  </updateHandler>
>
>  <requestDispatcher handleSelect="true" >
>    <requestParsers enableRemoteStreaming="false"
> multipartUploadLimitInKB="2048" />
>  </requestDispatcher>
>
>  <requestHandler name="standard" class="solr.StandardRequestHandler"
> default="true" />
>  <requestHandler name="/update" class="solr.XmlUpdateRequestHandler" />
>  <requestHandler name="/admin/"
> class="org.apache.solr.handler.admin.AdminHandlers" />
>  <requestHandler name="/dataimport"
> class="org.apache.solr.handler.dataimport.DataImportHandler">
>    <lst name="defaults">
>    <str name="config">db-data-config.xml</str>
>    </lst>
>  </requestHandler>
>  <!-- config for the admin interface -->
>  <admin>
>    <defaultQuery>solr</defaultQuery>
>  </admin>
>
> </config>
>
> Thanks for your help.
>
> --
> Rafael Taboada
>
> /*
>  * Phone >> 992 741 026
>  */
>



-- 
Thanks and Regards
Rahul A. Warawdekar

Reply via email to