Как динамически выполнять SQL в SAP IQ для использования в Crystal Reports
Цель:
У меня есть хранимая процедура в SAP IQ, которая использует
execute()
для выполнения динамического оператора SQL во временной таблице, а затем выбирает из таблицы в качестве вывода.
Проблема:
Процедура отлично возвращает соответствующий набор данных в моем клиенте SQL, но когда я пытаюсь выполнить ее в Crystal Reports, она не возвращает никаких столбцов, а вместо этого возвращает столбец с именем «выражение». Я считаю, что это способ Crystal указать, что он не может интерпретировать набор результатов.
Вопрос :
Каков правильный способ динамического выполнения запроса в IQ? В частности, с точки зрения выполнения процесса через Crystal Reports. Я привык работать в SAP ASE, и это процедура, которую я пытаюсь перенести из ASE в IQ.
Воспроизводимый пример :
/* Example proc that create a temp table with a dynamic value */
create or replace proc test_exec (
@num_value int
)
as
begin
-- Dynamically create the temp table with the requested column value
execute('select ' || @num_value || ' as column_1 into #temp')
-- Return the result
select column_1 from #temp
end
Вывод из клиента SQL (правильно):
exec test_exec 123
Вывод в Crystal Reports (не возвращает столбец_1):