问题是这样的,有一个表有三个字段,一个是name ,sqltext,exec_time
第一个是varchar2类型的,记录哪只程序执行的sql动作,
第二个是clob类型的,记录了一长串的sql语句。
由于每天会产生很大量的sql log,不知道如何精确的查询
比如
select to_char(t.sqltext) from t
where instr(to_char(t.sqltext),'aaaa') <>0
就是查询某个clob的sqltext中包含某个条件'aaaa'
高手指点,TKS!!

解决方案 »

  1.   

    --要更精确的条件,这个只能是相同效果
    SELECT to_char(t.sqltext) FROM t WHERE t.sqltext LIKE '%aaaa%'
      

  2.   

    ORA-22835 Buffer to Small for Clob to Char??如何解决??
      

  3.   

    不要在sql语句中to_char,to_char有4000个字符限制,
    直接在pl/sql中处理,例
    v_sql clob;
    SELECT t.sqltext into v_sql FROM t WHERE t.sqltext LIKE '%aaaa%';
      

  4.   

    dbms_lob.instr(t.sqltext,'aaaa')用这个吧..
      

  5.   

    --如果一定要在sql语句中使用,只能截取了
    SELECT to_char(substr(t21.atime, 1, 4000)) FROM t21 WHERE atime LIKE '%abc%';