转成LONG RAW 可变长度的二进制数据 最大长度2G 不行吗?LONG类型很不好操作!

解决方案 »

  1.   

    建义使用clob,long麻烦比较多,oracle不太好支持
      

  2.   

    不管使用哪种数据类型,长度大于4000个字节就要用流写入和读取。clob更是这样。
      

  3.   

    什么叫流呀!怎么用?用了流就可以在LONG中用了吗?
    有人教我一下好吗?最好有代码?我再重赏100
      

  4.   

    我用的是occi,只能供你借鉴一下。ResultSet *rset=stmt->executeQuery("SELECT ad_composite FROM print_media
                                        WHERE product_id=6666 FOR UPDATE");
    while(rset->next())
    {
       Blob blob=rset->getBlob(1);
       if(blob.isNull())
          cerr <<"Null Blob"<<endl;
       else
       {
          char buffer[BUFSIZE];
          Stream *outstream=blob.getStream(1,0);      //writing from buffer beginning at offset 1 until 
          //a writeLastBuffer() method is issued.
          //contents of buffer are replaced after each writeBuffer(),
          //typically with an fread()
          while(<fread "BUFSIZE" bytes into buffer succeeds>)
             outstream->writeBuffer(buffer,BUFSIZE);
          outstream->writeLastBuffer(buffer,<remaining amt>);
          blob.closeStream(outstream);
       }
    }
    stmt->closeResultSet(rset);
    conn->commit();
      

  5.   

    可以通过参数形式,执行SQL语句插入