【问题标题】:Execute string as SQL query in C在C中将字符串作为SQL查询执行
【发布时间】:2017-03-29 19:42:45
【问题描述】:

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

EXEC SQL
    EXECUTE IMMEDIATE : sql_formula INTO :sql_prec_desconto_mp;

但我有这个错误:

文件中第 10548 行第 35 列出错

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

            EXECUTE IMMEDIATE : sql_formula INTO :sql_prec_desconto_mp;

PCC-S-02201,在期待其中一个时遇到符号“INTO” 以下:

; ( [ . ++ -- ->

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

提前致谢。

【问题讨论】:

    标签: sql c oracle execute


    【解决方案1】:

    那个格式是described in the documentation:

    准备和执行不包含主变量的 DELETE、INSERT 或 UPDATE 语句或 PL/SQL 块。

    您没有使用其中一种 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;
    

    【讨论】:

    • 感谢您的回答,该代码解决了我的问题! :)
    猜你喜欢
    • 2011-04-15
    • 1970-01-01
    • 1970-01-01
    • 2018-11-07
    • 1970-01-01
    • 1970-01-01
    • 2016-06-03
    • 2017-04-15
    相关资源
    最近更新 更多