SnowFlake 存储过程根据条件从 table 中删除一行

SnowFlake stored procedure to delete a row from a table based on a condition

我正在根据 where 条件从 table 中删除一行,但我不明白哪里出错了

我有一个 table 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'

我相信您只是缺少值周围的单引号:

var stmt = snowflake.createStatement({sqlText: "DELETE FROM DATA_QUALIT WHERE COLUMNS = '" + COL +"';"});

希望对你有所帮助...丰富

p.s。如果这个(或另一个)答案对您有帮助,请花点时间“接受”有帮助的答案 通过单击答案旁边的复选标记将其从“灰色”切换为“已填写”。