Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/163.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ SQL错误ORA-01002未自动提交和循环_C++_Sql_C_Oracle - Fatal编程技术网

C++ SQL错误ORA-01002未自动提交和循环

C++ 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

我正在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'", "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行。在这种情况下,如何填充变量?