Как передать значение другого столбца аргументу табличной функции? (или, снежинка, копия_истории с несколькими именами таблиц) - PullRequest
0 голосов
/ 26 февраля 2020

Я хочу запустить функцию copy_history Снежинки для длинного списка имен таблиц. У меня есть таблица (LOAD_TABLES) с одним столбцом (TABLE_NAME), который содержит все эти имена таблиц.

enter image description here

Теперь я хочу применить функцию copy_history ко всем именам таблиц, но функция принимает аргумент table_name в виде строки, поэтому Я не могу передать ему список имен, подобных этому:

SELECT *
FROM TABLE(INFORMATION_SCHEMA.COPY_HISTORY (TABLE_NAME => (SELECT TABLE_NAME FROM LOAD_TABLES )) 

Если так, я подумываю присоединить результаты функции к LOAD_TABLES следующим образом:

SELECT * FROM LOAD_TABLES
LEFT JOIN SELECT * FROM TABLE(INFORMATION_SCHEMA.COPY_HISTORY (TABLE_NAME => LOAD_TABLES.TABLE_NAME))

Но это дает SQL compilation error: invalid identifier

Как я могу применить эту функцию сразу к нескольким именам таблиц одновременно? Спасибо!

1 Ответ

0 голосов
/ 26 февраля 2020

из любопытства, почему вы не можете просто использовать представление LOAD_HISTORY? Потому что эта функция не предназначена для массового использования, и я не уверен, что то, что вы пытаетесь сделать, имеет смысл.

в то же время, делая запрос https://docs.snowflake.net/manuals/sql-reference/info-schema/load_history.html, вы можете просто адаптировать его так, как вы хотите (возможно, используя объединение, если один выбор превышает ограничение в 10 тыс. Строк, но 10 тыс. Строк очень много)

...