在 C 中将字符串作为 SQL 查询执行

Execute string as SQL query in C

可以在 C 中将字符串作为 SQL 查询执行并获得结果吗?我正在尝试编译这段代码:

EXEC SQL
    EXECUTE IMMEDIATE : sql_formula INTO :sql_prec_desconto_mp;

但是我有这个错误:

Error at line 10548, column 35 in file

D:\syncs\AIX\fuentes\funcn\niv2\src\rutin as.pc

            EXECUTE IMMEDIATE : sql_formula INTO :sql_prec_desconto_mp;

PCC-S-02201, Encountered the symbol "INTO" when expecting one of the following:

; ( [ . ++ -- ->

如何获得 SQL 查询的结果?如果我删除 INTO 子句,我可以编译而不会出错。

提前致谢。

那个格式是described in the documentation:

To prepare and execute a DELETE, INSERT, or UPDATE statement or a PL/SQL block containing no host variables.

您没有使用其中一种 DML 类型,而且这些 DML 类型无法识别 INTO。当您 运行 没有 INTO 的动态 SQL 查询时,该查询永远不会实际执行 (see the note in the docs)。

立即想到做我想做的事情的最快方法是准备游标并获取结果:

EXEC SQL PREPARE stmt FROM :sql_formula;
EXEC SQL DECLARE cur CURSOR FOR stmt;
EXEC SQL OPEN cur;
EXEC SQL FETCH cur INTO :sql_prec_desconto_mp;