C++ SQL错误ORA-01002未自动提交和循环
我正在unix环境中使用pro c/c++。在c函数中,我创建了一个简单的select语句,它不在循环中,并且自动提交被禁用 这是动态sqlC++ SQL错误ORA-01002未自动提交和循环,c++,sql,c,oracle,C++,Sql,C,Oracle,我正在unix环境中使用pro c/c++。在c函数中,我创建了一个简单的select语句,它不在循环中,并且自动提交被禁用 这是动态sql char sql_statement[200]; int num1, num2; ... snprintf(sql_statement, sizeof(sql_sattement), "select column1, column2 from '%s' where num = '%d' and code_cfg = '%d'", &q
char sql_statement[200];
int num1, num2;
...
snprintf(sql_statement, sizeof(sql_sattement), "select column1, column2 from '%s' where num = '%d' and code_cfg = '%d'", "customer", 0, 0);
exec sql prepare instruction_to_execute from :sql_statement;
exec sql declare crs cursor for instruction_to_execute;
exec sql open crs;
exec sql fetch crs into :num1, :num2;
...
执行此代码会导致ORA-01002错误。正如我之前所说,这段代码不在循环中,自动提交是关闭的
但是如果我静态地编写这段代码,效果会很好。代码如下:
EXEC SQL
SELECT column1, column2
INTO :num1, :num2
FROM CUSTOMER
where num = 0
AND code_cfg = 0;
SQL指令很简单。据我所知,这段代码应该可以很好地执行
因此,我找到了一些答案:
由于光标超出范围,出现此错误。当你说你不使用循环时,光标就是这样做的。进一步阅读,问题出在获取之后,请向下滚动至页面底部:@Dane Ok。此选择仅返回1行。在这种情况下,如何填充变量?好的。此语句仅返回1行。在这种情况下,如何填充变量?