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: 无效字符 | 结尾分号 |