在C中使用Oracle的OCI库,我试图通过简单的获取查询来获取100000行
char *query_3 = "SELECT id FROM idmap_id WHERE primary_id IN (SELECT id FROM idmap_id_1)";
表idmap_id_1
有100000行。我运行以下代码来获取
unsigned int key=100000;
char output[key][120];
sb2 output_ind[key];
ub2 output_len[key];
ub2 output_code[key];
OCIDefine *defnpp;
rc = OCIDefineByPos(stmt, &defnpp, errhp, 1, (dvoid*)output, 120, SQLT_STR, (dvoid*)output_ind, output_len, output_code, OCI_DEFAULT);
rc = OCIStmtExecute(svchp, stmt, errhp, key, 0, NULL, NULL, OCI_DEFAULT);
函数OCIDefineByPos
对10000行完全正常,但当我尝试获取100000行时,它会出现Segmentation fault (core dumped)
错误。
有人可以帮忙吗?
我注意到fetch返回98800行。如果我将获取的行数增加到98801,则会出现Segmentation fault (core dumped)
错误。
答案 0 :(得分:0)
您无法获取超过25000条记录。