2013-02-26 171 views
0

我想在CLOB搜索字符串:检查在CLOB字符串

一些东西一样id_name_2569

我让我所有的ID我需要这样的:

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; 

显然是nt工作我知道,在这里我可以做到这一点?

+0

机器人qrys给出了相同的结果,我做了一个PHP脚本得到的结果。即使认为第二个答案快7秒,病人也会接受第一个答案。 :D谢谢你们学到了很多。 – 2013-02-26 15:43:42

回答

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