使用雪花脚本 SQL 更新表中的列

问题描述 投票:0回答:1

我正在尝试更新表“sweatsuits”中的价格列。 目标是当颜色为 'red' 或 'pink' 时,将价格列值加起来 100。我写了下面的代码,它给我带来了错误:

invalid identifier 'PRICE_NEW' (line 229)

这是我执行的脚本

 CREATE OR REPLACE PROCEDURE sp_up_base_table()
 RETURNS TEXT
 LANGUAGE SQL
 AS
 $$
 DECLARE
price_new number(5,2);
color_or_style_text text;
res RESULTSET;
c1 CURSOR FOR SELECT * FROM sweatsuits WHERE color_or_style IN ('Pink', 'Red');
BEGIN
FOR rec IN c1 DO
color_or_style_text := rec.color_or_style;
price_new := rec.price + 100;
UPDATE sweatsuits SET price = price_new where color_or_style = color_or_style_text;
END FOR;

RETURN 'update success';
END;
$$;
sql stored-procedures snowflake-cloud-data-platform sql-scripts
1个回答
0
投票

使用游标 FOR 循环是更新表的一种非常低效的方法,可以通过单次运行来完成:

UPDATE sweatsuits 
SET price = price_new 
where color_or_style IN ('Pink', 'Red');
© www.soinside.com 2019 - 2024. All rights reserved.