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

三、注意事项

1、注意

  • 1、对于ANSIocilib::ostring相当于std::string
    ​ 对于UNICODEocilib::ostring相当于std::wstring
  • 2、对于文本,添加时需要指出数据长度
    st.Bind(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 Blob;
     typedef std::vector Raw;
    
    可以看出其中存放的是std::vector,所以就可以通过以下方法写入:
    //参数 void* pBuff 、 UINT length 、 Blob blob
    vector 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数据库——注意事项)