2016-11-15 2 views
1

можно выполнить строку как SQL-запрос в C и получить результат? Я пытаюсь скомпилировать этот код:Выполнить строку как SQL-запрос в C

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, я могу скомпилировать без ошибок.

Заранее спасибо.

ответ

1

Этот формат является described in the documentation:

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

Вы не делаете один из этих типов DML, и тех, кто не признают INTO. Когда вы запускаете динамический SQL-запрос без INTO, запрос никогда не выполняется (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; 
+0

Спасибо за ответ, что код решить мою проблему! :) –

Смежные вопросы