28000 번 연속 실행해야하는 쿼리가 있으므로 preparedStatement를 사용하는 것이 영리한 생각 일 것이라고 생각했습니다. '피카추 나의 영웅'과이에 작성하는 것이 좋습니다 우리가 퍼지 방법 같은 분할 할 단어를 잘 수행하지 않는 것을 알게 될 때까지CONTAINS 쿼리가있는 PreparedStatement
String requestWithFirstName = "SELECT SE.ELEMENT_ID, SE.LASTNAME||' '||SE.FIRSTNAME AS ELEMENT, (SCORE(1)+SCORE(2))/2 AS SCORE "
+ "FROM BL_SUSPICIOUS_ELEMENT SE "
+ "WHERE CONTAINS(SE.LASTNAME, 'fuzzy({' || ? || '},' || ? || ',' || ? || ', weight)' , 1)>0 "
+ "AND CONTAINS(SE.FIRSTNAME, 'fuzzy({' || ? || '},' || ? || ',' || ? || ', weight)' , 2)>0 "
+ (type > 0 ? "AND SE.ELEMENT_TYPE_ID = ?" : "")
+ " ORDER BY SCORE DESC";
Everthings가 잘 작동 : 여기
내 쿼리입니다 '피카추'에 대한 4 가지 퍼지 검색은 ''내 ''영웅 '입니다. 이것이 사실인지 확실하지는 않지만 쿼리를 28000 번 실행하면 실제 상황을 볼 수있는 좋은 기회입니다. 이 경우"SELECT A.ELEMENT_ID, A.LASTNAME||' '||A.FIRSTNAME AS AKA, SCORE(1) AS SCORE "
+ "FROM BL_AKA A, BL_SUSPICIOUS_ELEMENT SE "
+ "WHERE CONTAINS(A.LASTNAME, ?, 1)>0 "
+ "AND SE.ELEMENT_ID = A.ELEMENT_ID "
+ (type > 0 ? "AND SE.ELEMENT_TYPE_ID = ?": "")
+ " ORDER BY SCORE DESC";
:
그래서 나는이 방식으로 쿼리를 수정하려고?'fuzzy({Burnham},70,4,weight),fuzzy({Investors},70,4,weight),fuzzy({Trust},70,4,weight)'
쿼리가 SQL dev에 실행중인 것 같습니다. 그러나 자바에서는 다음 오류가 발생합니다.
ORA-20000: Oracle Text error: DRG-50900: text query parser error on line 1, column 30
DRG-50920: part of phrase not itself a phrase or equivalence
DRG-50900: text query parser error on line 1, column 30
DRG-50920: part of phrase not itself a phrase or equivalence
어떤 조언이 있습니까? 이것은 in 문과 같은 상황인지 궁금합니다 (포켓몬에서 select *를 생성 할 수없는 곳은 (?)의 괴물)
고마워요!
감사합니다. 실제로 실수였습니다. 완벽하게 작동합니다! – Farid