我有一个村存储过程,传入参数为一个整型和raw类型的参数,因为raw的长度有限制,所以我想在
调用存储过程时,多次调用,在过程里面实现将多个传入的raw数据增加到同一个blob字段中,存储过程的表如下:
create table LXJTEST
(
  ID  NUMBER not null,
  DT  DATE,
  PIC BLOB
)
存储过程如下:(如果再需要传入一个整型的参数也可以,但是raw类型的参数不能变)
create or replace procedure AddPicTolxjtest(aid in integer,picdata in raw) is
  bufferBlob BLOB;
  vId integer;
begin
    --先插入一个空行前需要先判断
    vId := 0;
    select count(id)  into vId from lxjtest where id = aid;
    if (vId = 0 or vId is null) then
      INSERT INTO LXJTEST(ID,DT,PIC) VALUES (aid,sysdate,empty_blob());
    end if;  
    
     --在用for update 锁定行进行操作 
    SELECT Pic INTO bufferBlob FROM lxjtest WHERE id = aid FOR UPDATE;
  
    DBMS_LOB.OPEN(bufferBlob , dbms_lob.lob_readwrite);
    dbms_lob.write(bufferBlob ,utl_raw.length(picdata) ,1, picdata);exception
   when others then
     rollback;
end AddPicTolxjtest;希望高手给指点一下,我在调用时可能如下调用,data1和data2是两个数组,因为我在
java中调用此处理过程,在第二个数组长度小于32k(32*1024)时是可以存储成功的,我就想
如果传入的第一参数想同,则在blob字段上append,当然我能保证总的长度不超过2gb.AddPicTolxjtest(14,data1);
AddPicTolxjtest(14,data2);