在Snowflake中运行动态SQL时,我遇到了以下错误:
未完成对‘SQL_Main’的赋值,因为值超出了变量的大小限制.其大小为263;限制为256(以字节为单位的内部存储大小).
以下是代码:
SET v_G = '1';
SET v_G1 = $v_G::VARCHAR;
SET v_P = (SELECT "txtstr" FROM table2 WHERE "grouping" = $v_G);
SET SQL_MAIN = 'CREATE TABLE N_1 AS
SELECT a1.YEARMONTH as "DATE",
COUNT(a1.RECORD_NUM) AS "COUNT",
' || $v_G1 ||' AS "GROUP"
FROM table1 a1
WHERE ' || $v_P || ' GROUP BY YEARMONTH';
EXECUTE IMMEDIATE $SQL_MAIN;
set d_max_row = (select count(*) from table2");
begin
let counter :=1;
while (counter <= $d_max_row)
do
SET v_G = $v_G+1;
SET v_G1 = $v_G::VARCHAR;
SET v_P = (SELECT "txtstr" FROM table2 WHERE "grouping" = $v_G);
SET SQL_MAIN = 'INSERT INTO N_1 (DATE, COUNT, GROUP)
SELECT a1.YEARMONTH as "DATE",
COUNT(a1.RECORD_NUM) AS "COUNT",
' || $v_G1 ||' AS "GROUP"
FROM table1 a1
WHERE ' || $v_P || ' GROUP BY YEARMONTH';
EXECUTE IMMEDIATE $SQL_MAIN;
counter := counter + 1;
end while;
return counter;
end;
作为表1中的条件,有没有办法遍历表2中"txtstr"列中的每条记录,并在单独的表中返回结果?
我找到了很多针对Java脚本的示例,但没有针对SQL的太具体的示例.请让我知道这是否可能在snowflake.
谢谢!