solr.I에서 새로운 점은 oracle 10g xe 데이터베이스를 성공적으로 색인화했습니다. 델타 가져 오기를 동일하게 수행하려고 시도하고 있습니다. 델타 쿼리는 테이블의 last_modified
열과 ${dih.last_index_time}
의 열을 비교해야합니다. 그러나 제 신청서에는 그러한 칼럼이 없습니다. 또한이 열을 추가 할 수 없습니다. 따라서 나는 'scn_to_timestamp(ora_rowscn)
'을 사용하여 필요한 타임 스탬프 값을 제공했습니다. 이 쿼리는 timestamp 형식의 값을 24-JUL-13 12.42.32.000000000 PM
및 dih.last_index_time
형식으로 반환합니다. 형식은 2013-07-24 12:18:03
입니다. 그러나 solst에서 델타 가져 오기를 수행하는 중 시간 소인 호환성
<dataConfig>
<dataSource type="JdbcDataSource" driver="oracle.jdbc.OracleDriver" url="jdbc:oracle:thin:@XXX.XXX.XX.XX:XXXX:xe" user="XXXXXXXX" password="XXXXXXX" />
<document name="product_info">
<entity name="PRODUCT" pk="PID" query="SELECT * FROM PRODUCT" deltaImportQuery="SELECT * FROM PRODUCT WHERE PID=${dih.delta.id}" deltaQuery="SELECT PID FROM PRODUCT WHERE scn_to_timestamp(ora_rowscn) > to_timestamp('${dih.last_index_time}', 'YYYY/MM/DD HH:MI:SS')">
<field column="PID" name="id" />
<field column="PNAME" name="itemName" />
<field column="INITQTY" name="itemQuantity" />
<field column="REMQTY" name="remQuantity" />
<field column="PRICE" name="itemPrice" />
<field column="SPECIFICATION" name="specifications" />
<entity name="SUB_CATEGORY" query="SELECT * FROM SUB_CATEGORY WHERE SCID=${PRODUCT.SCID}">
<field column="SUBCATNAME" name="brand" />
<entity name="CATEGORY" query="SELECT CNAME FROM CATEGORY WHERE CID=${SUB_CATEGORY.CID}">
<field column="CNAME" name="itemCategory" />
</entity>
</entity>
</entity>
</document>
</dataConfig>
는,이 작동하지 않습니다 및 메신저 다음과 같은 오류지고 - - 그래서,
to_timestamp('${dih.last_index_time}', 'YYYY/MM/DD HH:MI:SS').
내 데이터-설정은 다음과 같습니다로 dih.last_index_time
의 형식을 변경
Unable to execute query: SELECT * FROM PRODUCT WHERE PID= Processing Document # 1
Caused by: java.sql.SQLException: ORA-00936: missing expression
를하시기 바랍니다 도와주세요!