当前位置:数据库 > Oracle >>

c++ 读写Oracle--Clob对象,注意数据编码长度

[cpp]
  
<strong>c++ 读写Clob对象,注意数据编码长度 
       </strong> 
读 
//p_rs 为resultset 
        if (p_rs->next()) 
        {     
           Clob clob = p_rs->getClob(4); 
            if (!clob.isNull()) 
            {               
                //clob.setCharSetForm(OCCI_SQLCS_IMPLICIT); //本地编码格式,貌似有问题 
                clob.setCharSetId("UTF8");  //数据库是utf-8存储的 
 
                unsigned int cloblen = clob.length(); 
                if (cloblen > 0) 
                { 
                    clob.open(OCCI_LOB_READONLY); 
                    //utf-8必须乘以3,不然只能取实际数据的1/3 
                    clob.read(cloblen * 3, (unsigned char*)msg_content, cloblen * 3, 1); 
                    clob.close(); 
                } 
            } 
          } 
写 
 就当是varchar来写,没有问题。普通的sql支持。 
 不过sql语句在oracle里面是有长度限制的,所以当数据特别长的时候,可能要考虑使用Clob加write方法来搞定。 
作者:RunBoying
补充:软件开发 , C++ ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,