将SQLT_BDOUBLE用于NUMBER(x,y)个Oracle列

时间:2016-11-30 11:36:55

标签: c oracle oci

在我的应用程序中,我创建了Oracle列NUMBER(x,y)并使用SQLT_FLT进行绑定并定义了应用程序双变量,用于在Oracle数据库中写入和读取数据,如下所示。

b_IsErr = OCIDefineByPos(p_sql, &p_dfn, p_DBCon->p_err, iPos, 
    (dvoid*)pdValue, sizeof(double), SQLT_FLT, 0, 0, 0, 
    OCI_DEFAULT);

b_IsErr = OCIBindByPos(p_sql, &p_bnd, p_DBCon->p_err, iPos,
    (dvoid*)pdValue, sizeof(double), SQLT_FLT, 0, 0, 0, 0, 0, OCI_DEFAULT);

但是,由于可能的精度损失,我尝试使用Oracle推荐的IEEE754数据类型BINARY_DOUBLE。根据Oracle指南,应使用SQLT_BDOUBLE调用bind和define函数来处理BINARY_DOUBLE数据类型。

但是我的应用程序仍然使用了一些NUMBER(x,y)列,并且我尝试使用相同的方式(SQLT_BDOUBLE)来处理NUMBER(x,y)列,并且它似乎工作正常。

我无法找到包含这是否正确的任何文件。 有人知道OCI请帮助。

0 个答案:

没有答案