在oracle c ++中的SOCI clob数据类型

时间:2016-12-15 04:29:29

标签: c++ database oracle clob soci

有人可以说如何在SOCI C ++中处理CLOB数据类型。

我想知道如何使用C ++ SOCI在oracle中读取CLOB数据列值。

我试图在SOCI中使用BLOB类型但它给出了错误.. Oracle错误932:不一致的数据类型预期%s得到%s错误

2 个答案:

答案 0 :(得分:0)

我在谷歌测试中使用了以下内容,它适用于我,

// insert clob
std::string str = "string as clob";
dbSession << "INSERT INTO CLOB_TABLE (ID, DATA) VALUES(:a, :b)",soci::use(1, "a"), soci::use(str, "b");    

// read clob
dbSession << "SELECT DATA FROM CLOB_TABLE WHERE ID = 1", soci::into(str);

答案 1 :(得分:0)

将Clob类型的数据绑定到soci语句时,请使用soci::long_string而不是std::string。因为,如果在使用soci将clob数据写入表时,使用std :: string绑定clob数据,则soci库会将数据视为varchar2类型而不是clob类型。 varchar2数据类型不能用于存储大数据。使用std :: string类型的容器将clob数据绑定到soci语句可能会导致数据丢失。