2013-02-26 4 views
0

я хочу, чтобы найти строку в CLOB:Проверьте наличие строки в CLOB

некоторые вещи, как id_name_2569

я получаю все мои идентификаторы мне нужно так:

select project_line_id as ID 
from tbl1 
where art_id in (
        select art_id 
        from tbl2 
        where type = 3 
       ); 

и я искать в этой таблице: A1 представляет собой поле CLOB

select * from tbl3 where dbms_lob.instr(A1, ID)>0; 

очевидно это Я работаю, я знаю, это способ, которым я мог это сделать?

+0

бот qrys дал тот же результат, и я сделал PHP скрипт, чтобы получить результаты , плохо согласен с первым ответом, даже думая, что второй на 7сек быстрее. : D Спасибо, ребята, многому научились. –

ответ

1

что-то, как это должно работать:

select tbl3.* 
    from tbl1 
     inner join tbl2 
       on tbl2.art_id = tbl1.art_id 
     inner join tbl3 
       on tbl3.a1 like '%' || tbl1.project_line_id || '%' 
where tbl2.type = 3; 
1

Вы можете использовать DBMS_LOB.instr непосредственно в качестве условия соединения:

SELECT * 
    FROM (SELECT project_line_id AS ID 
      FROM tbl1 
     WHERE art_id IN (SELECT art_id FROM tbl2 WHERE TYPE = 3)) v 
    JOIN tbl3 ON dbms_lob.instr(tbl3.a1, v.ID) > 0 
Смежные вопросы