2010-06-13 3 views
1

문자열을 쉼표로 구분하여 ORACLE에서 문자열로 검색하고 싶습니다. 예 : String은 ('MF1, MF2, MF3')이며, 이제는 'MF'가 있는지 여부를 검색하려고합니다. instr ('MF1, MF2, MF3', 'MF')을 사용하는 경우 MF1 또는 MF2 또는 MF3에서 Full MF를 검색하려고하므로 잘못된 결과가 표시됩니다. 입력 문자열이 양식에 항상있는 경우oracle 문자열에서 단어 검색

+1

확실하지 왜 INSTR() 겨자를 잘라하지 않습니다. 조금 더 설명하기 위해 질문을 편집 할 수 있습니까? – APC

답변

0

:

('X,Y,Z,...') 

당신은 이런 일을 할 수 - 쉼표로 따옴표를 교체 한 후 쉼표로 둘러싸인 기준 검색 :

DECLARE 
    in_str VARCHAR2(4000) := '(''MF1,MF2,MF3'')'; 
    criterion VARCHAR2(100) := 'MF'; 
BEGIN 
    IF INSTR(REPLACE(in_str,'''',','), ',' || criterion || ',') > 0 THEN 
     dbms_output.put_line('found!'); 
    END IF; 
END; 

따라서 위의 내용은 "found!" MF1에 대해서는 MF에 해당하지 않습니다.

1

보십시오 ..

instr(','||'MF1,MF2,MF3'||',',',MF,') 

이상의 일반적으로

instr(','||col||',' , ','||val||',') 
관련 문제