+ -
当前位置:首页 → 问答吧 → [Oracle/基础和管理]请问OCIStmtPrepare中的语句长度要不要加上“\0”呢?

[Oracle/基础和管理]请问OCIStmtPrepare中的语句长度要不要加上“\0”呢?

时间:2011-09-19

来源:互联网

比如string sql="select * from GO_HOST";在使用OCIStmtPrepare时,该sql语句的长度是21还是22?

作者: chumeng3hao   发布时间: 2011-09-19

当然是21了。。。

作者: ulihss   发布时间: 2011-09-19

确定么?如果是22的话会发生什么问题呢?浪费内存?
引用 1 楼 ulihss 的回复:
当然是21了。。。

作者: chumeng3hao   发布时间: 2011-09-19

具体看实际项目中是否超过此长度,如果超过此长度的话会溢出。

作者: lzd_83   发布时间: 2011-09-19

char sql[] ="select 1 from dual";
OCIStmtPrepare(statement,_handles[index]->_errHandle,(text*)sql,sizeof(sql)+1,OCI_NTV_SYNTAX,OCI_DEFAULT);
sword ret = OCIStmtExecute(_handles[index]->_svcCtx,statement,
_handles[index]->_errHandle,0,0,NULL,NULL,OCI_COMMIT_ON_SUCCESS);这个测试语句没什么问题吧?
引用 3 楼 lzd_83 的回复:
具体看实际项目中是否超过此长度,如果超过此长度的话会溢出。

作者: chumeng3hao   发布时间: 2011-09-19

热门下载

更多