在 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;
可以在 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;