2013-02-26 65 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