Выполнение запроса в функции запроса с использованием переменной в Exasol
Я пытаюсь выполнить динамический запрос в Exasol с помощью функции скрипта. Ниже приведен код:
CREATE or replace SCRIPT script_2(a)
RETURNS TABLE AS
quer="select * from table_name cross join table_name"
for i=1, 3 do
quer=quer .. " table_name"
print(query)
end
exit(query([[quer]]))
/
Не удалось получить выходные данные этого скрипта. Я получаю эту ошибку при вызове execute для скрипта. Ниже приведена ошибка:
43000: "синтаксическая ошибка, неожиданный конец_входа, ожидание assignment_operator или":' [строка 1, столбец 1]"обнаружена в сценарии"xxxxxxxxxx"."SCRIPT_2"в строке 6
1 ответ
Решение
Снимите двойные квадратные скобки вокруг имени переменной.
create or replace script script_2 (n)
returns table as
local quer = "select * from (values(0))t0(t0)";
for i = 1, n do
quer = quer.." cross join (values("..i.."))t"..i.."(t"..i..")";
print (quer);
end
exit(query(quer));
/