我必须在我的 CPP 代码中从 Oracle 表中读取 VARCHAR2 类型的列。当我尝试使用 OCCI 调用的 getString() 将 VARCHAR2 作为字符串获取时,代码失败。
在下面的代码中,我关心的是获取 VARCHAR2<50> 的表列 COST_VALUE
代码:
string sqlStmt = "SELECT \”REJECTED COST\”, APPROVED_COST, COST_VALUE FROM COST_TABLE where PART_NUM= 'PN4879-1'";
stmt = conn->createStatement(sqlStmt);
ResultSet *rset = stmt->executeQuery();
double dRejCost = 0;
double dAppCost = 0;
if(rset->next())
{
dRejCost = rset->getNumber(1);
dAppCost = rset->getNumber(2);
string strCost = rset->getString(3);
}
stmt->closeResultSet(rset);
conn->terminateStatement(stmt);
错误:
当我调试时,我能够看到在字符串中获取的值(来自 COST_TABLE 列)。但在 (string strCost = rset->getString(3);) 行执行后,应用程序失败,没有任何异常。
请帮助您的专业知识。