SnowFlake 存储过程根据条件从表中删除一行
Posted
技术标签:
【中文标题】SnowFlake 存储过程根据条件从表中删除一行【英文标题】:SnowFlake stored procedure to delete a row from a table based on a condition 【发布时间】:2020-10-02 14:26:53 【问题描述】:我正在根据 where 条件从表中删除一行,但我不明白我哪里出错了
我有一个表 TABLE1 如下
-------------------------------
| DB | SC | TB | COLUMNS |
-------------------------------
| DB1 | SC1 | TB1 | COL1 |
| DB2 | SC2 | TB2 | COL2 | <-- Delete this row
| DB3 | SC3 | TB3 | COL3 |
-------------------------------
这是我的存储过程
CREATE OR REPLACE PROCEDURE DEL(COL VARCHAR) // taking column name as parameter to delete that row
RETURNS string
LANGUAGE javascript
AS
$$
var str = '';
var stmt = snowflake.createStatement(sqlText: "DELETE FROM DATA_QUALIT WHERE COLUMNS = +COL+";");
stmt.execute();
return str;
$$;
CALL DEL('COL2'); //Calling the procedure
但是,我遇到了一个错误
Execution error in store procedure DEL: SQL compilation error: error line 1 at position 40 invalid identifier 'COL2'
【问题讨论】:
【参考方案1】:我相信您只是缺少值周围的单引号:
var stmt = snowflake.createStatement(sqlText: "DELETE FROM DATA_QUALIT WHERE COLUMNS = '" + COL +"';");
我希望这会有所帮助...丰富
附言如果这个(或另一个)答案对您有帮助,请花点时间“接受”有帮助的答案 通过单击答案旁边的复选标记将其从“灰色”切换为“已填充”。
【讨论】:
以上是关于SnowFlake 存储过程根据条件从表中删除一行的主要内容,如果未能解决你的问题,请参考以下文章