1、注意
- 1、对于
ANSI,ocilib::ostring相当于std::string;
对于UNICODE,ocilib::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: 无效字符 | 结尾分号 |