【问题标题】:SnowFlake stored procedure to delete a row from a table based on a conditionSnowFlake 存储过程根据条件从表中删除一行
【发布时间】: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'

【问题讨论】:

    标签: javascript sql stored-procedures snowflake-cloud-data-platform


    【解决方案1】:

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

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

    我希望这会有所帮助...丰富

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-04
      • 1970-01-01
      • 2018-01-11
      相关资源
      最近更新 更多