新手提问:
    条件:
 1.现有两结构完全一样的表:T1,T2(id number,picture long raw);
 2.其中picture 字段为long raw 类型
 3.T1中拥有数据,T2为空表。
   需求:
 现欲将T1中符合一定条件的记录提取出来并插入到表T2中,所用存储过程语句为:
  procedure trans_pic(id number)is
    CURSOR bcur
      iS SELECT picture from t1 where  T1.id=id;
    brec bcur%ROWTYPE;
  begin
  insert into T2(id) select id from T1 where T1.id=T2.id;//先插入其他字段
  open bcur;//打开游标
  FETCH bcur INTO brec;
  EXIT WHEN bcur%NOTFOUND;
  update T2 set picture=brec.picture where t2.id=id;
  close bcur;
  exception
    when dup_val_on_index then
      rollback;
      commit;
END trans_pic;
//
执行此存储过程在红色字体处时报错:
 ORA-06502: PL/SQL: 数字或值错误
ORA-06512: 在"HBSTA.TRANS_PIC", line 13
//
现急求热心朋友们的帮助,万分感谢!
   

解决方案 »

  1.   

    没用过这个类型,LZ看看这个:http://www.itpub.net/viewthread.php?tid=27282&extra=&page=1
      

  2.   

    long raw是oracle已经淘汰掉的类型。现在用BLOB来代替long raw类型。
      

  3.   

    insert into T2(id) select id from T1 where T1.id=T2.id;//先插入其他字段 
      

  4.   

    感谢各位的积极相助,小弟的问题已解决,现将解决思路呈现:
    1.在pl/sql中无法实现大小超过32KB的LONG RAW 类型数据
    2.欲实现long raw数据表表转移,可采用具体的程序语言所支持的纯代码--流方式实现。结贴,再次感谢楼上各位。