谁能告诉我oracle怎么插入大对象,最好给我一个例子
在线等啊 速度啊!!

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【xumin51333】截止到2008-07-18 17:34:15的历史汇总数据(不包括此帖):
    发帖的总数量:1                        发帖的总分数:30                       每贴平均分数:30                       
    回帖的总数量:1                        得分贴总数量:0                        回帖的得分率:0%                       
    结贴的总数量:1                        结贴的总分数:30                       
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:100.00%               结分的百分比:100.00%                  
    无满意结贴率:0.00  %               无满意结分率:0.00  %                  
    敬礼!
      

  2.   

    1  先插入普通列数据,遇到大对象列使用empty_blob()函数构造一个空的指向到表定义使分配的大对象存储空间中
    2  声明blob的变量,使用select into语句将blob变量指向到empty_blob()指向的空间
    3  声明bfile的变量,使用bfilename()函数将bfile的变量指向到待存储的文件
    4  使用DBMS_LOB.Open()方法将bfile变量指向的文件打开
    5  使用DBMS_LOB.loadFromFile()将bfile变量指向的文件写入到blob变量指向的存储空间中
    6  使用DBMS_LOB.Close()方法将bfile变量指向的文件关闭Create or replace procedure setLob(vfn varchar2) as 
      varB Blob;
      varF Bfile;
      vno number(8);
    Begin
      varF := bfileName('MYDIR',vfn);
      DBMS_LOB.Open(varF);
      select max(no) into vno from myLob;
      if vno is null then
        vno := 1;
      else
        vno := vno +1;
      end if;
      insert into mylob values (vno,vfn,empty_blob()); 
      select myFile into varB from myLob where no = vno for update;
      DBMS_LOB.loadFromFile(varB,varF,DBMS_LOB.GetLength(varF));
      DBMS_LOB.Close(varF);
      commit;
    End;
    /
      

  3.   

    参考这个
    http://www.java2000.net/viewthread.jsp?tid=3164关键在于
    1 启动事务
    2 insert ... empty_blob();
    3 select ... for update