Выполнение запроса в функции запроса с использованием переменной в 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));
/
Другие вопросы по тегам