美文网首页
OCILIB 连接Oracle数据库——注意事项

OCILIB 连接Oracle数据库——注意事项

作者: 云谁之殇 | 来源:发表于2017-09-21 13:49 被阅读119次

    三、注意事项

    1、注意

    • 1、对于ANSIocilib::ostring相当于std::string
      ​ 对于UNICODEocilib::ostring相当于std::wstring
    • 2、对于文本,添加时需要指出数据长度
      st.Bind<ostring,int>(MT(":text"),ostr,50,BindInfo::InOut)
    • 3、对于日期,可以由字符串转化,如:ocilib::Date date("2017-09-21")
      ​ 或对其赋值:
      ocilib::Date date(true);//参数,true创建日期对象。默认为false。
      date.SetDate(2017,9,21);
      
    • 4、对于 LOB 格式,如BLOB、CLOB等。以BLOB为例,需要创建一个ocilib::Blob 对象,代码中是这样定义的:
       typedef Lob<Raw, LobBinary> Blob;
       typedef std::vector<unsigned char> Raw;
      
      可以看出其中存放的是std::vector<BYTE>,所以就可以通过以下方法写入:
      //参数 void* pBuff 、 UINT length 、 Blob blob
      vector<BYTE> list;
      for (int i=0;i<(int)length;i++)
      {
        list.push_back(pBuff[i]);
      }
      blob.Write(list);
      

    2、常见错误

    错误描述 错误原因
    ORA-01747: user.table.column, table.column 或列说明无效 关键字
    ORA-01830: 日期格式图片在转换整个输入字符串之前结束的解决办法 oracle的日期时间格式
    ORA-00911: 无效字符 结尾分号

    相关文章

      网友评论

          本文标题:OCILIB 连接Oracle数据库——注意事项

          本文链接:https://www.haomeiwen.com/subject/mubzsxtx.html