是否有关于如何使用OCI绑定变量的好文档?我在绑定 out bind 变量时遇到问题。 buf在存储过程中与“OUT”变量绑定。
问题1:我是否需要为buf
预先分配内存?或OCI可以做到吗?
问题2:有没有办法告诉buf
中存储的字符数是多少?或者只是将其视为以空值终止的C字符串?
int pos;
char* buf;
size_t len;
int rc = OCIBindByPos( Stmt, &bind, errhp, pos, buf, len, SQLT_STR,
NULL, NULL, NULL, 0, NULL, OCI_DEFAULT );
答案 0 :(得分:0)
问题1:我是否需要为buf预先分配内存?或者OCI可以做到这一点? 是的,你当然需要。你需要使用OCIHandle
OCIHandleAlloc((dvoid *)OCIEnv, (dvoid **)&OCIStmt, OCI_HTYPE_STMT, len,
(dvoid **)&buf);
问题2:有没有办法告诉buf中存储了多少字节的字符?或者只是将其视为以空值终止的C字符串?
在
OCIBindByPos
你告诉了多少字节。