HI,初次接触ORACLE数据库,有一个问题想寻求一下帮助。整个过程是这样的。
有一些数据分散在各个基础表里面,我呢,打算创建一个
视图来把这些分散的数据字段提取出来。其中有一个字段
是CLOB类型。直接创建视图的时候,提示类型错误。用GOOGLE搜了一下,发现有一个函数dbms_lob.substr可以
把CLOB转化成STRING类型。可是使用的过程发现,只能转化
一部分,再多的时候就提示缓存不够。
dbms_lob.substr(test.clob_content,3500,1)这里问一下各位大大,这个问题有没有比较好的解决办法。敬礼
yalong

解决方案 »

  1.   

    clob字段用union all 连接起来
      

  2.   

    http://topic.csdn.net/u/20100906/19/0bba932e-776d-4940-abff-c803be987608.html
      

  3.   

    奇怪,你用的什么版本的oracle,10g的不报错.
     
    SQL> desc t_v_a
    Name Type      Nullable Default Comments 
    ---- --------- -------- ------- -------- 
    ID   NUMBER(1) Y                         
    CCC  CLOB      Y                         
     
    SQL> desc t_v_b
    Name Type      Nullable Default Comments 
    ---- --------- -------- ------- -------- 
    ID   NUMBER(1) Y                         
    BBB  CLOB      Y                         
      
    SQL> create or replace view v_ab
      2   as
      3  select a.id,a.ccc,b.bbb from t_v_a a ,t_v_b b where a.id=b.id
      4  ;
     
    View created
     
    SQL> 
      

  4.   

    谢谢二位回复!@ojuju10用UNION ALL如何办到?
    存储过程那个暂时理解不了。@minitoy奇怪,用的是10.2.0.1。
    发现其他视图也有直接使用Clob的。
    我去创建的话就报“期待-出现Clob”。
      

  5.   


    找到了。把DISTINCT去掉就可以了。
    select distinct 改成 select