【发布时间】:2022-10-24 21:13:06
【问题描述】:
我试图在雪花中运行 while 循环,但我不断收到错误
我需要遍历员工并将结果存储到临时表tblChildren
提前感谢您的帮助!
:syntax error line 7 at position 17 unexpected '<'.
这是代码:
set ro = (select count(*) from tblEmployees);
execute immediate $$
begin
set counter := 1;
set iRows = ro;
set EmployeeID = '';
while(counter < iRows) do
select EmployeeID = TblEmployeeID from tblEmployees emp where emp.RowId = i
insert into tblChildren
with cteChildren as
(
select emp.tblEmployeeID as ChildId, emp.WorkEmail, emp.EmployeeManagerId
from tblEmployees emp
where emp.EmployeeManagerId = EmployeeID
union all
select emp.tblEmployeeID as ChildId, emp.WorkEmail, emp.EmployeeManagerId
from tblEmployees emp
join cteChildren on emp.EmployeeManagerId = cteChildren.ChildId
)
select EmployeeID as EmployeeManagerId, c.ChildId from cteChildren c
select i = i + 1
end while;
end;
$$;
【问题讨论】:
-
这是一个脚本,还是存储过程中的一个片段?无论如何,看到一些不一致的变量分配(未引用的字符串,未声明的变量,使用“=”而不是“:=”的整数分配......请确认这是否是您的整个脚本(如果不是,请完整发布)。
-
进一步看,我不清楚你想用这段代码完成什么——但这种方法可能不是正确的一种性能方式。请说明您要完成的工作,我们可能会帮助您更有效地实现它。
-
请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如它目前所写的那样,很难准确地说出你在问什么。
标签: while-loop snowflake-cloud-data-platform