C++ 使用oci訪問資料庫出現“Column: 2, datatype in operator <>: CHAR”

來源:互聯網
上載者:User

http://bbs.csdn.net/topics/90049666


比如有表a,其中一個欄位是number類型的,如果在vc中讀取這個大數,用什麼來讀取。
vc中int 和long int都是4個位元組的,根本不夠用啊。
如果定義一個string s來接受這個整數的話,用otl_stream o;
o>>s;接受的時候,提示錯誤,因為oracle裡面的number不能用string來接受,如果用int i;
o>>i;可以,但是i溢出,得到的值不正確啊,誰遇到過這樣的情況,怎麼解決的。


不能用char來接收number欄位的內容
提示錯誤如下:
Column: 1<DOUBLE>, datatype in operator <</>>: CHAR


otl_long_string 只能接收oracle資料庫中欄位為long類型的,number類型的不能用otl_long_string來接收,如果用otl_long_string來接收的話,例如

otl_long_sring ols;
o>>ols; // o 為 otl_stream 類型
提示出錯,類似和用char接收number一樣的錯誤,


不是說了嘛
ostream::set_column_type轉成字串
讀出來後,
boost::lexical_cast或者自己處理字串都可以
哎……

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.