OCILIB 連接Oracle數(shù)據(jù)庫——注意事項(xiàng)

1、注意

  • 1、對于ANSI,ocilib::ostring相當(dāng)于std::string
    對于UNICODE,ocilib::ostring相當(dāng)于std::wstring
  • 2、對于文本,添加時需要指出數(shù)據(jù)長度
    st.Bind<ostring,int>(MT(":text"),ostr,50,BindInfo::InOut)
  • 3、對于日期,可以由字符串轉(zhuǎn)化,如:ocilib::Date date("2017-09-21")
    或?qū)ζ滟x值:
    ocilib::Date date(true);//參數(shù),true創(chuàng)建日期對象。默認(rèn)為false。
    date.SetDate(2017,9,21);
    
  • 4、對于 LOB 格式,如BLOB、CLOB等。以BLOB為例,需要創(chuàng)建一個ocilib::Blob 對象,代碼中是這樣定義的:
     typedef Lob<Raw, LobBinary> Blob;
     typedef std::vector<unsigned char> Raw;
    
    可以看出其中存放的是std::vector<BYTE>,所以就可以通過以下方法寫入:
    //參數(shù) 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 或列說明無效 關(guān)鍵字
ORA-01830: 日期格式圖片在轉(zhuǎn)換整個輸入字符串之前結(jié)束的解決辦法 oracle的日期時間格式
ORA-00911: 無效字符 結(jié)尾分號
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容