我在表A中有一个long raw的字段(ZP),里面存放着照片。
我建了表B,B表中有一个BLOB字段(ZP),我现在要有PL/SQL把A表中的ZP存放到B表中。
下面是我写的语句:
for zp_r in (select zp from a) loop
 insert into b (ZP) values (zp_r.zp);
end loop;
以上这些语句当照片比较小时,没有问题,但当照片过大,超过30几K时,就出错。
我查过ORacle的有关资料,说在PL/SQL里,long raw变量不能太大(具体多少我不记得了),
不知该如何解决。

解决方案 »

  1.   

    long raw 最高可以存储2GB字节,应该够用吧。关注结论...
      

  2.   

    你这样试一下,我不敢保证可以,试试看看
    for zp_r in (select zp from a) loop
     insert into b (ZP) values (TO_LOB(zp_r.zp));
    end loop;
      

  3.   

    TO_LOB 函数只能用于 insert 语句的select子句中。例子:CREATE TABLE long_table (n NUMBER, long_col LONG);
    CREATE TABLE lob_table (n NUMBER, lob_col CLOB);INSERT /*+append*/ INTO lob_table
    SELECT n, TO_LOB(long_col) FROM long_table;