Soci Clob数据类型中的Oracle C

SOCI clob data type in oracle c++

本文关键字:Oracle Clob 数据类型 Soci      更新时间:2023-10-16

有人可以说如何处理soci c 中的clob datatype?

我想知道如何使用C Soci读取Oracle中的clob数据列值。

我试图在SOCI中使用BLOB类型,但会出现错误。Oracle错误932:不一致的数据型预期%S g g g g g g s误差

我在Google测试中使用过,对我有用,

// 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);

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