Хранимая процедура, создающая таблицу с динамическим числом параметров

#snowflake-cloud-data-platform

Вопрос:

Я пытаюсь создать хранимую процедуру, которая принимает динамическое количество параметров и создает таблицу SQL на основе заданных ей параметров.

Изначально я знал, что будет 7 столбцов, но их могло быть и больше.

Я работаю в Снежинке.

Комментарии:

1. Как вы получаете параметры? Если, например, они являются результатом инструкции SQL, вы можете запустить ее внутри хранимой процедуры, сохранить их в переменных и создать после таблицы с ними. В этом случае хранимая процедура не нуждалась бы в аргументах.

Ответ №1:

Параметры должны быть определены в сохраненном процессе.
Чтобы передать переменные числа parm, вы можете передать параметры в виде списка с разделителями в строке, поэтому вы передаете один строковый параметр, затем хранимая процедура может разделить строку и выполнить цикл через каждый элемент массива.

 MYVAR = 'A~B~C';

CREATE PROCEDURE PROCABC(MYVAR VARCHAR)
RETURNS VARCHAR
LANGUAGE JAVASCRIPT
AS
$
var ARRAY_STR = MYVAR.split("~");
//process ARRAY_STR in a loop
 

Комментарии:

1. В дополнение к строке с разделителями входным параметром также может быть ВАРИАНТ или МАССИВ.

2. Я закончил тем, что сделал именно это, определенно так, как нужно, Спасибо вам:)