0

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

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

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

4

2 回答 2

0

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

于 2019-07-17T09:45:23.083 回答
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);
于 2017-05-05T11:11:06.397 回答