分类: Oracle
2008-06-30 11:36:14
sword OCIBindByPos ( OCIStmt *stmtp,indp的合理使用就可以解决了,原来一致用NULL的。看看OCI文档就明白了,
OCIBind **bindpp,
OCIError *errhp,
ub4 position,
dvoid *valuep,
sb4 value_sz,
ub2 dty,
dvoid *indp,
ub2 *alenp,
ub2 *rcodep,
ub4 maxarr_len,
ub4 *curelep,
ub4 mode );
Input Indicator Value | Action Taken by Oracle |
---|---|
-1 | Oracle assigns a NULL to the column, ignoring the value of the input variable. |
>=0 | Oracle assigns the value of the input variable to the column. |
sword OCIDefineByPos ( OCIStmt *stmtp,用Define取数据的时候也必须设置indp为什么呢? 我原来只设置了一个rlenp,个人认为一个长度变量就可以控制取出来的数据长度的,但我细细想来不是这样的,null数据怎么办呢?
OCIDefine **defnpp,
OCIError *errhp,
ub4 position,
dvoid *valuep,
sb4 value_sz,
ub2 dty,
dvoid *indp,
ub2 *rlenp,
ub2 *rcodep,
ub4 mode );