Как прерывать циклы в Snowflake при выполнении рекурсивных запросов - PullRequest
1 голос
/ 03 апреля 2020

Я выполняю иерархический запрос в снежинке, используя предложение CONNECT BY в виде

SELECT
       CONNECT_BY_ROOT field_a
     , field_a
     , SYS_CONNECT_BY_PATH (field_b, '/') AS path_
FROM my_table
START WITH field_a 
CONNECT BY  PRIOR  field_b =  field_a;

Проблема состоит в том, что в моей таблице есть некоторые циклы, и снежинка останавливается после 100 итераций или никогда не завершает запрос. Есть ли в любом случае разрывать циклы, как Oracle делает с предложением NOCYCLE?

1 Ответ

1 голос
/ 03 апреля 2020

Документация по Snowflake обычно очень хорошая. Я рекомендую посмотреть там, в первую очередь. Эта спецификация c topi c описана здесь в документации по функции CONNECT BY:

https://docs.snowflake.com/en/sql-reference/constructs/connect-by.html#usage -notes

К сожалению, похоже, что предел Итерации - единственный способ помочь вам с этой проблемой, поскольку NOCYCLE в настоящее время не поддерживается.

...