谢谢!

解决方案 »

  1.   

    long用to_lob()先转clob,再dbms_lob.substr来取
      

  2.   

    有那么复杂么?
    有那么复杂么?
    SQL> create table tt ( a long);表已创建。SQL> insert into tt values(rpad('asfasdf',10000,'X'));已创建 1 行。SQL> commit;提交完成。SQL> declare
      2    v_str varchar2(30000):=null;
      3  begin
      4     select a into v_str from tt where rownum<=1;
      5     dbms_output.put_line('left 20=' || substrb(v_str,1,20));
      6  end;
      7  /
    left 20=asfasdfXXXXXXXXXXXXXPL/SQL 过程已成功完成。
      

  3.   

    在存储过程中,long 和varchar2 是可以直接赋值的!
      

  4.   

    我试过
    to_lob(long_column)为何在select 语句不能用?
    请学海无涯兄行告知
      

  5.   

    我的用法是
    select count(*) from table1 where dbms_lob.instr(to_lob(longcolumn),'aa')>0
    结果报错